产生 .c (源)和 .h(包含)文件,对于 ODM 应用程序开发和创建空的对象类是必要的。
odmcreate [ -p ] [ -c | -h ] ClassDescriptionFile
odmcreate 命令是 ODM 类编译器。此命令以描述用户希望在特定的应用程序中使用的对象的 ASCII 文件为输入。odmcreate 命令能够创建空的对象类,作为它的执行的一部分。
odmcreate 命令的输出是 .h 文件(一个包含文件),它包含了定义在 ASCII ClassDescriptionFile 文件中的对象类的 C 语言定义。结果包含文件使用在访问存储在 ODM 中对象的应用程序中。odmcreate 命令也产生需要编译和绑定在应用程序中的 .c 文件。 .c 文件包含在运行时由 ODM 内部使用的结构和定义。
ClassDescriptionFile 参数指定了包含一个或多个对象类的描述的 ASCII 文件。 ClassDescriptionFile 参数的常规语法如下:
ClassDescriptionFile 文件的缺省后缀是 .cre。 如果在 odmcreate 命令中没有指定后缀,那么附加一个.cre 后缀。文件能够有 C 语言注释,如果运行时带有 -p 标志,并能预先包含 #define 和 #include 行,这些可以被预处理的,如果在文件中使用了 -p 标志运行 C 语言预处理器。
注意: ODM 数据库是 32 位的数据库。长型当在类描述文件中使用时,它是 32 位的数据项。长型 64 或整型 64 当在类描述文件中使用时,它是 64 位的数据项。生成的文件对于 32 位和 64 位应用程序具有相同功能。
-c | 只创建空的对象类;不生成 C 语言 .h 和 .c 文件。 |
-h | 只生成 .c 和 .h 文件;不创建空类。 |
-p | 对 ClassDescriptionFile 文件运行 C 语言预处理器。 |
假定存在 ClassDescriptionFile 文件,命名为 FileName.cre ,下列命令创建对象类:
odmcreate FileName.cre
以下是 FileName.cre 源文件和结果 .h 文件:
/* 这是一个示例 odmcreate 输入文件 */ /* FileName.cre */ class Class2 { char keys[32]; method card; long cash; }; class TstObj { long a; char b[80]; link Class2 Class2 card Class2Ln; }; /* FileName.cre 结束*/ /* 生成头文件 file FileName.h */ #include <odmi.h> struct Class2 { long _id; /* unique object id within object class */ long _reserved; /* reserved field */ long _scratch; /* extra field for application use */ char keys[32]; char card[256]; /* method */ long cash; }; #define Class2_Descs 3 extern struct Class Class2_CLASS[]; #define get_Class2_list (a,b,c,d,e) (struct Class2 * ) odm_get_list (a,b,c,d,e) struct TstObj { long _id; /* 对象类中的唯一对象标识 */ long _reserved; /* 保留字段 */ long _scratch; /* 应用程序使用的附加字段 */ long a; char b[80]; struct Class2 *Class2Ln; /* 链接 */ struct objlistinfo *Class2Ln_info; /* 链接 */ char Class2Ln_Lvalue[256]; /* 链接 */ }; #define TstObj_Descs 3 extern struct Class TstObj_CLASS[]; #define get_TstObj_list (a,b,c,d,e) (struct TstObj * ) odm_get_list (a,b,c,d,e) /* 生成头文件 FileName.h 结束部分*/
请参阅 “ODM Example Code and Output”AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 对于 ClassDescriptionFile 参数和结果 .h 文件的另一个示例。
Object Data Manager (ODM) OverviewAIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs。
odm_create_class 子例程。
List of ODM Commands and SubroutinesAIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs。
Understanding ODM Object Classes and ObjectsAIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs。
Understanding ODM DescriptorsAIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs。
在 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 How to Create an Object Class。
在 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 How to Add Objects to an Object Class。
在 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 How to Store Object Classes and Objects。