Skip to content
Snippets Groups Projects
Commit 3da139f6 authored by YannGarcia's avatar YannGarcia
Browse files

Remove useless files

parent bafc335b
No related branches found
No related tags found
1 merge request!2Closing TTF T024/025
#pragma once
#include "params.hh"
class OCTETSTRING;
class CHARSTRING;
class BITSTRING;
struct asn_TYPE_descriptor_s;
class asn1_recode_oer {
protected:
int xer2oer(const asn_TYPE_descriptor_s &td, TTCN_Buffer &buf);
int oer2xer(const asn_TYPE_descriptor_s &td, TTCN_Buffer &buf);
int recode(const asn_TYPE_descriptor_s &td, int from, int to, TTCN_Buffer &buf);
};
template <typename TPDU> class oer_codec : public asn1_recode_oer {
public:
virtual int encode(const TPDU &msg, BITSTRING &bits) = 0;
virtual int decode(const BITSTRING &bits, TPDU &msg) = 0;
protected:
inline int _decode(const TTCN_Typedescriptor_t &ttcn, const asn_TYPE_descriptor_s &td, const BITSTRING &p_data, TPDU &msg) {
TTCN_Buffer buf(bit2oct(p_data));
TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_WARNING);
int rc = oer2xer(td, buf);
if (rc > 0) {
msg.decode(ttcn, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
rc = buf.get_len();
}
return rc;
}
inline int _encode(const TTCN_Typedescriptor_t &ttcn, const asn_TYPE_descriptor_s &td, const TPDU &msg, BITSTRING &p_data) {
int rc = -1;
TTCN_Buffer buf;
TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_WARNING);
msg.encode(ttcn, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
if (buf.get_len() > 0) {
rc = xer2oer(td, buf);
if (rc > 0) {
p_data = oct2bit(OCTETSTRING(buf.get_len(), buf.get_data()));
}
}
return rc;
}
};
#endif
/*!
* \file per_codec.hh
* \brief Header file for TITAN message to ASN.1 PER message codec.
* \author ETSI STF525
* \copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved.
* \version 0.1
*/
#pragma once
#include "asn1_recode_per.hh"
#include "params.hh"
class BITSTRING; //! Forward declaration of TITAN class
class TTCN_Typedescriptor_t; //! Forward declaration of TITAN class
struct asn_TYPE_descriptor_s; //! Declare asn1c class
/*!
* \class per_codec
* \brief This class provides the interface for all ASN.1 PER codecs.
* \remark This class uses asn1c external tool
*/
template <typename TPDU> class per_codec : public asn1_recode_per {
public: //! \publicsection
/*!
* \fn int encode(const TPDU& p_message, BITSTRING& p_bitstring);
* \brief Encode TITAN message into ASN.1 PER message
* \param[in] p_message The PDU message to encode
* \param[out] p_bitstring The encoded PDU message in bit string format
* \pure
*/
virtual int encode(const TPDU &p_message, BITSTRING &p_bitstring) = 0;
/*!
* \fn int decode(const BITSTRING& p_bitstring, TPDU& p_message);
* \brief Decode ASN.1 PER message into TITAN message
* \param[in] p_bitstring The network message in bit string format to decode
* \param[out] p_message The PDU message
* \pure
*/
virtual int decode(const BITSTRING &p_bitstring, TPDU &p_message) = 0;
protected: //! \protectedsection
int _decode(const TTCN_Typedescriptor_t &ttcn, const asn_TYPE_descriptor_s &td, const BITSTRING &p_data, TPDU &msg);
int _encode(const TTCN_Typedescriptor_t &ttcn, const asn_TYPE_descriptor_s &td, const TPDU &msg, BITSTRING &p_data);
}; // End of class per_codec
#include "per_codec.t.hh"
#include <TTCN3.hh>
template <class TPDU> int per_codec<TPDU>::_decode(const TTCN_Typedescriptor_t &ttcn, const asn_TYPE_descriptor_s &td, const BITSTRING &p_data, TPDU &msg) {
TTCN_Buffer buf(bit2oct(p_data));
TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_WARNING);
int rc = per2ber(td, buf);
if (rc > 0) {
msg.decode(ttcn, buf, TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
rc = buf.get_len();
}
return rc;
}
template <class TPDU> int per_codec<TPDU>::_encode(const TTCN_Typedescriptor_t &ttcn, const asn_TYPE_descriptor_s &td, const TPDU &msg, BITSTRING &p_data) {
int rc = -1;
TTCN_Buffer buf;
TTCN_EncDec::set_error_behavior(TTCN_EncDec::ET_ALL, TTCN_EncDec::EB_WARNING);
msg.encode(ttcn, buf, TTCN_EncDec::CT_BER, BER_ENCODE_DER);
if (buf.get_len() > 0) {
rc = ber2per(td, buf);
if (rc > 0) {
p_data = oct2bit(OCTETSTRING(buf.get_len(), buf.get_data()));
}
}
return rc;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment