[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Пример исходного кода и вывода ODM

На диаграмме Классы объектов Fictional_Characters, Friend_Table и Enemy_Table показаны классы и объекты, создаваемые в примерах из этого раздела.


Fictional_Characters
Story_Star (char) Birthday (char) Age (short) Friends_of (link) Enemies_of (link) Do_This (method)
Золушка Однажды 19 Золушка Золушка echo Наряжается
Белоснежка Однажды 18 Белоснежка Белоснежка echo Наряжается


Friend_Table

Friend_of (char) Friend (char)
Золушка Волшебница
Золушка Мышь
Белоснежка Ворчун
Белоснежка Соня
Золушка Принц
Белоснежка Счастливая


Табл. 17-2.

Enemy_Table
Enemy_of (char) Enemy (char)
Золушка Полночь
Золушка Мачеха
Белоснежка Мачеха

Пример исходного кода для создания классов объектов ODM

Ниже приведен пример файла MyObjects.cre, служащего для создания трех классов объектов с помощью команды odmcreate:

*      MyObjects.cre
*       Входной файл утилиты создания классов объектов ODM.
*       Создает три класса объектов:
*               Friend_Table
*               Enemy_Table
*               Fictional_Characters

class Friend_Table {
        char    Friend_of[20];
        char    Friend[20];
};

class   Enemy_Table {
        char    Enemy_of[20];
        char    Enemy[20];
};

class Fictional_Characters {
        char    Story_Star[20];
        char    Birthday[20];
        short   Age;
        link    Friend_Table Friend_Table Friend_of Friends_of;
        link    Enemy_Table Enemy_Table Enemy_of Enemies_of;
        method  Do_This;
};

* Конец входного файла MyObjects.cre для утилиты создания классов ODM. *

Класс объектов Fictional_Characters содержит шесть дескрипторов:

Для создания файлов классов объектов приведенный выше код должен быть обработан командой odmcreate.

Пример вывода ODM для определений классов объектов

В результате обработки файла MyObjects.cre командой odmcreate создается файл .h со следующими структурами:

* MyObjects.h
* Вывод ODM после обработки входного файла MyObjects.cre.
* Определяет структуры для трех классов:
*               Friend_Table
*               Enemy_Table
*               Fictional_Characters
#include <odmi.h>

struct  Friend_Table {
       long     _id;        * уникальный ИД объекта в классе *
       long     _reserved;  * зарезервированное поле *
       long     _scratch;   * дополнительное поле для использования приложением *
       char    Friend_of[20];
       char    Friend[20];
};

#define Friend_Table_Descs 2
extern struct Class Friend_Table_CLASS[];
#define get_Friend_Table_list(a,b,c,d,e) (struct Friend_Table * )odm_get_list (a,b,c,d,e)

struct  Enemy_Table {
        long    _id;
        long    _reserved;
        long    _scratch;
        char    Enemy_of[20];
        char    Enemy[20];
};
#define Enemy_Table_Descs 2
extern struct Class Enemy_Table_CLASS[];
#define get_Enemy_Table_list(a,b,c,d,e) (struct Enemy_Table * )odm_get_list (a,b,c,d,e)

struct  Fictional_Characters {
        long    _id;
        long    _reserved;
        long    _scratch;
        char    Story_Star[20];
        char    Birthday[20];
        short   Age;
       struct  Friend_Table *Friends_of;    * связь *
        struct  listinfo *Friends_of_info;   * связь *
        char    Friends_of_Lvalue[20];       * связь *
        struct  Enemy_Table *Enemies_of;     * связь *
        struct  listinfo *Enemies_of_info;   * связь *
        char    Enemies_of_Lvalue[20];       * связь *
        char    Do_This[256];                * метод *
};

#define Fictional_Characters_Descs 6
 
extern struct Class Fictional_Characters_CLASS[];
#define get_Fictional_Characters_list(a,b,c,d,e)
(struct Fictional_Characters * )odm_get_list (a,b,c,d,e)

* Конец файла MyObjects.h с описанием выходных структур после обработки ODM    *

Пример исходного кода для добавления объектов в класс ODM

Ниже приведен пример определений, после обработки которых командой odmadd соответствующие объекты будут добавлены в класс, созданный в результате обработки файла MyObjects.cre.

* MyObjects.add
*       Входной файл утилиты создания объектов ODM.
*       Добавляет объекты в классы:
*               Friend_Table
*               Enemy_Table
*               Fictional_Characters

Fictional_Characters:
Story_Star = "Золушка" # комментарий файла MyObjects.add
Birthday   = "Однажды"
Age             = 19
Friends_of      = "Золушка"
Enemies_of = "Золушка"
Do_This    = "echo Убирается в доме"

Fictional_Characters:
Story_Star = "Белоснежка"
Birthday   = "Однажды"
Age        = 18
Friends_of = "Белоснежка"
Enemies_of = "Белоснежка"
Do_This   =              "echo Наряжается"

Friend_Table:
Friend_of  = "Золушка"
Friend     = "Фея"

Friend_Table:
Friend_of  = "Золушка"
Friend     = "мышь"

Friend_Table:
Friend_of  = "Белоснежка"
Friend     = "Ворчун"

Friend_Table:
Friend_of  = "Белоснежка"
Friend     = "Соня"

Friend_Table:
Friend_of  = "Золушка"
Friend     = "Принц"

Friend_Table:
Friend_of  = "Белоснежка"
Friend     = "Счастливчик"

Enemy_Table:
Enemy_of   = "Золушка"
Enemy      = "полночь"

Enemy_Table:
Enemy_of   = "Золушка"
Enemy      = "Злая мачеха"

Enemy_Table:
Enemy_of   = "Белоснежка"
Enemy      = "Злая мачеха"

* Конец входного файла MyObjects.add для утилиты добавления объектов ODM. *

Примечание: символы * и # не будут записаны в файл объекта. Они применяются в файле .add для обозначения комментария. Комментарий будет добавлен в файл только в том случае, если он заключен в двойные кавычки (" ").

Связанная информация

Глава 17, Администратор объектных данных (ODM).

Список команд и функций ODM .

ODM Error Codes в книге AIX 5L Version 5.1 Technical Reference.

Команды odmcreate, odmadd, odmget.

Функции odm_add_obj, odm_create_class, odm_run_method.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]