Private data for the Node class. This class should not be directly used. You should use the Node class. More...
#include <ignition/transport/NodeShared.hh>
Classes | |
struct | HandlerInfo |
HandlerInfo contains information about callback handlers which is useful for local publishers and message receivers. You should only retrieve a HandlerInfo by calling CheckHandlerInfo(const std::string &_topic) const. More... | |
struct | HandlerWrapper |
This struct wraps up the two different types of subscription handlers: normal (deserialized) and raw (serialized). This wrapper keeps the two sets of subscription handlers coordinated while allowing them to act independently when necessary. More... | |
struct | SubscriberInfo |
This struct provides information about the Subscribers of a Publisher. It should only be retrieved using CheckSubscriberInfo(const std::string&, const std::string&) const. The relevant subscriber info is a superset of the relevant HandlerInfo so we extend that struct. More... | |
Public Member Functions | |
bool | AdvertisePublisher (const ServicePublisher &_publisher) |
Pass through to bool Advertise(const Pub &_publisher) More... | |
HandlerInfo | CheckHandlerInfo (const std::string &_topic) const |
Get information about the local and raw subscribers that are attached to this NodeShared. More... | |
SubscriberInfo | CheckSubscriberInfo (const std::string &_topic, const std::string &_msgType) const |
Get information about the nodes that are subscribed to the publishers of this NodeShared. More... | |
bool | DiscoverService (const std::string &_topic) const |
Pass through to bool Discovery::Discover(const std::string &_topic) const. More... | |
void | OnNewConnection (const MessagePublisher &_pub) |
Callback executed when the discovery detects new topics. More... | |
void | OnNewDisconnection (const MessagePublisher &_pub) |
Callback executed when the discovery detects disconnections. More... | |
void | OnNewSrvConnection (const ServicePublisher &_pub) |
Callback executed when the discovery detects a new service call. More... | |
void | OnNewSrvDisconnection (const ServicePublisher &_pub) |
Callback executed when a service call is no longer available. More... | |
bool | Publish (const std::string &_topic, char *_data, const size_t _dataSize, DeallocFunc *_ffn, const std::string &_msgType) |
Publish data. More... | |
void | RecvControlUpdate () |
Method in charge of receiving the control updates (when a new remote subscriber notifies its presence for example). More... | |
void | RecvMsgUpdate () |
Method in charge of receiving the topic updates. More... | |
void | RecvSrvRequest () |
Method in charge of receiving the service call requests. More... | |
void | RecvSrvResponse () |
Method in charge of receiving the service call responses. More... | |
void | RunReceptionTask () |
Receive data and control messages. More... | |
void | SendPendingRemoteReqs (const std::string &_topic, const std::string &_reqType, const std::string &_repType) |
Try to send all the requests for a given service call and a pair of request/response types. More... | |
bool | TopicPublishers (const std::string &_topic, SrvAddresses_M &_publishers) const |
Pass through to bool Publishers(const std::string &_topic, Addresses_M<Pub> &_publishers) const. More... | |
void | TriggerCallbacks (const MessageInfo &_info, const std::string &_msgData, const HandlerInfo &_handlerInfo) |
Call the SubscriptionHandler callbacks (local and raw) for this NodeShared. More... | |
void | TriggerSubscriberCallbacks (const std::string &_topic, const std::string &_msgData, const std::string &_msgType, const HandlerInfo &_handlerInfo) |
Call the SubscriptionHandler callbacks (local and raw) for this NodeShared. More... | |
Static Public Member Functions | |
static NodeShared * | Instance () |
NodeShared is a singleton. This method gets the NodeShared instance shared between all the nodes. More... | |
Public Attributes | |
std::string | hostAddr |
IP address of this host. More... | |
HandlerWrapper | localSubscribers |
std::recursive_mutex | mutex |
Mutex to guarantee exclusive access between all threads. More... | |
std::string | myAddress |
My pub/sub address. More... | |
std::string | myControlAddress |
My pub/sub control address. More... | |
std::string | myReplierAddress |
My replier service call address. More... | |
std::string | myRequesterAddress |
My requester service call address. More... | |
std::string | pUuid |
Process UUID. More... | |
TopicStorage< MessagePublisher > | remoteSubscribers |
Remote subscribers. More... | |
Uuid | replierId |
Replier socket identity. More... | |
HandlerStorage< IRepHandler > | repliers |
Service call repliers. More... | |
HandlerStorage< IReqHandler > | requests |
Pending service call requests. More... | |
Uuid | responseReceiverId |
Response receiver socket identity. More... | |
std::thread | threadReception |
thread in charge of receiving and handling incoming messages. More... | |
int | verbose |
Print activity to stdout. More... | |
Static Public Attributes | |
static const int | kMsgDiscPort = 10317 |
Port used by the message discovery layer. More... | |
static const int | kSrvDiscPort = 10318 |
Port used by the service discovery layer. More... | |
Protected Member Functions | |
NodeShared () | |
Constructor. More... | |
virtual | ~NodeShared () |
Destructor. More... | |
Detailed Description
Private data for the Node class. This class should not be directly used. You should use the Node class.
Constructor & Destructor Documentation
◆ NodeShared()
|
protected |
Constructor.
◆ ~NodeShared()
|
protectedvirtual |
Destructor.
Member Function Documentation
◆ AdvertisePublisher()
bool AdvertisePublisher | ( | const ServicePublisher & | _publisher | ) |
Pass through to bool Advertise(const Pub &_publisher)
- Parameters
-
[in] _publisher Publisher's information to advertise.
- Returns
- True if the method succeed or false otherwise (e.g. if the discovery has not been started).
- See also
- Pass through to bool Advertise(const Pub &_publisher)
◆ CheckHandlerInfo()
HandlerInfo CheckHandlerInfo | ( | const std::string & | _topic | ) | const |
Get information about the local and raw subscribers that are attached to this NodeShared.
- Parameters
-
[in] _topic Information will only be returned for handlers that are subscribed to the given topic name.
- Returns
- Information about local subscription handlers that are held by this NodeShared.
◆ CheckSubscriberInfo()
SubscriberInfo CheckSubscriberInfo | ( | const std::string & | _topic, |
const std::string & | _msgType | ||
) | const |
Get information about the nodes that are subscribed to the publishers of this NodeShared.
- Parameters
-
[in] _topic Only information about subscribers to this topic will be returned. [in] _msgType If there are no remote subscribers listening for this message type, then SubscriberInfo::haveRemote will be false in the return value of this function.
- Returns
- Information about subscribers.
◆ DiscoverService()
bool DiscoverService | ( | const std::string & | _topic | ) | const |
Pass through to bool Discovery::Discover(const std::string &_topic) const.
- Parameters
-
[in] _topic Service name.
- Returns
- True if the method succeeded or false otherwise (e.g. if the discovery has not been started).
- See also
- bool Discovery::Discover(const std::string &_topic) const
◆ Instance()
|
static |
NodeShared is a singleton. This method gets the NodeShared instance shared between all the nodes.
- Returns
- Pointer to the current NodeShared instance.
◆ OnNewConnection()
void OnNewConnection | ( | const MessagePublisher & | _pub | ) |
Callback executed when the discovery detects new topics.
- Parameters
-
[in] _pub Information of the publisher in charge of the topic.
◆ OnNewDisconnection()
void OnNewDisconnection | ( | const MessagePublisher & | _pub | ) |
Callback executed when the discovery detects disconnections.
- Parameters
-
[in] _pub Information of the publisher in charge of the topic.
◆ OnNewSrvConnection()
void OnNewSrvConnection | ( | const ServicePublisher & | _pub | ) |
Callback executed when the discovery detects a new service call.
- Parameters
-
[in] _pub Information of the publisher in charge of the service.
◆ OnNewSrvDisconnection()
void OnNewSrvDisconnection | ( | const ServicePublisher & | _pub | ) |
Callback executed when a service call is no longer available.
- Parameters
-
[in] _pub Information of the publisher in charge of the service.
◆ Publish()
bool Publish | ( | const std::string & | _topic, |
char * | _data, | ||
const size_t | _dataSize, | ||
DeallocFunc * | _ffn, | ||
const std::string & | _msgType | ||
) |
Publish data.
- Parameters
-
[in] _topic Topic to be published. [in,out] _data Serialized data. Note that this buffer will be automatically deallocated by ZMQ when all data has been published. [in] _dataSize Data size (bytes). [in,out] _ffn Deallocation function. This function is executed by ZeroMQ when the data is published. This function deallocates the buffer containing the published data. http://zeromq.org/blog:zero-copy [in] _msgType Message type in string format.
- Returns
- true when success or false otherwise.
◆ RecvControlUpdate()
void RecvControlUpdate | ( | ) |
Method in charge of receiving the control updates (when a new remote subscriber notifies its presence for example).
◆ RecvMsgUpdate()
void RecvMsgUpdate | ( | ) |
Method in charge of receiving the topic updates.
◆ RecvSrvRequest()
void RecvSrvRequest | ( | ) |
Method in charge of receiving the service call requests.
◆ RecvSrvResponse()
void RecvSrvResponse | ( | ) |
Method in charge of receiving the service call responses.
◆ RunReceptionTask()
void RunReceptionTask | ( | ) |
Receive data and control messages.
◆ SendPendingRemoteReqs()
void SendPendingRemoteReqs | ( | const std::string & | _topic, |
const std::string & | _reqType, | ||
const std::string & | _repType | ||
) |
Try to send all the requests for a given service call and a pair of request/response types.
- Parameters
-
[in] _topic Topic name. [in] _reqType Type of the request in string format. [in] _repType Type of the response in string format.
◆ TopicPublishers()
bool TopicPublishers | ( | const std::string & | _topic, |
SrvAddresses_M & | _publishers | ||
) | const |
Pass through to bool Publishers(const std::string &_topic, Addresses_M<Pub> &_publishers) const.
- Parameters
-
[in] _topic Service name. [out] _publishers Collection of service publishers.
- Returns
- True if the service is found and
- See also
- bool Publishers(const std::string &_topic, Addresses_M<Pub> &_publishers) const
◆ TriggerCallbacks()
void TriggerCallbacks | ( | const MessageInfo & | _info, |
const std::string & | _msgData, | ||
const HandlerInfo & | _handlerInfo | ||
) |
Call the SubscriptionHandler callbacks (local and raw) for this NodeShared.
- Parameters
-
[in] _info Message information. [in] _msgData The raw serialized data for the message [in] _handlerInfo Information for the handlers of this node, as generated by CheckHandlerInfo(const std::string&) const
◆ TriggerSubscriberCallbacks()
void TriggerSubscriberCallbacks | ( | const std::string & | _topic, |
const std::string & | _msgData, | ||
const std::string & | _msgType, | ||
const HandlerInfo & | _handlerInfo | ||
) |
Call the SubscriptionHandler callbacks (local and raw) for this NodeShared.
- Parameters
-
[in] _topic The topic name [in] _msgData The raw serialized data for the message [in] _msgType The name of the message type [in] _handlerInfo Information for the handlers of this node, as generated by CheckHandlerInfo(const std::string&) const ToDo: Deprecate this function in 8.x.x and remove it in 9.x.x .
Member Data Documentation
◆ hostAddr
std::string hostAddr |
IP address of this host.
◆ kMsgDiscPort
|
static |
Port used by the message discovery layer.
◆ kSrvDiscPort
|
static |
Port used by the service discovery layer.
◆ localSubscribers
HandlerWrapper localSubscribers |
◆ mutex
|
mutable |
Mutex to guarantee exclusive access between all threads.
◆ myAddress
std::string myAddress |
My pub/sub address.
◆ myControlAddress
std::string myControlAddress |
My pub/sub control address.
◆ myReplierAddress
std::string myReplierAddress |
My replier service call address.
◆ myRequesterAddress
std::string myRequesterAddress |
My requester service call address.
◆ pUuid
std::string pUuid |
Process UUID.
◆ remoteSubscribers
TopicStorage<MessagePublisher> remoteSubscribers |
Remote subscribers.
◆ replierId
Uuid replierId |
Replier socket identity.
◆ repliers
HandlerStorage<IRepHandler> repliers |
Service call repliers.
◆ requests
HandlerStorage<IReqHandler> requests |
Pending service call requests.
◆ responseReceiverId
Uuid responseReceiverId |
Response receiver socket identity.
◆ threadReception
std::thread threadReception |
thread in charge of receiving and handling incoming messages.
◆ verbose
int verbose |
Print activity to stdout.
The documentation for this class was generated from the following file: