BTPCodec.hh 1.28 KB
Newer Older
filatov's avatar
filatov committed
#ifndef BTPCODEC_H
#define BTPCODEC_H
garciay's avatar
garciay committed

#include "loggers.hh" // TODO To be removed
#include "Params.hh"
garciay's avatar
garciay committed

class Base_Type;
class TTCN_Typedescriptor_t;
class TTCN_Buffer;
namespace LibItsBtp__TestSystem {
garciay's avatar
garciay committed
  class BtpReq;
  class BtpInd;
}

namespace LibItsBtp__TypesAndValues {
garciay's avatar
garciay committed
  class BtpPacket;
}

class BTPCodec: public Codec <
garciay's avatar
garciay committed
  LibItsBtp__TypesAndValues::BtpPacket,
  LibItsBtp__TypesAndValues::BtpPacket>
garciay's avatar
garciay committed
  int encode_ (const Base_Type& type, const TTCN_Typedescriptor_t& field_descriptor, TTCN_Buffer& encoding_buffer);

  int decode_ (Base_Type& type, const TTCN_Typedescriptor_t& field_descriptor, TTCN_Buffer& decoding_buffer);

garciay's avatar
garciay committed
  enum BtpType { btpA, btpB };
garciay's avatar
garciay committed
  BTPCodec() : Codec<LibItsBtp__TypesAndValues::BtpPacket, LibItsBtp__TypesAndValues::BtpPacket>() { _type = BTPCodec::btpA; loggers::get_instance().log("BTPCodec::BTPCodec(D) :%d ", _type); };
garciay's avatar
garciay committed
  virtual ~BTPCodec() { loggers::get_instance().log("BTPCodec::~BTPCodec"); };

  void set_btp_type(const BTPCodec::BtpType p_BtpType);
  virtual int encode (const LibItsBtp__TypesAndValues::BtpPacket&, OCTETSTRING& data);
garciay's avatar
garciay committed
  virtual int decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket&, Params* params = NULL);
garciay's avatar
garciay committed

private:
  BtpType _type;
filatov's avatar
filatov committed
};

#endif