내부 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