#ifndef GEONETWORKING_LAYER_H #define GEONETWORKING_LAYER_H #include #include #include "Layer.hh" #include "GeoNetworkingCodec.hh" namespace LibItsGeoNetworking__TestSystem { class GeoNetworkingPort; class GeoNetworkingReq; class GeoNetworkingInd; } namespace LibItsGeoNetworking__TypesAndValues { class GeoNetworkingPdu; } class GeoNetworkingLayer : public TLayer { Params _params; GeoNetworkingCodec _codec; LibItsGeoNetworking__TypesAndValues::GeoNetworkingPdu* _beacon; std::mutex _sendData; // FIXME To be removed, useless void fill_beacon(INTEGER& p_latitude, INTEGER& p_longitude, OCTETSTRING& p_ll_address); public: GeoNetworkingLayer() : TLayer(), _params(), _codec(), _beacon(NULL), _sendData() {}; GeoNetworkingLayer(const std::string& p_type, const std::string& param); virtual ~GeoNetworkingLayer(); void sendMsg(const LibItsGeoNetworking__TestSystem::GeoNetworkingReq&, Params& param); virtual void sendData(OCTETSTRING& data, Params& params); virtual void receiveData(OCTETSTRING& data, Params& params); void send_beacon(); }; #endif