GeoNetworkingLayer.hh 1006 Bytes
Newer Older
garciay's avatar
garciay committed
#ifndef GEONETWORKING_LAYER_H
#define GEONETWORKING_LAYER_H
garciay's avatar
garciay committed

garciay's avatar
garciay committed
#include <thread>
#include <mutex>

garciay's avatar
garciay committed
#include "Layer.hh"
#include "GeoNetworkingCodec.hh"

namespace LibItsGeoNetworking__TestSystem {
garciay's avatar
garciay committed
  class GeoNetworkingPort;
  class GeoNetworkingReq;
  class GeoNetworkingInd;
garciay's avatar
garciay committed
}

class GeoNetworkingLayer : public TLayer<LibItsGeoNetworking__TestSystem::GeoNetworkingPort> {
garciay's avatar
garciay committed
  Params _params;
  GeoNetworkingCodec _codec;
garciay's avatar
garciay committed
  std::thread * _thread;
  bool _running;
garciay's avatar
garciay committed
public:
garciay's avatar
garciay committed
  GeoNetworkingLayer() : TLayer<LibItsGeoNetworking__TestSystem::GeoNetworkingPort>(), _params(), _codec() {};
garciay's avatar
garciay committed
  GeoNetworkingLayer(const std::string & p_type, const std::string & param);
garciay's avatar
garciay committed
  virtual ~GeoNetworkingLayer();
garciay's avatar
garciay committed
  
garciay's avatar
garciay committed
  void sendMsg(const LibItsGeoNetworking__TestSystem::GeoNetworkingReq&, Params& param);
garciay's avatar
garciay committed
  
  virtual void sendData(OCTETSTRING& data, Params& params);
  virtual void receiveData(OCTETSTRING& data, Params& params);
garciay's avatar
garciay committed

  void start_beconning();
  void stop_beaconing();
garciay's avatar
garciay committed
};

#endif