Loading ccsrc/Framework/Layer.h +5 −4 Original line number Diff line number Diff line Loading @@ -27,18 +27,19 @@ class Layer { template <typename TPort> class TLayer : public Layer { typedef std::vector<TPort*> TPortList; typedef typename std::vector<TPort*>::iterator TPortListIterator; TPortList upperPorts; public: TLayer(){} void addUpperPort(TPort*); void removeUpperPort(TPort*); /* template <typename Msg> void receiveToAllPorts(Msg* m, const Param& param) { for(TPortList::iterator it=upperPorts.begin(); it<upperPorts.end(); ++it){ template <typename T> void receiveToAllPorts(const T& m, const Params& param) { for(TPortListIterator it=upperPorts.begin(); it<upperPorts.end(); ++it){ (*it)->receiveMsg(m, param); } } */ }; class LayerFactory { Loading ccsrc/Framework/Makefile 0 → 100755 +14 −0 Original line number Diff line number Diff line PROJECTROOT = .. BUILDROOT = ../../bin PROJECT = its-framework DEBUG = yes testdir = tests srcdir = src alibs = $(PROJECT) sources := LayerFactory.cpp headers := Codec.h Layer.h includes := . .. include ../common.mk ccsrc/Protocols/BTP/BTPCodec.cpp +2 −11 Original line number Diff line number Diff line #include "BTPCodec.h" int BTPACodec::encode (const BTPA& msg, OCTETSTRING& data) int BTPCodec::encode (const LibItsBtp__TypesAndValues::BtpPacket& msg, OCTETSTRING& data) { return 0; } int BTPACodec::decode (const OCTETSTRING& data, BTPA& msg) { return 0; } int BTPBCodec::encode (const BTPB& msg, OCTETSTRING& data) { return 0; } int BTPBCodec::decode (const OCTETSTRING& data, BTPB& msg) int BTPCodec::decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket& msg) { return 0; } ccsrc/Protocols/BTP/BTPCodec.h +4 −8 Original line number Diff line number Diff line Loading @@ -3,14 +3,10 @@ #include "BTPTypes.h" #include "Codec.h" class BTPACodec : public Codec<BTPA> { virtual int encode (const BTPA& msg, OCTETSTRING& data); virtual int decode (const OCTETSTRING& data, BTPA& msg); }; class BTPBCodec : public Codec<BTPB> { virtual int encode (const BTPB& msg, OCTETSTRING& data); virtual int decode (const OCTETSTRING& data, BTPB& msg); class BTPCodec : public Codec<LibItsBtp__TypesAndValues::BtpPacket> { public: virtual int encode (const LibItsBtp__TypesAndValues::BtpPacket&, OCTETSTRING& data); virtual int decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket&); }; #endif ccsrc/Protocols/BTP/BTPLayer.cpp +10 −13 Original line number Diff line number Diff line #include "BTPLayer.h" #include "BTPPort.h" void BTPLayer::sendMsg(const BTPA& m, const Params& params){ void BTPLayer::sendMsg(const LibItsBtp__TypesAndValues::BtpPacket& m, const Params& params){ OCTETSTRING data; _a.encode(m, data); _codec.encode(m, data); sendData(data, Params()); } void BTPLayer::sendMsg(const BTPB& m, const Params& params){ OCTETSTRING data; _b.encode(m, data); sendData(data, Params()); } void BTPLayer::sendData(const OCTETSTRING& data, const Params& params){ sendToAllLayers(data, params); } void BTPLayer::receiveData(const OCTETSTRING& data, const Params& info) { BTPB b; BTPA a; receiveToAllPorts(a, Params()); receiveToAllPorts(b, Params()); receiveToAllLayers(data, Params()); //a.payload shall be sent! LibItsBtp__TypesAndValues::BtpPacket p; _codec.decode(data, p); receiveToAllPorts(p, info); if(p.payload().is_present()){ receiveToAllLayers(p.payload()().rawPayload(), info); } } class BTPFactory : public LayerFactory { Loading @@ -33,8 +30,8 @@ public: BTPFactory::BTPFactory() { StackFactory::getInstance()->registerLayerFactory("BTP", this); // register factory StackFactory::getInstance()->registerLayerFactory("BTP", this); } Layer * BTPFactory::createLayer(const std::string & type, const std::string & param) Loading Loading
ccsrc/Framework/Layer.h +5 −4 Original line number Diff line number Diff line Loading @@ -27,18 +27,19 @@ class Layer { template <typename TPort> class TLayer : public Layer { typedef std::vector<TPort*> TPortList; typedef typename std::vector<TPort*>::iterator TPortListIterator; TPortList upperPorts; public: TLayer(){} void addUpperPort(TPort*); void removeUpperPort(TPort*); /* template <typename Msg> void receiveToAllPorts(Msg* m, const Param& param) { for(TPortList::iterator it=upperPorts.begin(); it<upperPorts.end(); ++it){ template <typename T> void receiveToAllPorts(const T& m, const Params& param) { for(TPortListIterator it=upperPorts.begin(); it<upperPorts.end(); ++it){ (*it)->receiveMsg(m, param); } } */ }; class LayerFactory { Loading
ccsrc/Framework/Makefile 0 → 100755 +14 −0 Original line number Diff line number Diff line PROJECTROOT = .. BUILDROOT = ../../bin PROJECT = its-framework DEBUG = yes testdir = tests srcdir = src alibs = $(PROJECT) sources := LayerFactory.cpp headers := Codec.h Layer.h includes := . .. include ../common.mk
ccsrc/Protocols/BTP/BTPCodec.cpp +2 −11 Original line number Diff line number Diff line #include "BTPCodec.h" int BTPACodec::encode (const BTPA& msg, OCTETSTRING& data) int BTPCodec::encode (const LibItsBtp__TypesAndValues::BtpPacket& msg, OCTETSTRING& data) { return 0; } int BTPACodec::decode (const OCTETSTRING& data, BTPA& msg) { return 0; } int BTPBCodec::encode (const BTPB& msg, OCTETSTRING& data) { return 0; } int BTPBCodec::decode (const OCTETSTRING& data, BTPB& msg) int BTPCodec::decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket& msg) { return 0; }
ccsrc/Protocols/BTP/BTPCodec.h +4 −8 Original line number Diff line number Diff line Loading @@ -3,14 +3,10 @@ #include "BTPTypes.h" #include "Codec.h" class BTPACodec : public Codec<BTPA> { virtual int encode (const BTPA& msg, OCTETSTRING& data); virtual int decode (const OCTETSTRING& data, BTPA& msg); }; class BTPBCodec : public Codec<BTPB> { virtual int encode (const BTPB& msg, OCTETSTRING& data); virtual int decode (const OCTETSTRING& data, BTPB& msg); class BTPCodec : public Codec<LibItsBtp__TypesAndValues::BtpPacket> { public: virtual int encode (const LibItsBtp__TypesAndValues::BtpPacket&, OCTETSTRING& data); virtual int decode (const OCTETSTRING& data, LibItsBtp__TypesAndValues::BtpPacket&); }; #endif
ccsrc/Protocols/BTP/BTPLayer.cpp +10 −13 Original line number Diff line number Diff line #include "BTPLayer.h" #include "BTPPort.h" void BTPLayer::sendMsg(const BTPA& m, const Params& params){ void BTPLayer::sendMsg(const LibItsBtp__TypesAndValues::BtpPacket& m, const Params& params){ OCTETSTRING data; _a.encode(m, data); _codec.encode(m, data); sendData(data, Params()); } void BTPLayer::sendMsg(const BTPB& m, const Params& params){ OCTETSTRING data; _b.encode(m, data); sendData(data, Params()); } void BTPLayer::sendData(const OCTETSTRING& data, const Params& params){ sendToAllLayers(data, params); } void BTPLayer::receiveData(const OCTETSTRING& data, const Params& info) { BTPB b; BTPA a; receiveToAllPorts(a, Params()); receiveToAllPorts(b, Params()); receiveToAllLayers(data, Params()); //a.payload shall be sent! LibItsBtp__TypesAndValues::BtpPacket p; _codec.decode(data, p); receiveToAllPorts(p, info); if(p.payload().is_present()){ receiveToAllLayers(p.payload()().rawPayload(), info); } } class BTPFactory : public LayerFactory { Loading @@ -33,8 +30,8 @@ public: BTPFactory::BTPFactory() { StackFactory::getInstance()->registerLayerFactory("BTP", this); // register factory StackFactory::getInstance()->registerLayerFactory("BTP", this); } Layer * BTPFactory::createLayer(const std::string & type, const std::string & param) Loading