SubscriptionHandler.hh
Go to the documentation of this file.
Interface class used to manage generic protobuf messages.
Definition: SubscriptionHandler.hh:125
ISubscriptionHandler(const std::string &_nUuid, const SubscribeOptions &_opts=SubscribeOptions())
Constructor.
virtual const std::shared_ptr< ProtoMsg > CreateMsg(const std::string &_data, const std::string &_type) const =0
Create a specific protobuf message given its serialized data.
virtual ~ISubscriptionHandler()=default
Destructor.
virtual bool RunLocalCallback(const ProtoMsg &_msg, const MessageInfo &_info)=0
Executes the local callback registered for this handler.
A class that provides information about the message received.
Definition: MessageInfo.hh:38
Definition: SubscriptionHandler.hh:318
void SetCallback(const RawCallback &_callback)
Set the callback of this handler.
std::string TypeName() override
Get the type of the messages from which this subscriber handler is subscribed.
~RawSubscriptionHandler()
Destructor.
RawSubscriptionHandler(const std::string &_nUuid, const std::string &_msgType=kGenericMessageType, const SubscribeOptions &_opts=SubscribeOptions())
Constructor.
bool RunRawCallback(const char *_msgData, const size_t _size, const MessageInfo &_info)
Executes the raw callback registered for this handler.
A class to provide different options for a subscription.
Definition: SubscribeOptions.hh:40
SubscriptionHandlerBase contains functions and data which are common to all SubscriptionHandler types...
Definition: SubscriptionHandler.hh:60
virtual std::string TypeName()=0
Get the type of the messages from which this subscriber handler is subscribed.
Timestamp lastCbTimestamp
Timestamp of the last callback executed.
Definition: SubscriptionHandler.hh:106
double periodNs
If throttling is enabled, the minimum period for receiving a message in nanoseconds.
Definition: SubscriptionHandler.hh:94
std::string HandlerUuid() const
Get the unique UUID of this handler.
SubscriptionHandlerBase(const std::string &_nUuid, const SubscribeOptions &_opts=SubscribeOptions())
Constructor.
std::string hUuid
Unique handler's UUID.
Definition: SubscriptionHandler.hh:103
bool UpdateThrottling()
Check if message subscription is throttled. If so, verify whether the callback should be executed or ...
virtual ~SubscriptionHandlerBase()=default
Destructor.
std::string NodeUuid() const
Get the node UUID.
SubscribeOptions opts
Subscribe options.
Definition: SubscriptionHandler.hh:90
const std::shared_ptr< ProtoMsg > CreateMsg(const std::string &_data, const std::string &_type) const
Create a specific protobuf message given its serialized data.
Definition: SubscriptionHandler.hh:241
SubscriptionHandler(const std::string &_nUuid, const SubscribeOptions &_opts=SubscribeOptions())
Definition: SubscriptionHandler.hh:234
void SetCallback(const MsgCallback< ProtoMsg > &_cb)
Set the callback for this handler.
Definition: SubscriptionHandler.hh:285
std::string TypeName()
Get the type of the messages from which this subscriber handler is subscribed.
Definition: SubscriptionHandler.hh:278
bool RunLocalCallback(const ProtoMsg &_msg, const MessageInfo &_info)
Executes the local callback registered for this handler.
Definition: SubscriptionHandler.hh:291
It creates a subscription handler for a specific protobuf message. 'T' is the Protobuf message type t...
Definition: SubscriptionHandler.hh:159
const std::shared_ptr< ProtoMsg > CreateMsg(const std::string &_data, const std::string &) const
Create a specific protobuf message given its serialized data.
Definition: SubscriptionHandler.hh:168
SubscriptionHandler(const std::string &_nUuid, const SubscribeOptions &_opts=SubscribeOptions())
Definition: SubscriptionHandler.hh:161
void SetCallback(const MsgCallback< T > &_cb)
Set the callback for this handler.
Definition: SubscriptionHandler.hh:193
std::string TypeName()
Get the type of the messages from which this subscriber handler is subscribed.
Definition: SubscriptionHandler.hh:186
bool RunLocalCallback(const ProtoMsg &_msg, const MessageInfo &_info)
Executes the local callback registered for this handler.
Definition: SubscriptionHandler.hh:199
T endl(T... args)
std::chrono::steady_clock::time_point Timestamp
Definition: TransportTypes.hh:155
const std::string kGenericMessageType
The string type used for generic messages.
Definition: TransportTypes.hh:174
Definition: AdvertiseOptions.hh:29
T reset(T... args)