#pragma once

#include "sip_codec_request.hh"

class Base_Type;
class TTCN_Typedescriptor_t;
class TTCN_Buffer;

namespace LibSip__SIPTypesAndValues {
  class SUBSCRIBE__Request;
}

class sip_codec_subscribe_request: public codec_gen <
LibSip__SIPTypesAndValues::SUBSCRIBE__Request,
LibSip__SIPTypesAndValues::SUBSCRIBE__Request>
{
  sip_codec_request _codec;
public:
  explicit sip_codec_subscribe_request() : codec_gen<LibSip__SIPTypesAndValues::SUBSCRIBE__Request, LibSip__SIPTypesAndValues::SUBSCRIBE__Request>(), _codec() { };
  virtual ~sip_codec_subscribe_request() { };

  virtual int encode (const LibSip__SIPTypesAndValues::SUBSCRIBE__Request& msg, OCTETSTRING& data);
  virtual int decode (const OCTETSTRING& data, LibSip__SIPTypesAndValues::SUBSCRIBE__Request& msg, params* p_params = NULL);
}; // End of class sip_codec_subscribe_request
