|
| InterModuleForwarder (InnerTransporter &inner) |
| Construct a forwarder for the intermodule layer. More...
|
|
virtual | ~InterModuleForwarder () |
|
| InterProcessTransporterBase (InnerTransporter &inner) |
|
| InterProcessTransporterBase () |
|
virtual | ~InterProcessTransporterBase () |
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | publish_dynamic (const Data &data, const Group &group, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message using a run-time defined DynamicGroup (const reference variant). Where possible, prefer the static variant in StaticTransporterInterface::publish() More...
|
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | publish_dynamic (std::shared_ptr< const Data > data, const Group &group, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message using a run-time defined DynamicGroup (shared pointer to const data variant). Where possible, prefer the static variant in StaticTransporterInterface::publish() More...
|
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | publish_dynamic (std::shared_ptr< Data > data, const Group &group, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message using a run-time defined DynamicGroup (shared pointer to mutable data variant). Where possible, prefer the static variant in StaticTransporterInterface::publish() More...
|
|
void | publish_serialized (std::string type_name, int scheme, const std::vector< char > &bytes, const goby::middleware::Group &group) |
| Publish a message that has already been serialized for the given scheme. More...
|
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | subscribe_dynamic (std::function< void(const Data &)> f, const Group &group, const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Subscribe to a specific run-time defined group and data type (const reference variant). Where possible, prefer the static variant in StaticTransporterInterface::subscribe() More...
|
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | subscribe_dynamic (std::function< void(std::shared_ptr< const Data >)> f, const Group &group, const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Subscribe to a specific run-time defined group and data type (shared pointer variant). Where possible, prefer the static variant in StaticTransporterInterface::subscribe() More...
|
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | unsubscribe_dynamic (const Group &group, const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Unsubscribe to a specific run-time defined group and data type. Where possible, prefer the static variant in StaticTransporterInterface::unsubscribe() More...
|
|
void | unsubscribe_all () |
| Unsubscribe from all current subscriptions. More...
|
|
std::shared_ptr< SerializationSubscriptionRegex > | subscribe_regex (std::function< void(const std::vector< unsigned char > &, int scheme, const std::string &type, const Group &group)> f, const std::set< int > &schemes, const std::string &type_regex=".*", const std::string &group_regex=".*") |
| Subscribe to multiple groups and/or types at once using regular expressions. More...
|
|
template<typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
std::shared_ptr< SerializationSubscriptionRegex > | subscribe_type_regex (std::function< void(std::shared_ptr< const Data >, const std::string &type)> f, const Group &group, const std::string &type_regex=".*") |
| Subscribe to a number of types within a given group and scheme using a regular expression. More...
|
|
template<const Group & group, typename Data , int scheme = InterProcessTransporterBase::scheme<Data>()> |
void | subscribe_type_regex (std::function< void(std::shared_ptr< const Data >, const std::string &type)> f, const std::string &type_regex=".*") |
| Subscribe to a number of types within a given group and scheme using a regular expression. More...
|
|
template<const Group & group> |
void | check_validity () |
| Check validity of the Group for interthread use (at compile time) More...
|
|
void | check_validity_runtime (const Group &group) |
| Check validity of the Group for interthread use (for DynamicGroup at run time) More...
|
|
void | publish (const Data &data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (const reference variant) More...
|
|
void | publish (std::shared_ptr< const Data > data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (shared pointer to const data variant) More...
|
|
void | publish (std::shared_ptr< Data > data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (shared pointer to mutable data variant) More...
|
|
void | subscribe (std::function< void(const Data &)> f, const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Subscribe to a specific group and data type (const reference variant) More...
|
|
void | subscribe (std::function< void(std::shared_ptr< const Data >)> f, const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Subscribe to a specific group and data type (shared pointer variant) More...
|
|
void | subscribe (Func f) |
| Simplified version of subscribe() that can deduce Data from the first argument of the function (lambda, function pointer, etc.) passed to it. More...
|
|
void | unsubscribe (const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Unsubscribe to a specific group and data type. More...
|
|
void | unsubscribe_all () |
| Unsubscribe to all messages that this transporter has subscribed to. More...
|
|
InnerTransporter & | inner () |
|
auto | innermost () |
|
template<class Clock = std::chrono::system_clock, class Duration = typename Clock::duration> |
int | poll (const std::chrono::time_point< Clock, Duration > &timeout=std::chrono::time_point< Clock, Duration >::max()) |
| poll for data. Blocks until a data event occurs or a timeout when a particular time has been reached More...
|
|
template<class Clock = std::chrono::system_clock, class Duration = typename Clock::duration> |
int | poll (Duration wait_for) |
| poll for data. Blocks until a data event occurs or a certain duration of time elapses (timeout) More...
|
|
std::shared_ptr< std::timed_mutex > | poll_mutex () |
| access the mutex used for poll synchronization More...
|
|
std::shared_ptr< std::condition_variable_any > | cv () |
| access the condition variable used for poll synchronization More...
|
|
template<typename InnerTransporter>
class goby::middleware::InterModuleForwarder< InnerTransporter >
Implements the forwarder concept for the intermodule layer.
The forwarder is intended to be used by inner nodes within the layer that do not connect directly to other nodes on that layer.
- Template Parameters
-
InnerTransporter | The type of the inner transporter used to forward data to and from this node |
Definition at line 66 of file intermodule.h.