Newer
Older
#include "loggers.hh" // TODO To be removed
#include "Params.hh"
template<typename TPDUEnc, typename TPDUDec> class Codec
{
Codec() : _params(NULL) { loggers::get_instance().log("Codec::Codec"); };
virtual ~Codec() { loggers::get_instance().log("Codec::~Codec"); };
virtual int decode(const OCTETSTRING& data, TPDUDec& msg, Params* params = NULL) = 0;
template<typename TPDU> class PERCodec
{
public:
virtual int encode(const TPDU& msg, BITSTRING& bits) = 0;
virtual int decode(const BITSTRING& bits, TPDU& msg) = 0;