|
| InterProcessForwarder (InnerTransporter &inner) |
| Construct a forwarder for the interprocess layer.
|
|
virtual | ~InterProcessForwarder () |
|
| InterProcessTransporterBase (InnerTransporter &inner) |
|
| InterProcessTransporterBase () |
|
virtual | ~InterProcessTransporterBase () |
|
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()
|
|
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()
|
|
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()
|
|
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.
|
|
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()
|
|
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()
|
|
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()
|
|
void | unsubscribe_all () |
| Unsubscribe from all current subscriptions.
|
|
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.
|
|
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.
|
|
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.
|
|
void | check_validity () |
| Check validity of the Group for interthread use (at compile time)
|
|
void | check_validity_runtime (const Group &group) |
| Check validity of the Group for interthread use (for DynamicGroup at run time)
|
|
template<const Group & group, typename Data , int scheme = transporter_scheme<Data, Transporter>()> |
void | publish (const Data &data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (const reference variant)
|
|
template<const Group & group, typename Data , int scheme = transporter_scheme<Data, Transporter>()> |
void | publish (std::shared_ptr< const Data > data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (shared pointer to const data variant)
|
|
template<const Group & group, typename Data , int scheme = transporter_scheme<Data, Transporter>()> |
void | publish (std::shared_ptr< Data > data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (shared pointer to mutable data variant)
|
|
template<const Group & group, typename Data , int scheme = transporter_scheme<Data, Transporter>(), Necessity necessity = Necessity::OPTIONAL> |
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)
|
|
template<const Group & group, typename Data , int scheme = transporter_scheme<Data, Transporter>(), Necessity necessity = Necessity::OPTIONAL> |
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)
|
|
template<const Group & group, Necessity necessity = Necessity::OPTIONAL, typename Func > |
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.
|
|
template<const Group & group, typename Data , int scheme = transporter_scheme<Data, Transporter>()> |
void | unsubscribe (const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| Unsubscribe to a specific group and data type.
|
|
void | unsubscribe_all () |
| Unsubscribe to all messages that this transporter has subscribed to.
|
|
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
|
|
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)
|
|
std::shared_ptr< std::timed_mutex > | poll_mutex () |
| access the mutex used for poll synchronization
|
|
std::shared_ptr< std::condition_variable_any > | cv () |
| access the condition variable used for poll synchronization
|
|
template<typename InnerTransporter>
class goby::middleware::InterProcessForwarder< InnerTransporter >
Implements the forwarder concept for the interprocess 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. For example, the main thread might instantiate a portal and then spawn several threads that instantiate forwarders. These auxiliary threads can then communicate on the interprocess layer as if they had a direct connection to other interprocess nodes.
- Template Parameters
-
InnerTransporter | The type of the inner transporter used to forward data to and from this node |
Definition at line 297 of file interprocess.h.