| HOME / 정보공유 / AIX 명령어 모음

odmcreate
odmcreate odmcreate 명령 목적 ODM 어플리케이션 개발에 필요한 .c(소스) 및 .h(포함) 파일을 작성하고 빈 오브젝트 계층을 작성합니다. 구문
odmcreate [ -p ] [ -c | -h ] ClassDescriptionFile
설명
odmcreate 명령은 ODM 클래스 컴파일러입니다. 이 명령은 사용자가 특정한 어플리케이션에서 사용하려는 오브젝트를 설명하는 ASCII 파일을 입력으로 취합니다. odmcreate 명령은 실행의 한 부분으로 빈 오브젝트 계층을 만들 수 있습니다.
odmcreate 명령의 출력은 ASCII ClassDescriptionFile 파일에서 정의된, 오브젝트 계층에 대한 C 언어 정의를 포함하는 .h 파일(포함 파일)입니다. 그 결과로 작성된 포함 파일은 ODM에 저장된 오브젝트를 액세스하는 데 사용됩니다. odmcreate 명령은 또한 응용프로그램을 사용하여 컴파일되고 바인드되어야 하는 .c 파일을 작성합니다. .c 파일은 수행 중인 ODM에 의해 내부적으로 사용되는 구조와 정의를 포함합니다.
ClassDescriptionFile 매개변수는 하나 이상의 오브젝트 계층에 대한 설명이 들어 있는 ASCII 파일을 지정합니다. ClassDescriptionFile 매개변수에 대한 일반 구문은 다음과 같습니다.
file : classes
classes : class | classes class
class : head body tail
head : struct ClassName {
tail : }
body : elements
elements : elements | elements element
element :char DescriptorName [ DescriptorSize ];
vchar DescriptorName [ DescriptorSize ];
binary DescriptorName [ DescriptorSize ];
short DescriptorName ;
long DescriptorName ;
long64 or int64 or ODM_LONG_LONG DescriptorName ;
method DescriptorName ;
link StdClassName StdClassName ColName DescriptorName ;
ClassDescriptionFile 파일에 대한 디폴트 접미사는 .cre입니다. odmcreate 명령에 접미사가 지정되지 않을 경우, .cre 접미사가 추가됩니다. 파일이 -p 플래그로 수행되는 경우, C언어 주석을 가질 수 있습니다. -p 클래스가 파일에서 C언어 프리프로세서를 수행하는데 사용될 경우, 사전 처리할 수 있는 #define 및 #include 행을 포함할 수 있습니다.
주: ODM 데이터베이스는 32 비트 데이터베이스입니다. 긴 유형은 클래스 설명 파일에서 사용될 경우, 32 비트 데이터 항목입니다. long64 또는 int64 유형이 클래스 설명 파일에 사용될 때는 64 비트 데이터 항목입니다. 작성된 파일은 32 및 64 비트 응용프로그램에 대해서 똑같이 기능합니다.
파일
-c 빈 오브젝트 계층만을 작성하고 C언어 .h 및 .c 파일은 작성하지 않습니다.
-h .c 및 .h 파일만 작성하고 빈 클래스는 작성하지 않습니다.
-p ClassDescriptionFile 파일에서 C 언어 프리프로세서를 수행합니다.
예제
FileName.cre라는 ClassDescriptionFile 파일이 존재한다고 가정할 경우, 다음 명령은 오브젝트 계층을 작성합니다.
odmcreate FileName.cre
다음은 FileName.cre 소스 파일과 그 결과에 해당하는 .h 파일입니다.
/* This is an example odmcreate input file */
/* FileName.cre */
class Class2 {
char keys[32];
method card;
long cash;
};
class TstObj {
long a;
char b[80];
link Class2 Class2 card Class2Ln;
};
/* End of FileName.cre */
/* This is the generated header file FileName.h */
#include
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; /* unique object id within object class */
long _reserved; /* reserved field */
long _scratch; /* extra field for application use */
long a;
char b[80];
struct Class2 *Class2Ln; /* link */
struct objlistinfo *Class2Ln_info; /* link */
char Class2Ln_Lvalue[256]; /* link */
};
#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)
/* End of generated header file FileName.h */