GeoNetworkingCodec.hh 1.01 KB
Newer Older
#ifndef GNCODEC_H
#define GNCODEC_H
namespace LibItsGeoNetworking__TypesAndValues {
	class GeoNetworkingPdu;
	class ExtendedHeader;
	class DecodedPayload;
}

class GeoNetworkingCodec : public Codec<LibItsGeoNetworking__TypesAndValues::GeoNetworkingPdu, LibItsGeoNetworking__TypesAndValues::GeoNetworkingPdu> {

	unsigned int _plLength_position;

	int encode_ (const Base_Type& type, const TTCN_Typedescriptor_t& field_descriptor, TTCN_Buffer& encoding_buffer);
	int encode_extendedHeader(const LibItsGeoNetworking__TypesAndValues::ExtendedHeader& u, TTCN_Buffer& encoding_buffer);
	int encode_decodedPayload(const LibItsGeoNetworking__TypesAndValues::DecodedPayload& u, TTCN_Buffer& encoding_buffer);

public:
	GeoNetworkingCodec() : _plLength_position(0) {};

    virtual int encode (const LibItsGeoNetworking__TypesAndValues::GeoNetworkingPdu&, OCTETSTRING& data);
    virtual int decode (const OCTETSTRING& data, LibItsGeoNetworking__TypesAndValues::GeoNetworkingPdu&);