22 #ifndef __M2ETIS_PUBSUB_ROUTING_BASEROUTING_H__
23 #define __M2ETIS_PUBSUB_ROUTING_BASEROUTING_H__
36 template<
class NetworkType>
38 typedef std::vector<typename NetworkType::Key> KeyList;
virtual void processNotifyPayload(typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &receiver, message::ActionType &msgType)=0
virtual void setUnsubscriptionListener(const boost::function< void(const typename NetworkType::Key)> &listener)=0
virtual KeyList getTargetNodes(const message::ActionType mtype, typename message::RoutingInfo< NetworkType >::Ptr routingInfo, typename NetworkType::Key &receiver) const =0
virtual void processControlPayload(typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &receiver, message::ActionType &msgType)=0
virtual void processUnsubscribePayload(typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &receiver, message::ActionType &msgType)=0
boost::function< void(typename message::RoutingInfo< NetworkType >::Ptr, typename NetworkType::Key, ControlTarget)> sendCtrlMsg_
BaseRouting(unsigned int, PubSubSystemEnvironment *)
virtual void processPublishPayload(typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &receiver, message::ActionType &msgType)=0
boost::shared_ptr< RoutingInfo< NetworkType > > Ptr
void configureSendCallback(const boost::function< void(typename message::RoutingInfo< NetworkType >::Ptr, const typename NetworkType::Key &, ControlTarget)> &func)
with this function, new messages can be sent directly to nodes
virtual void configureRoutingInfo(message::ActionType &msgType, typename message::RoutingInfo< NetworkType >::Ptr routingInfo, typename NetworkType::Key &receiver)=0
virtual bool processSubscribePayload(typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &receiver, message::ActionType &msgType)=0