내부 struct type 지원
struct type에 char[ ]로 선언하고 서비스 정보 파일에는 char[]이 아니고 다른 데이터 type일 경우에도 변환이 가능하다. sdl과 정보파일을 아래와 같이 설정할 경우 변환이 가능하다.
sdl을 다음과 같이 설정한다.
struct qmc_rq{ char value1[4]; /* struct depth1 */ char value2[4]; /* struct depth2 */ char value3[4]; char value4[4]; /* end depth2 */ char value5[4]; /* end depth1 */ char value6[4]; }; struct qmc_rps{ char value1[4]; /* struct r_depth1 */ char value2[4]; char value3[4]; /* end r_depth1 */ char value4[4]; }; struct LANG_POLICI01 { char Xid_length[2]; char Xid[255]; char customerId_length[2]; char customerId[255]; char userId_num[4]; char userId_cont[16]; char loopback; char freeFormAddress_num[4]; char freeFormAddress_cont[16]; char policyType_num[4]; char policyType_cont[16]; }; struct LANG_POLICO01 { char Xid_length[2]; char Xid[255]; char customerId_length[2]; char customerId[255]; char Notification_num[4]; char Notification_cont[16]; char standardisedAddressAnd_num[4]; char standardisedAddressAnd_cont[16];
정보 파일을 다음과 같이 설정한다.
STRUCT name = depth1 TYPE name = value1 type = int name = value2 type = struct subtype = depth2 name = value3 type = int STRUCT name = depth2 TYPE name = value1 type = int name = value2 type = int STRUCT name = r_depth1 TYPE name = value1 type = int name = value3 type = int SERVICE name = TEST_STRUCT tmaxname = TEST_STRUCT intype = STRUCT outtype = STRUCT instruct = qmc_rq outstruct = qmc_rps REQUEST name = value1 type = int name = value2 type = struct subtype = depth1 name = value3 type = int RESPONSE name = value1 type = int name = value2 type = struct subtype = r_depth1 name = value3 type = int SERVICE name = TOUPPER tmaxname = TOUPPER intype = STRING outtype = STRING REQUEST name = req type = string restriction = maxLength="19" RESPONSE name = result type = string restriction = maxLength="19" SERVICE name = TOUPPERSDL1 tmaxname = TOUPPERSDL1 intype = STRUCT outtype = STRUCT instruct = wsgw_s outstruct = wsgw_s REQUEST name = req type = string name = intvalue type = int name = shortvalue type = short name = floatvalue type = float name = doublevalue type = double name = charvalue type = char RESPONSE name = result type = string name = intvalue type = int name = shortvalue type = short name = floatvalue type = float name = doublevalue type = double name = charvalue type = char SERVICE name = TOUPPERSDL tmaxname = TOUPPERSDL intype = STRUCT outtype = STRUCT instruct = kstrdata outstruct = kstrdata REQUEST name = len type = int name = str type = string RESPONSE name = len type = int name = str type = string STRUCT name = requestHeaderI TYPE name = Xid-length type = short name = Xid type = string name = customerId-length type = short name = customerId type = string name = userId-num type = int name = userId-cont type = string name = loopback type = char STRUCT name = GetStandardisedAddressAndTerI TYPE name = requestHeader type = struct subtype = requestHeaderI name = freeFormAddress-num type = int name = freeFormAddress-cont type = string name = policyType-num type = int name = policyType-cont type = string