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) | |
HandlerInfo | CheckHandlerInfo (const std::string &_topic) const |
Get information about the local and raw subscribers that are attached to this NodeShared. | |
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. | |
bool | DiscoverService (const std::string &_topic) const |
Pass through to bool Discovery::Discover(const std::string
&_topic) const. | |
void | OnNewConnection (const MessagePublisher &_pub) |
Callback executed when the discovery detects new topics. | |
void | OnNewDisconnection (const MessagePublisher &_pub) |
Callback executed when the discovery detects disconnections. | |
void | OnNewSrvConnection (const ServicePublisher &_pub) |
Callback executed when the discovery detects a new service call. | |
void | OnNewSrvDisconnection (const ServicePublisher &_pub) |
Callback executed when a service call is no longer available. | |
bool | Publish (const std::string &_topic, char *_data, const size_t _dataSize, DeallocFunc *_ffn, const std::string &_msgType) |
Publish data. | |
void | RecvControlUpdate () |
Method in charge of receiving the control updates (when a new remote subscriber notifies its presence for example). | |
void | RecvMsgUpdate () |
Method in charge of receiving the topic updates. | |
void | RecvSrvRequest () |
Method in charge of receiving the service call requests. | |
void | RecvSrvResponse () |
Method in charge of receiving the service call responses. | |
void | RunReceptionTask () |
Receive data and control messages. | |
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. | |
bool | TopicPublishers (const std::string &_topic, SrvAddresses_M &_publishers) const |
Pass through to bool Publishers(const std::string &_topic,
Addresses_M<Pub> &_publishers) const. | |
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. |
Static Public Member Functions | |
static NodeShared * | Instance () |
NodeShared is a singleton. This method gets the NodeShared instance shared between all the nodes. |
Public Attributes | |
std::string | hostAddr |
IP address of this host. | |
HandlerWrapper | localSubscribers |
std::recursive_mutex | mutex |
Mutex to guarantee exclusive access between all threads. | |
std::string | myAddress |
My pub/sub address. | |
std::string | myControlAddress |
My pub/sub control address. | |
std::string | myReplierAddress |
My replier service call address. | |
std::string | myRequesterAddress |
My requester service call address. | |
std::string | pUuid |
Process UUID. | |
TopicStorage< MessagePublisher > | remoteSubscribers |
Remote subscribers. | |
Uuid | replierId |
Replier socket identity. | |
HandlerStorage< IRepHandler > | repliers |
Service call repliers. | |
HandlerStorage< IReqHandler > | requests |
Pending service call requests. | |
Uuid | responseReceiverId |
Response receiver socket identity. | |
std::thread | threadReception |
thread in charge of receiving and handling incoming messages. | |
int | verbose |
Print activity to stdout. |
Protected Member Functions | |
NodeShared () | |
Constructor. | |
virtual | ~NodeShared () |
Destructor. |
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.
Referenced by Instance().
◆ ~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.
References ignition::transport::_topic.
◆ 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.
References ignition::transport::_topic.
◆ 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
References ignition::transport::_topic.
◆ Instance()
|
static |
NodeShared is a singleton. This method gets the NodeShared instance shared between all the nodes.
- Returns
- Pointer to the current NodeShared instance.
References NodeShared().
◆ 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.
References ignition::transport::_topic.
◆ 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.
References ignition::transport::_topic.
◆ 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
References ignition::transport::_topic.
◆ 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
References ignition::transport::_topic.
Member Data Documentation
◆ hostAddr
std::string hostAddr |
IP address of this host.
◆ 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: