Namespaces | |
log | |
Classes | |
class | AdvertiseMessage |
Advertise packet used in the discovery protocol to broadcast information about the node advertising a topic. The information sent contains the name of the protobuf message type advertised. This message is used for advertising messages and services. 'T' is the Publisher type used inside this AdvertiseMessage object. More... | |
class | AdvertiseMessageOptions |
A class for customizing the publication options for a topic advertised. E.g.: Set the rate of messages per second published. More... | |
class | AdvertiseOptions |
A class for customizing the publication options for a topic or service advertised. E.g.: Set the scope of a topic/service. More... | |
class | AdvertiseServiceOptions |
A class for customizing the publication options for a service advertised. More... | |
class | Clock |
A Clock interface for time tracking. More... | |
class | Discovery |
A discovery class that implements a distributed topic discovery protocol. It uses UDP multicast for sending/receiving messages and stores updated topic information. The discovery clients can request the discovery of a topic or the advertisement of a local topic. The discovery uses heartbeats to track the state of other peers in the network. The discovery clients can register callbacks to detect when new topics are discovered or topics are no longer available. More... | |
class | HandlerStorage |
Class to store and manage service call handlers. More... | |
class | Header |
Header included in each discovery message containing the version of the discovery protocol, the process UUID of the sender node, the type. More... | |
class | IRepHandler |
Interface class used to manage a replier handler. More... | |
class | IReqHandler |
Interface class used to manage a request handler. More... | |
class | ISubscriptionHandler |
Interface class used to manage generic protobuf messages. More... | |
class | MessageInfo |
A class that provides information about the message received. More... | |
class | MessagePublisher |
This class stores all the information about a message publisher. More... | |
class | NetworkClock |
A Clock interface implementation that uses ignition::msgs::Clock messages distributed across the network. More... | |
class | Node |
A class that allows a client to communicate with other peers. There are two main communication modes: pub/sub messages and service calls. More... | |
class | NodeOptions |
A class for customizing the behavior of the Node. E.g.: Set a custom namespace or a partition name. More... | |
class | NodeShared |
Private data for the Node class. This class should not be directly used. You should use the Node class. More... | |
class | Publisher |
This class stores all the information about a publisher. It stores the topic name that publishes, addresses, UUIDs, scope, etc. More... | |
class | RawSubscriptionHandler |
class | RepHandler |
with the service response. More... | |
class | ReqHandler |
It creates a reply handler for the specific protobuf messages used. 'Req' is a protobuf message type containing the input parameters of the service request. 'Rep' is a protobuf message type that will be filled with the service response. More... | |
class | ReqHandler< google::protobuf::Message, google::protobuf::Message > |
class | ServicePublisher |
This class stores all the information about a service publisher. More... | |
class | SubscribeOptions |
A class to provide different options for a subscription. More... | |
class | SubscriptionHandler |
It creates a subscription handler for a specific protobuf message. 'T' is the Protobuf message type that will be used for this particular handler. More... | |
class | SubscriptionHandler< ProtoMsg > |
Specialized template when the user prefers a callbacks that accepts a generic google::protobuf::message instead of a specific type. More... | |
class | SubscriptionHandlerBase |
SubscriptionHandlerBase contains functions and data which are common to all SubscriptionHandler types. More... | |
class | SubscriptionMsg |
Subscription packet used in the discovery protocol for requesting information about a given topic. More... | |
class | TopicStorage |
Store address information about topics and provide convenient methods for adding new topics, removing them, etc. More... | |
class | TopicUtils |
This class provides different utilities related with topics. More... | |
class | Uuid |
A portable class for representing a Universally Unique Identifier. More... | |
class | WallClock |
A Clock implementation that leverages host OS time APIs. More... | |
Enumerations | |
enum | DestinationType { UNICAST, MULTICAST, ALL } |
Options for sending discovery messages. More... | |
enum | Scope_t { PROCESS, HOST, ALL } |
Functions | |
std::string | determineHost () |
Determine IP or hostname. Reference: https://github.com/ros/ros_comm/blob/hydro-devel/clients/ roscpp/src/libros/network.cpp. More... | |
std::vector< std::string > | determineInterfaces () |
Determine the list of network interfaces for this machine. Reference: https://github.com/ros/ros_comm/blob/hydro-devel/clients/ roscpp/src/libros/network.cpp. More... | |
bool | env (const std::string &_name, std::string &_value) |
Find the environment variable '_name' and return its value. More... | |
std::string | hostname () |
Determine the computer's hostname. More... | |
int | hostnameToIp (char *_hostname, std::string &_ip) |
Determine if an IP is private. More... | |
bool | isPrivateIP (const char *_ip) |
Determine if an IP is private. Reference: https://github.com/ros/ros_comm/blob/hydro-devel/clients/ roscpp/src/libros/network.cpp. More... | |
bool | pollSockets (const std::vector< int > &_sockets, const int _timeout) |
std::vector< std::string > | split (const std::string &_orig, char _delim) |
split at a one character delimiter to get a vector of something More... | |
std::string | username () |
Determine your login name. More... | |
void | waitForShutdown () |
Block the current thread until a SIGINT or SIGTERM is received. Note that this function registers a signal handler. Do not use this function if you want to manage yourself SIGINT/SIGTERM. More... | |
Variables | |
static const uint8_t | AdvType = 1 |
static const uint8_t | ByeType = 5 |
static const uint8_t | EndConnection = 7 |
static const uint16_t | FlagNoRelay = 0b000000000000'0010 |
static const uint16_t | FlagRelay = 0b000000000000'0001 |
static const uint8_t | HeartbeatType = 4 |
const std::string | kGenericMessageType = "google.protobuf.Message" |
The string type used for generic messages. More... | |
static const uint64_t | kUnthrottled = std::numeric_limits<uint64_t>::max() |
Constant used when not interested in throttling. More... | |
static const std::vector< std::string > | MsgTypesStr |
Used for debugging the message type received/send. More... | |
static const uint8_t | NewConnection = 6 |
static const uint8_t | SubType = 2 |
static const uint8_t | UnadvType = 3 |
static const uint8_t | Uninitialized = 0 |
Typedef Documentation
◆ Addresses_M
using Addresses_M = std::map<std::string, std::vector<T> > |
◆ DeallocFunc
using DeallocFunc = void(void *_data, void *_hint) |
◆ DiscoveryCallback
using DiscoveryCallback = std::function<void(const T &_publisher)> |
◆ IRepHandlerPtr
using IRepHandlerPtr = std::shared_ptr<IRepHandler> |
◆ IReqHandler_M
using IReqHandler_M = std::map<std::string, std::map<std::string, IReqHandlerPtr> > |
◆ IReqHandlerPtr
using IReqHandlerPtr = std::shared_ptr<IReqHandler> |
◆ ISubscriptionHandler_M
◆ ISubscriptionHandlerPtr
◆ MsgAddresses_M
using MsgAddresses_M = Addresses_M<MessagePublisher> |
◆ MsgCallback
using MsgCallback = std::function<void(const T &_msg, const MessageInfo &_info)> |
◆ MsgDiscovery
using MsgDiscovery = Discovery<MessagePublisher> |
◆ MsgDiscoveryCallback
using MsgDiscoveryCallback = std::function<void(const MessagePublisher &_publisher)> |
◆ ProtoMsg
using ProtoMsg = google::protobuf::Message |
◆ ProtoMsgPtr
using ProtoMsgPtr = std::shared_ptr<ProtoMsg> |
◆ RawCallback
using RawCallback = std::function<void(const char *_msgData, const size_t _size, const MessageInfo &_info)> |
◆ RawSubscriptionHandler_M
◆ RawSubscriptionHandlerPtr
◆ SrvAddresses_M
using SrvAddresses_M = Addresses_M<ServicePublisher> |
◆ SrvDiscovery
using SrvDiscovery = Discovery<ServicePublisher> |
◆ SrvDiscoveryCallback
using SrvDiscoveryCallback = std::function<void(const ServicePublisher &_publisher)> |
◆ Timestamp
using Timestamp = std::chrono::steady_clock::time_point |
Enumeration Type Documentation
◆ DestinationType
|
strong |
◆ Scope_t
|
strong |
Function Documentation
◆ determineHost()
std::string ignition::transport::determineHost | ( | ) |
Determine IP or hostname. Reference: https://github.com/ros/ros_comm/blob/hydro-devel/clients/ roscpp/src/libros/network.cpp.
- Returns
- The IP or hostname of this host.
◆ determineInterfaces()
std::vector<std::string> ignition::transport::determineInterfaces | ( | ) |
Determine the list of network interfaces for this machine. Reference: https://github.com/ros/ros_comm/blob/hydro-devel/clients/ roscpp/src/libros/network.cpp.
- Returns
- The list of network interfaces.
Referenced by Discovery< Pub >::Discovery().
◆ env()
bool ignition::transport::env | ( | const std::string & | _name, |
std::string & | _value | ||
) |
Find the environment variable '_name' and return its value.
- Parameters
-
[in] _name Name of the environment variable. [out] _value Value if the variable was found.
- Returns
- True if the variable was found or false otherwise.
Referenced by Discovery< Pub >::Discovery().
◆ hostname()
std::string ignition::transport::hostname | ( | ) |
Determine the computer's hostname.
- Returns
- The computer's hostname.
◆ hostnameToIp()
int ignition::transport::hostnameToIp | ( | char * | _hostname, |
std::string & | _ip | ||
) |
Determine if an IP is private.
- Parameters
-
[in] _hostname Hostname [out] _ip IP associated to the input hostname.
- Returns
- 0 when success.
◆ isPrivateIP()
bool ignition::transport::isPrivateIP | ( | const char * | _ip | ) |
Determine if an IP is private. Reference: https://github.com/ros/ros_comm/blob/hydro-devel/clients/ roscpp/src/libros/network.cpp.
- Parameters
-
[in] _ip Input IP address.
- Returns
- true if the IP address is private.
◆ pollSockets()
bool ignition::transport::pollSockets | ( | const std::vector< int > & | _sockets, |
const int | _timeout | ||
) |
Referenced by Discovery< Pub >::WaitForInit().
◆ split()
std::vector<std::string> ignition::transport::split | ( | const std::string & | _orig, |
char | _delim | ||
) |
split at a one character delimiter to get a vector of something
- Parameters
-
[in] _orig The string to split [in] _delim a character to split the string at
- Returns
- vector of split pieces of the string excluding the delimiter
Referenced by Discovery< Pub >::Discovery().
◆ username()
std::string ignition::transport::username | ( | ) |
Determine your login name.
- Returns
- Name used to gain access to the computer.
◆ waitForShutdown()
void ignition::transport::waitForShutdown | ( | ) |
Block the current thread until a SIGINT or SIGTERM is received. Note that this function registers a signal handler. Do not use this function if you want to manage yourself SIGINT/SIGTERM.
Variable Documentation
◆ AdvType
|
static |
Referenced by Discovery< Pub >::Advertise(), and Discovery< Pub >::WaitForInit().
◆ ByeType
|
static |
Referenced by Discovery< Pub >::WaitForInit(), and Discovery< Pub >::~Discovery().
◆ EndConnection
|
static |
◆ FlagNoRelay
|
static |
Referenced by Discovery< Pub >::WaitForInit().
◆ FlagRelay
|
static |
Referenced by Discovery< Pub >::WaitForInit().
◆ HeartbeatType
|
static |
Referenced by Discovery< Pub >::WaitForInit().
◆ kGenericMessageType
const std::string kGenericMessageType = "google.protobuf.Message" |
The string type used for generic messages.
Referenced by HandlerStorage< ignition::transport::ISubscriptionHandler >::FirstHandler(), TopicStorage< ignition::transport::MessagePublisher >::HasTopic(), and SubscriptionHandler< ProtoMsg >::TypeName().
◆ kUnthrottled
|
static |
Constant used when not interested in throttling.
◆ MsgTypesStr
|
static |
Used for debugging the message type received/send.
Referenced by Discovery< Pub >::WaitForInit().
◆ NewConnection
|
static |
◆ SubType
|
static |
Referenced by Discovery< Pub >::Discover(), and Discovery< Pub >::WaitForInit().
◆ UnadvType
|
static |
Referenced by Discovery< Pub >::Unadvertise(), and Discovery< Pub >::WaitForInit().
◆ Uninitialized
|
static |