LibItsHttp_TypesAndValues.ttcn 2.15 KB
Newer Older
garciay's avatar
garciay committed
/**
 *    @author   ETSI / STF545
 *    @version  $URL$
 *              $ID:$
 *    @desc     This module provides the types and values used by ITS HTTP based protocols.
 *    @copyright   ETSI Copyright Notification
 *                 No part may be reproduced except as authorized by written permission.
 *                 The copyright and the foregoing restriction extend to reproduction in all media.
 *                 All rights reserved.
 *    @see      ETSI TS 103 478
 */
garciay's avatar
garciay committed
module LibItsHttp_TypesAndValues {
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    // LibHttp
    import from LibItsHttp_MessageBodyTypes all;
    import from LibItsHttp_XmlMessageBodyTypes all;
    
    const charstring c_header_host := "Host";
    const charstring c_header_content_type := "Content-type";
    const charstring c_header_content_text := "Content-text";
    const charstring c_header_content_length := "Content-length";
garciay's avatar
garciay committed
    const charstring c_header_accept := "Accept";
    const charstring c_header_connection := "Connection";
    const charstring c_header_pragma := "Pragma";
    const charstring c_header_cache_control := "Cache-Control";
    
garciay's avatar
garciay committed
    const integer c_http_version_major := 1;
    const integer c_http_version_minor := 1;
    
    type record of charstring charstring_list;
    type record HeaderLine {
      charstring        header_name,
garciay's avatar
garciay committed
      charstring_list   header_value optional
garciay's avatar
garciay committed
    } with { 
        variant "FIELDORDER(msb)" 
    }
    
    type record of HeaderLine HeaderLines;
    
    type record Request {
      charstring method,
      charstring uri,
      integer version_major,
      integer version_minor,
      HeaderLines header,
garciay's avatar
garciay committed
      HttpMessageBody body optional
garciay's avatar
garciay committed
    } with { 
        variant "FIELDORDER(msb)" 
    }
    
    type record Response {
      integer version_major,
      integer version_minor,
      integer statuscode,
      charstring statustext,
      HeaderLines header,
garciay's avatar
garciay committed
      HttpMessageBody body optional
garciay's avatar
garciay committed
    } with { 
        variant "FIELDORDER(msb)" 
    }
    
    type union HttpMessage {
      Response response,
      Request request
    } with { 
garciay's avatar
garciay committed
        variant "" 
garciay's avatar
garciay committed
    }
    
} with {
        variant ""
garciay's avatar
garciay committed
        encode "HttpCodec"
garciay's avatar
garciay committed
} // End of module LibItsHttp_TypesAndValues