|
Goby3 3.5.1
2026.06.04
|
Deprecated: use zeromq::InterProcessForwarder or udpm::InterProcessForwarder instead. More...
#include <goby/middleware/transport/interprocess.h>
Public Types | |
| using | Base = InterProcessForwarder<InnerTransporter, zeromq::detail::InterProcessTag> |
| Public Types inherited from goby::middleware::InterProcessTransporterBase< Derived, InnerTransporter, ImplementationTag > | |
| using | implementation_tag = ImplementationTag |
| The ImplementationTag for this transporter (allows InterVehiclePortal to match the driver thread's forwarder tag to the InnerTransporter's tag). | |
| Public Types inherited from goby::middleware::InnerTransporterInterface< Transporter, InnerTransporter, Enable > | |
| using | InnerTransporterType = InnerTransporter |
| the InnerTransporter type (accessible for other uses) | |
Public Member Functions | |
| InterProcessForwarder (InnerTransporter &inner) | |
| virtual | ~InterProcessForwarder () |
| Public Member Functions inherited from goby::middleware::InterProcessTransporterBase< Derived, InnerTransporter, ImplementationTag > | |
| 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(). | |
| 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(). | |
| 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(). | |
| 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. | |
| 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(). | |
| 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(). | |
| 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(). | |
| 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. | |
| 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. | |
| 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. | |
| template<const Group & group> | |
| 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). | |
| Public Member Functions inherited from goby::middleware::StaticTransporterInterface< InterProcessTransporterBase< Derived, InnerTransporter, ImplementationTag >, InnerTransporter > | |
| void | publish (const Data &data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (const reference variant). | |
| void | publish (std::shared_ptr< const Data > data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (shared pointer to const data variant). | |
| void | publish (std::shared_ptr< Data > data, const Publisher< Data > &publisher=Publisher< Data >()) |
| Publish a message (shared pointer to mutable data variant). | |
| 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). | |
| 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). | |
| 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. | |
| 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. | |
| Public Member Functions inherited from goby::middleware::InnerTransporterInterface< Transporter, InnerTransporter, Enable > | |
| InnerTransporter & | inner () |
| auto | innermost () |
| Public Member Functions inherited from goby::middleware::PollerInterface | |
| 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::mutex > | poll_mutex () |
| access the mutex used for poll synchronization | |
| std::shared_ptr< std::condition_variable > | cv () |
| access the condition variable used for poll synchronization | |
| void | attach (PollerInterface *poller) |
| Attach another PollerInterface to this one so that its _transporter_poll() is also called during _poll_all(). | |
| Public Member Functions inherited from goby::middleware::InterProcessForwarder< InnerTransporter, zeromq::detail::InterProcessTag > | |
| InterProcessForwarder (InnerTransporter &inner) | |
| Construct a forwarder for the interprocess layer. | |
Deprecated: use zeromq::InterProcessForwarder or udpm::InterProcessForwarder instead.
This 1-argument specialisation (ImplementationTag = void) is kept for backwards compatibility. It resolves to the zeromq implementation. New code should use zeromq::InterProcessForwarder<> or udpm::InterProcessForwarder<> explicitly.
Definition at line 799 of file interprocess.h.
| using goby::middleware::InterProcessForwarder< InnerTransporter, void >::Base = InterProcessForwarder<InnerTransporter, zeromq::detail::InterProcessTag> |
Definition at line 803 of file interprocess.h.
|
inlineexplicit |
Definition at line 807 of file interprocess.h.
|
inlinevirtual |
Reimplemented from goby::middleware::InterProcessForwarder< InnerTransporter, zeromq::detail::InterProcessTag >.
Definition at line 334 of file interprocess.h.