18 #ifndef IGN_TRANSPORT_NODESHARED_HH_ 19 #define IGN_TRANSPORT_NODESHARED_HH_ 22 #pragma warning(push, 0) 24 #include <google/protobuf/message.h> 36 #include "ignition/transport/Export.hh" 54 class NodeSharedPrivate;
67 public:
void RunReceptionTask();
82 const size_t _dataSize,
87 public:
void RecvMsgUpdate();
164 public:
void TriggerSubscriberCallbacks(
172 public:
void RecvControlUpdate();
175 public:
void RecvSrvRequest();
178 public:
void RecvSrvResponse();
240 private:
bool InitializeSockets();
262 private:
const int kMsgDiscPort = 11317;
265 private:
const int kSrvDiscPort = 11318;
288 public:
bool HasSubscriber(
297 public:
bool HasSubscriber(
318 public:
bool RemoveHandlersForNode(
360 private:
friend Node;
361 private:
friend NodePrivate;
Node(const NodeOptions &_options=NodeOptions())
Constructor.
bool haveRaw
True iff there are any raw local subscribers.
Definition: NodeShared.hh:109
std::map< std::string, ISubscriptionHandler_M > localHandlers
This is a map of the standard local callback handlers. The key is the topic name, and the value is an...
Definition: NodeShared.hh:98
bool haveLocal
True iff there are any standard local subscribers.
Definition: NodeShared.hh:106
bool haveRemote
True iff this Publisher has any remote subscribers.
Definition: NodeShared.hh:137
TopicStorage< MessagePublisher > remoteSubscribers
Remote subscribers.
Definition: NodeShared.hh:274
HandlerStorage< RawSubscriptionHandler > raw
Raw local subscriptions. Keeping these separate from localSubscriptions allows us to avoid an unneces...
Definition: NodeShared.hh:328
std::string myControlAddress
My pub/sub control address.
Definition: NodeShared.hh:346
HandlerInfo contains information about callback handlers which is useful for local publishers and mes...
Definition: NodeShared.hh:93
Uuid replierId
Replier socket identity.
Definition: NodeShared.hh:250
HandlerWrapper localSubscribers
Definition: NodeShared.hh:331
HandlerStorage< ISubscriptionHandler > normal
Normal local subscriptions.
Definition: NodeShared.hh:323
HandlerStorage< IRepHandler > repliers
Service call repliers.
Definition: NodeShared.hh:334
Class to store and manage service call handlers.
Definition: HandlerStorage.hh:33
std::string myReplierAddress
My replier service call address.
Definition: NodeShared.hh:352
Private data for the Node class. This class should not be directly used. You should use the Node clas...
Definition: NodeShared.hh:59
int verbose
Print activity to stdout.
Definition: NodeShared.hh:340
std::string pUuid
Process UUID.
Definition: NodeShared.hh:253
A portable class for representing a Universally Unique Identifier.
Definition: Uuid.hh:41
Uuid responseReceiverId
Response receiver socket identity.
Definition: NodeShared.hh:247
std::string hostAddr
IP address of this host.
Definition: NodeShared.hh:355
This struct wraps up the two different types of subscription handlers: normal (deserialized) and raw ...
Definition: NodeShared.hh:280
void(void *_data, void *_hint) DeallocFunc
Definition: TransportTypes.hh:167
*brief Advertise a new service without any output parameter *In this version the callback is a free function *param [in] _topic Topic name associated to the service *param [in] _cb Callback to handle the service request with the *following void(*) const AdvertiseServiceOptions ReplyT const std::string _topic)
Definition: Node.hh:528
This class stores all the information about a message publisher.
Definition: Publisher.hh:198
This class stores all the information about a service publisher.
Definition: Publisher.hh:314
std::recursive_mutex mutex
Mutex to guarantee exclusive access between all threads.
Definition: NodeShared.hh:259
std::thread threadReception
thread in charge of receiving and handling incoming messages.
Definition: NodeShared.hh:256
std::string myRequesterAddress
My requester service call address.
Definition: NodeShared.hh:349
Definition: AdvertiseOptions.hh:27
Store address information about topics and provide convenient methods for adding new topics,...
Definition: TopicStorage.hh:37
std::map< std::string, RawSubscriptionHandler_M > rawHandlers
This is a map of the raw local callback handlers. The key is the topic name, and the value is another...
Definition: NodeShared.hh:103
This struct provides information about the Subscribers of a Publisher. It should only be retrieved us...
Definition: NodeShared.hh:134
HandlerStorage< IReqHandler > requests
Pending service call requests.
Definition: NodeShared.hh:337
std::string myAddress
My pub/sub address.
Definition: NodeShared.hh:343