18 #ifndef __IGN_TRANSPORT_DISCOVERY_PRIVATE_HH_INCLUDED__ 19 #define __IGN_TRANSPORT_DISCOVERY_PRIVATE_HH_INCLUDED__ 24 #include <arpa/inet.h> 26 #include <condition_variable> 57 public:
static const unsigned int DefActivityInterval = 100;
62 public:
static const unsigned int DefHeartbeatInterval = 1000;
67 public:
static const unsigned int DefSilenceInterval = 3000;
72 public:
static const unsigned int DefAdvertiseInterval = 1000;
75 public:
static const int DiscoveryPort = 11319;
78 public:
const std::string MulticastGroup =
"224.0.0.7";
81 public:
static const int Timeout = 250;
84 public:
static const int MaxRcvStr = 65536;
88 static const uint8_t Version = 3;
174 public:
unsigned int numHeartbeatsUninitialized = 0;
183 public:
bool threadReceptionExiting =
true;
186 public:
bool threadHeartbeatExiting =
true;
188 public:
bool threadActivityExiting =
true;
std::vector< int > sockets
UDP socket used for sending/receiving discovery messages.
Definition: DiscoveryPrivate.hh:147
ignition/transport/DiscoveryPrivate.hh
Definition: DiscoveryPrivate.hh:46
#define IGNITION_VISIBLE
Use to represent "symbol visible" if supported.
Definition: Helpers.hh:56
std::thread threadHeartbeat
Thread in charge of sending heartbeats.
Definition: DiscoveryPrivate.hh:159
TopicStorage< ServicePublisher > infoSrv
Service addressing information.
Definition: DiscoveryPrivate.hh:135
bool exit
When true, the service threads will finish.
Definition: DiscoveryPrivate.hh:180
std::condition_variable_any initializedCv
Used to block/unblock until the initialization phase finishes.
Definition: DiscoveryPrivate.hh:177
std::string pUuid
Process UUID.
Definition: DiscoveryPrivate.hh:97
MsgDiscoveryCallback disconnectionCb
Callback executed when new topics are invalid.
Definition: DiscoveryPrivate.hh:123
TopicStorage< MessagePublisher > infoMsg
Message addressing information.
Definition: DiscoveryPrivate.hh:132
bool enabled
When true, the service is enabled.
Definition: DiscoveryPrivate.hh:192
unsigned int heartbeatInterval
Heartbeat interval value (ms.).
Definition: DiscoveryPrivate.hh:117
std::map< std::string, Timestamp > activity
Activity information.
Definition: DiscoveryPrivate.hh:141
std::vector< std::string > hostInterfaces
List of host network interfaces.
Definition: DiscoveryPrivate.hh:94
MsgDiscoveryCallback connectionCb
Callback executed when new topics are discovered.
Definition: DiscoveryPrivate.hh:120
std::thread threadReception
Thread in charge of receiving and handling incoming messages.
Definition: DiscoveryPrivate.hh:156
sockaddr_in mcastAddr
Internet socket address for sending to the multicast group.
Definition: DiscoveryPrivate.hh:150
std::function< void(const ServicePublisher &_publisher)> SrvDiscoveryCallback
Definition: TransportTypes.hh:110
std::function< void(const MessagePublisher &_publisher)> MsgDiscoveryCallback
Definition: TransportTypes.hh:102
std::recursive_mutex exitMutex
Mutex to guarantee exclusive access to the exit variable.
Definition: DiscoveryPrivate.hh:165
unsigned int silenceInterval
Silence interval value (ms.).
Definition: DiscoveryPrivate.hh:102
bool initialized
Once the discovery starts, it can take up to HeartbeatInterval milliseconds to discover the existing ...
Definition: DiscoveryPrivate.hh:171
bool verbose
Print discovery information to stdout.
Definition: DiscoveryPrivate.hh:144
SrvDiscoveryCallback connectionSrvCb
Callback executed when new services are discovered.
Definition: DiscoveryPrivate.hh:126
std::recursive_mutex mutex
Mutex to guarantee exclusive access between the threads.
Definition: DiscoveryPrivate.hh:153
unsigned int advertiseInterval
Advertise interval value (ms.).
Definition: DiscoveryPrivate.hh:112
std::string hostAddr
Host IP address.
Definition: DiscoveryPrivate.hh:91
unsigned int activityInterval
Activity interval value (ms.).
Definition: DiscoveryPrivate.hh:107
Definition: AdvertiseOptions.hh:25
Store address information about topics and provide convenient methods for adding new topics...
Definition: TopicStorage.hh:37
std::thread threadActivity
Thread in charge of update the activity.
Definition: DiscoveryPrivate.hh:162
SrvDiscoveryCallback disconnectionSrvCb
Callback executed when a service is no longer available.
Definition: DiscoveryPrivate.hh:129