LibItsHttp_Templates.ttcn 4 KB
Newer Older
garciay's avatar
garciay committed
/**
 *    @author   ETSI / STF549
 *    @version  $URL$
 *              $ID:$
 *    @desc     This module provides the templates for 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_Templates {
garciay's avatar
garciay committed
    
    // LibHttp
garciay's avatar
garciay committed
    import from LibItsHttp_TypesAndValues all;
garciay's avatar
garciay committed
    import from LibItsHttp_MessageBodyTypes all;
    import from LibItsHttp_XmlMessageBodyTypes all;
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    group http_messages {
        
        template (value) HttpMessage m_http_request(
                                                    in template (value) Request p_request
        ) := {
          request := p_request
        } // End of template m_http_request
        
        template (present) HttpMessage mw_http_request(
                                                       template (present) Request p_request := ?
        ) := {
          request := p_request
        } // End of template mw_http_request
        
        template (value) HttpMessage m_http_response(
                                                     in template (value) Response p_response
        ) := {
          response := p_response
        } // End of template m_http_response
        
        template (present) HttpMessage mw_http_response(
                                                        template (present) Response p_response := ?
        ) := {
          response := p_response
        } // End of template mw_http_response
        
    } // End of group http_messages
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    group http_headers {
        
        template (value) HeaderLine m_header_line(
                                                  in template (value) charstring p_header_name,
                                                  in template (value) charstring_list p_header_value
        ) := {
          header_name := p_header_name,
          header_value  := p_header_value
        } // End of template m_header_line
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    } // End of group http_headers
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    group http_requests {
        
        template (omit) Request m_http_request_get(
                                                   in charstring p_uri, 
                                                   in template (value) HeaderLines p_headers,
                                                   in template (omit) HttpMessageBody p_body := omit
        ) := {
          method        := "GET",
          uri           := p_uri,
          version_major := c_http_version_major,
          version_minor := c_http_version_minor,
          header        := p_headers,
          body          := p_body
        } // End of template m_http_request_get
        
    } // End of group http_requests
    
    group http_responses {
        
      template (present) Response mw_http_response_ok(
                                                      template (present) HttpMessageBody p_body  := ?,
                                                      template (present) HeaderLines p_header := ?
      ) := {
          version_major := 1,
          version_minor := 1,
          statuscode    := 200,
          statustext    := "OK",
          header        := p_header,
          body          := p_body
      } // End of template mw_http_response_ok
      
    } // End of group http_responses
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    template (value) HttpMessageBody m_http_message_body_xml(
                                                             in template (value) XmlBody p_xml_body
garciay's avatar
garciay committed
    ) := {
garciay's avatar
garciay committed
        xml_body := p_xml_body
    } // End of template m_http_message_body_xml
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
    template (present) HttpMessageBody mw_http_message_body_xml(
                                                                template (present) XmlBody p_xml_body := ?
garciay's avatar
garciay committed
    ) := {
garciay's avatar
garciay committed
        xml_body := p_xml_body
    } // End of template mw_http_message_body_xml
garciay's avatar
garciay committed
    
garciay's avatar
garciay committed
} // End of module LibItsHttp_Templates