MapemCodec.hh 1.1 KB
Newer Older
#ifndef MAPEMCODEC_H
#define MAPEMCODEC_H

#include "Codec.hh"
#include "CodecPer.hh"
#include "loggers.hh" // TODO To be removed
#include "Params.hh"

#include "LibItsMapemSpatem_TestSystem.hh"

class MapemPDUCodec : public PERCodec <MAPEM__PDU__Descriptions::MAPEM>
{
public:
  MapemPDUCodec() { loggers::get_instance().log("MapemPDUCodec::MapemPDUCodec(D)"); };
  virtual int encode (const MAPEM__PDU__Descriptions::MAPEM& sapem, BITSTRING& data);
  virtual int decode (const BITSTRING& data, MAPEM__PDU__Descriptions::MAPEM&);
};

class MapemCodec : public Codec<MAPEM__PDU__Descriptions::MAPEM, MAPEM__PDU__Descriptions::MAPEM>
{
  MapemPDUCodec asnCodec;

public:
  MapemCodec() : Codec<MAPEM__PDU__Descriptions::MAPEM, MAPEM__PDU__Descriptions::MAPEM>(), asnCodec() { loggers::get_instance().log("MapemCodec::MapemCodec(D)"); };
  virtual ~MapemCodec() { loggers::get_instance().log("MapemCodec::~MapemCodec"); };

  virtual int encode (const MAPEM__PDU__Descriptions::MAPEM& sapem, OCTETSTRING& data);
  virtual int decode (const OCTETSTRING& data, MAPEM__PDU__Descriptions::MAPEM&, Params* params = NULL);
};

#endif