Loading ccsrc/Framework/src/Params.cc +2 −2 Original line number Diff line number Diff line Loading @@ -12,12 +12,12 @@ void Params::convert(Params& p_param, const std::string p_parameters) { } // Extract parameters try { std::regex rgx ("((\\.*)\\s*=\\s*(\\.*))(,((\\.*)\\s*=\\s*(\\.*)))*"); std::regex rgx ("(\\w+)=(.*?)(,|$)"); std::sregex_iterator begin(p_parameters.cbegin(), p_parameters.cend(), rgx); std::sregex_iterator end = std::sregex_iterator(); for (std::sregex_iterator it = begin; it != end; ++it) { std::smatch m = *it; loggers::loggers::log("Params::convert: %d - %s - %s - %s - %s - %s", m.size(), m[0].str().c_str(), m[1].str().c_str(), m[2].str().c_str(), m[3].str().c_str(), m[4].str().c_str()); loggers::loggers::log("Params::convert: %d - %s - %s - %s - %s", m.size(), m[0].str().c_str(), m[1].str().c_str(), m[2].str().c_str(), m[3].str().c_str()); p_param.insert(std::pair<std::string, std::string>(m[1].str(), m[2].str())); } // End of 'for' statement } Loading ccsrc/Ports/LibIts_ports/GN_ports/GeoNetworkingPort.cc +23 −8 Original line number Diff line number Diff line Loading @@ -13,20 +13,22 @@ namespace LibItsGeoNetworking__TestSystem { GeoNetworkingPort::GeoNetworkingPort(const char *par_port_name) : GeoNetworkingPort_BASE(par_port_name), _params(), _layer(NULL) : GeoNetworkingPort_BASE(par_port_name), _cfg_params(), _layer_params(), _layer(NULL), _codec() { } GeoNetworkingPort::~GeoNetworkingPort() { if (_layer != NULL) { delete _layer; } } void GeoNetworkingPort::set_parameter(const char * parameter_name, const char * parameter_value) { loggers::loggers::log("GeoNetworkingPort::set_parameter: %s=%s", parameter_name, parameter_value); _params.insert(std::pair<std::string, std::string>(std::string(parameter_name), std::string(parameter_value))); _cfg_params.insert(std::pair<std::string, std::string>(std::string(parameter_name), std::string(parameter_value))); } /*void GeoNetworkingPort::Handle_Fd_Event(int fd, boolean is_readable, Loading @@ -52,14 +54,19 @@ void GeoNetworkingPort::Handle_Fd_Event_Readable(int /*fd*/) void GeoNetworkingPort::user_map(const char * system_port) { loggers::loggers::log("GeoNetworkingPort::user_map: %s", system_port); std::map<std::string, std::string>::iterator it = _params.find(std::string("params")); if (it != _params.end()) { std::map<std::string, std::string>::iterator it = _cfg_params.find(std::string("params")); if (it != _cfg_params.end()) { _layer = LayerStackBuilder::GetInstance()->createLayerStack(it->second.c_str()); } } void GeoNetworkingPort::user_unmap(const char * /*system_port*/) void GeoNetworkingPort::user_unmap(const char * system_port) { loggers::loggers::log("GeoNetworkingPort::user_unmap: %s", system_port); if (_layer != NULL) { delete _layer; _layer = NULL; } } Loading @@ -73,8 +80,16 @@ void GeoNetworkingPort::user_stop() } void GeoNetworkingPort::outgoing_send(const GeoNetworkingReq& /*send_par*/) void GeoNetworkingPort::outgoing_send(const GeoNetworkingReq& send_par) { loggers::loggers::log_msg(">>> GeoNetworkingPort::outgoing_send: payload=", send_par); // TODO Does a port implement its layer // TODO Does the port add additionnal values? Yes OCTETSTRING data; _codec.encode (send_par.msgOut(), data); loggers::loggers::log_msg("GeoNetworkingPort::outgoing_send: Call Layer::sendData", data); _layer->sendData(data, _layer_params); } Loading ccsrc/Ports/LibIts_ports/GN_ports/GeoNetworkingPort.hh +23 −19 Original line number Diff line number Diff line Loading @@ -12,14 +12,18 @@ #include "LibItsGeoNetworking_TestSystem.hh" #include "GeoNetworkingCodec.hh" #include "GeoNetworkingLayer.hh" #include "params.hh" #include "Params.hh" namespace LibItsGeoNetworking__TestSystem { class GeoNetworkingPort : public GeoNetworkingPort_BASE { params _params; Params _cfg_params; Params _layer_params; Layer * _layer; GeoNetworkingCodec _codec; public: GeoNetworkingPort(const char *par_port_name = NULL); ~GeoNetworkingPort(); Loading ccsrc/Protocols/ETH/EthernetLayer.cc +3 −0 Original line number Diff line number Diff line Loading @@ -4,9 +4,12 @@ EthernetLayer::EthernetLayer(const std::string & type, const std::string & param) : EthernetLayer() { loggers::loggers::log(">>> EthernetLayer::EthernetLayer: %s, %s", type.c_str(), param.c_str()); // Setup parameters Params::convert(_params, param); _params.log(); } void EthernetLayer::sendData(const OCTETSTRING& data, const Params& params) { loggers::loggers::log_msg(">>> EthernetLayer::sendData: ", data); } void EthernetLayer::receiveData(const OCTETSTRING& data, const Params& info) { Loading ccsrc/Protocols/ETH/EthernetLayer.hh +3 −1 Original line number Diff line number Diff line Loading @@ -2,10 +2,12 @@ #define ETHERNET_FINAL_LAYER_H #include "Layer.hh" #include "Params.hh" class EthernetLayer : public Layer { Params _params; public: inline EthernetLayer() : Layer() {} inline EthernetLayer() : Layer(), _params() {} EthernetLayer(const std::string & type, const std::string & param); virtual ~EthernetLayer() {} Loading Loading
ccsrc/Framework/src/Params.cc +2 −2 Original line number Diff line number Diff line Loading @@ -12,12 +12,12 @@ void Params::convert(Params& p_param, const std::string p_parameters) { } // Extract parameters try { std::regex rgx ("((\\.*)\\s*=\\s*(\\.*))(,((\\.*)\\s*=\\s*(\\.*)))*"); std::regex rgx ("(\\w+)=(.*?)(,|$)"); std::sregex_iterator begin(p_parameters.cbegin(), p_parameters.cend(), rgx); std::sregex_iterator end = std::sregex_iterator(); for (std::sregex_iterator it = begin; it != end; ++it) { std::smatch m = *it; loggers::loggers::log("Params::convert: %d - %s - %s - %s - %s - %s", m.size(), m[0].str().c_str(), m[1].str().c_str(), m[2].str().c_str(), m[3].str().c_str(), m[4].str().c_str()); loggers::loggers::log("Params::convert: %d - %s - %s - %s - %s", m.size(), m[0].str().c_str(), m[1].str().c_str(), m[2].str().c_str(), m[3].str().c_str()); p_param.insert(std::pair<std::string, std::string>(m[1].str(), m[2].str())); } // End of 'for' statement } Loading
ccsrc/Ports/LibIts_ports/GN_ports/GeoNetworkingPort.cc +23 −8 Original line number Diff line number Diff line Loading @@ -13,20 +13,22 @@ namespace LibItsGeoNetworking__TestSystem { GeoNetworkingPort::GeoNetworkingPort(const char *par_port_name) : GeoNetworkingPort_BASE(par_port_name), _params(), _layer(NULL) : GeoNetworkingPort_BASE(par_port_name), _cfg_params(), _layer_params(), _layer(NULL), _codec() { } GeoNetworkingPort::~GeoNetworkingPort() { if (_layer != NULL) { delete _layer; } } void GeoNetworkingPort::set_parameter(const char * parameter_name, const char * parameter_value) { loggers::loggers::log("GeoNetworkingPort::set_parameter: %s=%s", parameter_name, parameter_value); _params.insert(std::pair<std::string, std::string>(std::string(parameter_name), std::string(parameter_value))); _cfg_params.insert(std::pair<std::string, std::string>(std::string(parameter_name), std::string(parameter_value))); } /*void GeoNetworkingPort::Handle_Fd_Event(int fd, boolean is_readable, Loading @@ -52,14 +54,19 @@ void GeoNetworkingPort::Handle_Fd_Event_Readable(int /*fd*/) void GeoNetworkingPort::user_map(const char * system_port) { loggers::loggers::log("GeoNetworkingPort::user_map: %s", system_port); std::map<std::string, std::string>::iterator it = _params.find(std::string("params")); if (it != _params.end()) { std::map<std::string, std::string>::iterator it = _cfg_params.find(std::string("params")); if (it != _cfg_params.end()) { _layer = LayerStackBuilder::GetInstance()->createLayerStack(it->second.c_str()); } } void GeoNetworkingPort::user_unmap(const char * /*system_port*/) void GeoNetworkingPort::user_unmap(const char * system_port) { loggers::loggers::log("GeoNetworkingPort::user_unmap: %s", system_port); if (_layer != NULL) { delete _layer; _layer = NULL; } } Loading @@ -73,8 +80,16 @@ void GeoNetworkingPort::user_stop() } void GeoNetworkingPort::outgoing_send(const GeoNetworkingReq& /*send_par*/) void GeoNetworkingPort::outgoing_send(const GeoNetworkingReq& send_par) { loggers::loggers::log_msg(">>> GeoNetworkingPort::outgoing_send: payload=", send_par); // TODO Does a port implement its layer // TODO Does the port add additionnal values? Yes OCTETSTRING data; _codec.encode (send_par.msgOut(), data); loggers::loggers::log_msg("GeoNetworkingPort::outgoing_send: Call Layer::sendData", data); _layer->sendData(data, _layer_params); } Loading
ccsrc/Ports/LibIts_ports/GN_ports/GeoNetworkingPort.hh +23 −19 Original line number Diff line number Diff line Loading @@ -12,14 +12,18 @@ #include "LibItsGeoNetworking_TestSystem.hh" #include "GeoNetworkingCodec.hh" #include "GeoNetworkingLayer.hh" #include "params.hh" #include "Params.hh" namespace LibItsGeoNetworking__TestSystem { class GeoNetworkingPort : public GeoNetworkingPort_BASE { params _params; Params _cfg_params; Params _layer_params; Layer * _layer; GeoNetworkingCodec _codec; public: GeoNetworkingPort(const char *par_port_name = NULL); ~GeoNetworkingPort(); Loading
ccsrc/Protocols/ETH/EthernetLayer.cc +3 −0 Original line number Diff line number Diff line Loading @@ -4,9 +4,12 @@ EthernetLayer::EthernetLayer(const std::string & type, const std::string & param) : EthernetLayer() { loggers::loggers::log(">>> EthernetLayer::EthernetLayer: %s, %s", type.c_str(), param.c_str()); // Setup parameters Params::convert(_params, param); _params.log(); } void EthernetLayer::sendData(const OCTETSTRING& data, const Params& params) { loggers::loggers::log_msg(">>> EthernetLayer::sendData: ", data); } void EthernetLayer::receiveData(const OCTETSTRING& data, const Params& info) { Loading
ccsrc/Protocols/ETH/EthernetLayer.hh +3 −1 Original line number Diff line number Diff line Loading @@ -2,10 +2,12 @@ #define ETHERNET_FINAL_LAYER_H #include "Layer.hh" #include "Params.hh" class EthernetLayer : public Layer { Params _params; public: inline EthernetLayer() : Layer() {} inline EthernetLayer() : Layer(), _params() {} EthernetLayer(const std::string & type, const std::string & param); virtual ~EthernetLayer() {} Loading