DENMCodec.cc 1.27 KB
Newer Older
garciay's avatar
garciay committed
#include "LibItsDenm_TestSystem.hh"
#include "DENMCodec.hh"
filatov's avatar
filatov committed
#include "asn1/asn_application.h" // from asn1c
garciay's avatar
garciay committed
#include "loggers.hh"

int DENMCodec::encode (const DENM__PDU__Descriptions::DENM& p_denm, OCTETSTRING& p_data)
{
  loggers::get_instance().log_msg(">>> DENMCodec::encode: ", p_denm);
  
  BITSTRING b;
  int rc = asnCodec.encode(p_denm, b);
garciay's avatar
garciay committed
    p_data = bit2oct(b);
  }
  loggers::get_instance().log("<<< DENMCodec::encode: %d", rc);
  return rc;
}

int DENMCodec::decode (const OCTETSTRING& p_data, DENM__PDU__Descriptions::DENM& p_denm, Params* params)
{
  loggers::get_instance().log_msg(">>> DENMCodec::decode:", p_data);
garciay's avatar
garciay committed
  
  int rc = asnCodec.decode(oct2bit(p_data), p_denm);
garciay's avatar
garciay committed
  loggers::get_instance().log("DENMCodec::decode: ASN.1 codec returned %d", rc);
garciay's avatar
garciay committed
    loggers::get_instance().log_msg("DENMCodec::decode: ", p_denm);
garciay's avatar
garciay committed
  }
  return rc;
}

filatov's avatar
filatov committed
extern "C" {
garciay's avatar
garciay committed
  extern asn_TYPE_descriptor_t asn_DEF_DENM;
garciay's avatar
garciay committed
int DENMPDUCodec::encode (const DENM__PDU__Descriptions::DENM& p_denm, BITSTRING& p_data)
{
garciay's avatar
garciay committed
  return _encode(DENM__PDU__Descriptions::DENM_descr_, asn_DEF_DENM, p_denm, p_data);
garciay's avatar
garciay committed
}

int DENMPDUCodec::decode (const BITSTRING& p_data, DENM__PDU__Descriptions::DENM& p_denm)
{
garciay's avatar
garciay committed
  return _decode(DENM__PDU__Descriptions::DENM_descr_, asn_DEF_DENM, p_data, p_denm);
garciay's avatar
garciay committed
}