#include "BTPLayer.h" #include "BTPPort.h" void BTPLayer::sendMsg(const BTPA& m, const Params& params){ OCTETSTRING data; _a.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! } class BTPFactory : public LayerFactory { static BTPFactory _f; public: BTPFactory(); virtual Layer * createLayer(const std::string & type, const std::string & param); }; BTPFactory::BTPFactory() { StackFactory::getInstance()->registerLayerFactory("BTP", this); // register factory } Layer * BTPFactory::createLayer(const std::string & type, const std::string & param) { return new BTPLayer(); } BTPFactory BTPFactory::_f;