|
| | InterVehiclePortal (const intervehicle::protobuf::PortalConfig &cfg) |
| | Instantiate a portal with the given configuration (with the portal owning the inner transporter)
|
| |
| | InterVehiclePortal (InnerTransporter &inner, const intervehicle::protobuf::PortalConfig &cfg) |
| | Instantiate a portal with the given configuration and a reference to an external inner transporter.
|
| |
| | ~InterVehiclePortal () |
| |
| | InterVehicleTransporterBase (InnerTransporter &inner) |
| |
| | InterVehicleTransporterBase () |
| |
| virtual | ~InterVehicleTransporterBase ()=default |
| |
| void | check_validity () |
| | Check validity of the Group for interthread use (at compile time)
|
| |
| void | publish_dynamic (const Data &data, const Group &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=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=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 | subscribe_dynamic (std::function< void(const Data &)> f, const Group &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=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=Group(), const Subscriber< Data > &subscriber=Subscriber< Data >()) |
| | Unsubscribe from a specific run-time defined group and data type. Where possible, prefer the static variant in StaticTransporterInterface::unsubscribe()
|
| |
| 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::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()
|
| |
template<typename InnerTransporter>
class goby::middleware::InterVehiclePortal< InnerTransporter >
Implements a portal for the intervehicle layer based on Goby Acomms.
- Template Parameters
-
| InnerTransporter | The type of the inner transporter used to forward data to and from this node. This portal uses goby::middleware::InterThreadTransport internally, so the innermost transporter must be goby::middleware::InterThreadTransport. This allows for use of any InterProcessPortal, as long as that InterProcessPortal has an inner transporter of goby::middleware::InterThreadTransport. |
Definition at line 644 of file intervehicle.h.