m2etis
0.4
|
#include <DirectRouting.h>
Public Types | |
typedef message::DirectRoutingInfo< NetworkType > | RoutingInfoType |
typedef std::vector< typename NetworkType::Key > | KeyList |
typedef std::pair< uint64_t, typename NetworkType::Key > | TimePair |
typedef std::vector< TimePair > | TimeList |
Public Member Functions | |
DirectRouting (const unsigned short topic_name, PubSubSystemEnvironment *pssi, const typename NetworkType::Key &root) | |
virtual | ~DirectRouting () |
void | setSelf (const typename NetworkType::Key &self) |
void | setUnsubscriptionListener (const boost::function< void(const typename NetworkType::Key)> &listener) |
void | selfSubscribed (const bool b) |
bool | selfSubscribed () const |
void | configureRoutingInfo (message::ActionType &msgType, typename message::RoutingInfo< NetworkType >::Ptr routingInfo, typename NetworkType::Key &) |
KeyList | getTargetNodes (const message::ActionType mtype, typename message::RoutingInfo< NetworkType >::Ptr routingInfo, typename NetworkType::Key &) const |
bool | processSubscribePayload (typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &, message::ActionType &) override |
void | processUnsubscribePayload (typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &sender, typename NetworkType::Key &, message::ActionType &) |
void | processPublishPayload (typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &, typename NetworkType::Key &, message::ActionType &msgType) |
void | processNotifyPayload (typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &, typename NetworkType::Key &, message::ActionType &) |
void | processControlPayload (typename message::RoutingInfo< NetworkType >::Ptr routingInfo, const typename NetworkType::Key &, typename NetworkType::Key &, message::ActionType &) |
Public Member Functions inherited from m2etis::pubsub::routing::BaseRouting< NetworkType > | |
BaseRouting (unsigned int, PubSubSystemEnvironment *) | |
virtual | ~BaseRouting () |
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 More... | |
Public Attributes | |
const uint64_t | periodic_ |
const uint64_t | purge_distance_ |
PubSubSystemEnvironment * | _pssi |
boost::function< void(const typename NetworkType::Key)> | removed_subscriber_eventlistener_ |
uint64_t | purgeID_ |
Static Public Attributes | |
static const bool | register_forward_subscribe |
static const bool | register_deliver_subscribe |
static const bool | register_forward_unsubscribe |
static const bool | register_deliver_unsubscribe |
static const bool | periodicSubscribtion |
Additional Inherited Members | |
Protected Attributes inherited from m2etis::pubsub::routing::BaseRouting< NetworkType > | |
boost::function< void(typename message::RoutingInfo< NetworkType >::Ptr, typename NetworkType::Key, ControlTarget)> | sendCtrlMsg_ |
Definition at line 41 of file DirectRouting.h.
typedef std::vector<typename NetworkType::Key> m2etis::pubsub::routing::DirectRouting< NetworkType >::KeyList |
Definition at line 44 of file DirectRouting.h.
typedef message::DirectRoutingInfo<NetworkType> m2etis::pubsub::routing::DirectRouting< NetworkType >::RoutingInfoType |
Definition at line 43 of file DirectRouting.h.
typedef std::vector<TimePair> m2etis::pubsub::routing::DirectRouting< NetworkType >::TimeList |
Definition at line 46 of file DirectRouting.h.
typedef std::pair<uint64_t, typename NetworkType::Key> m2etis::pubsub::routing::DirectRouting< NetworkType >::TimePair |
Definition at line 45 of file DirectRouting.h.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
Configures the periodic messages. Every node runs a thread that triggers subscribe messages. These messages are used for periodical tasks like heart beat, checking the cluster size etc. This means that the message is not always from type subscribe or does not have the same subscription information. Every strategy chooses how to use the periodic messages and can configure it in this function.
mtype | Type of message to configure for |
routingInfo | object to be configured with the necessary routing information |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 108 of file DirectRouting.h.
|
inlinevirtual |
Returns a list of target nodes for the specified message type and algoinfo in regard to the node's position in the logic distribution tree.
mtype | the type of the message (SUBSCRIBE, UNSUBSCIBE, or PUBLISH) |
algoinfo | only contains info if mytpe == PUBLISH |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 144 of file DirectRouting.h.
|
inlinevirtual |
Handles a control message. The routing information of this node is updated, a decision about continuing the workflow is made and saved in a routingInfo object together with the necessary information. Control messages are used by routing strategies, that do not build the tree implicitly with subscribe messages, but need more complex control commands.
routingInfo | contains routing information provided by the sender, will be updated with routing decisions |
sender | the senders's key |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 257 of file DirectRouting.h.
|
inlinevirtual |
Handle a notify message
sender | the notifier's key |
algoinfo | the payload created by this algorithm at the notify's node |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 252 of file DirectRouting.h.
|
inlinevirtual |
Handle a publish message
sender | the publisher's key |
algoinfo | the payload created by this algorithm at the publisher's node |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 231 of file DirectRouting.h.
|
inlineoverridevirtual |
Handle a subscribe message
sender | the subscriber's key |
algoinfo | the payload created by this algorithm at the subscriber's node |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 182 of file DirectRouting.h.
|
inlinevirtual |
Handle a unsubscribe message
sender | the unsubscriber's key |
algoinfo | the payload created by this algorithm at the unsubscriber's node |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 211 of file DirectRouting.h.
|
inline |
Definition at line 99 of file DirectRouting.h.
|
inline |
Definition at line 104 of file DirectRouting.h.
|
inline |
Definition at line 90 of file DirectRouting.h.
|
inlinevirtual |
Implements m2etis::pubsub::routing::BaseRouting< NetworkType >.
Definition at line 94 of file DirectRouting.h.
PubSubSystemEnvironment* m2etis::pubsub::routing::DirectRouting< NetworkType >::_pssi |
Definition at line 73 of file DirectRouting.h.
const uint64_t m2etis::pubsub::routing::DirectRouting< NetworkType >::periodic_ |
Definition at line 68 of file DirectRouting.h.
|
static |
Definition at line 65 of file DirectRouting.h.
const uint64_t m2etis::pubsub::routing::DirectRouting< NetworkType >::purge_distance_ |
Definition at line 71 of file DirectRouting.h.
uint64_t m2etis::pubsub::routing::DirectRouting< NetworkType >::purgeID_ |
Definition at line 79 of file DirectRouting.h.
|
static |
Definition at line 55 of file DirectRouting.h.
|
static |
Definition at line 61 of file DirectRouting.h.
|
static |
Definition at line 52 of file DirectRouting.h.
|
static |
Definition at line 58 of file DirectRouting.h.
boost::function<void(const typename NetworkType::Key)> m2etis::pubsub::routing::DirectRouting< NetworkType >::removed_subscriber_eventlistener_ |
Definition at line 77 of file DirectRouting.h.