|
| | InterModulePortalBase (InnerTransporter &inner) |
| |
| | InterModulePortalBase () |
| |
| virtual | ~InterModulePortalBase () |
| |
| | 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)
|
| |
| 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.
|
| |
| 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 Data > |
| static constexpr int | scheme () |
| | returns the marshalling scheme id for a given data type on this layer
|
| |
| static std::string | make_identifier (const std::string &type_name, int scheme, const std::string &group, IdentifierWildcard wildcard, const std::string &process, std::unordered_map< int, std::string > *schemes_buffer=nullptr, std::unordered_map< std::thread::id, std::string > *threads_buffer=nullptr) |
| |
| static std::tuple< std::string, int, std::string, int, std::size_t > | parse_identifier (const std::string &identifier) |
| |
| static const char | delimiter |
| |
| static const char | delimiter_substitute |
| |
| static const char | end_delimiter |
| |
| | StaticTransporterInterface (InnerTransporter &inner) |
| |
| | StaticTransporterInterface () |
| |
| | Poller (PollerInterface *inner_poller=nullptr) |
| | Construct this Poller with a pointer to the inner Poller (unless this is the innermost Poller)
|
| |
| PollerInterface * | inner_poller () |
| |
| | PollerInterface (std::shared_ptr< std::mutex > poll_mutex, std::shared_ptr< std::condition_variable > cv) |
| |
| template<typename Data , int scheme> |
| void | _publish (const Data &d, const goby::middleware::Group &group, const middleware::Publisher< Data > &) |
| |
| std::shared_ptr< middleware::SerializationSubscriptionRegex > | _subscribe_regex (std::function< void(const std::vector< unsigned char > &, int scheme, const std::string &type, const goby::middleware::Group &group)> f, const std::set< int > &schemes, const std::string &type_regex, const std::string &group_regex) |
| |
| template<typename Data , int scheme> |
| void | _subscribe (std::function< void(std::shared_ptr< const Data > d)> f, const goby::middleware::Group &group, const middleware::Subscriber< Data > &) |
| |
| template<typename Data , int scheme> |
| void | _unsubscribe (const goby::middleware::Group &group, const middleware::Subscriber< Data > &=middleware::Subscriber< Data >()) |
| |
| void | _handle_received_data (std::unique_ptr< std::unique_lock< std::mutex > > &lock, const std::string &data) |
| |
| void | _unsubscribe_all (const std::string &subscriber_id=middleware::identifier_part_to_string(std::this_thread::get_id())) |
| |
| void | _receive_subscription_forwarded (const std::shared_ptr< const middleware::SerializationHandlerBase<> > &subscription) |
| |
| void | _forwarder_unsubscribe (const std::string &subscriber_id, const std::string &identifier) |
| |
| void | _subscribe_regex_serialized (const std::shared_ptr< const middleware::SerializationSubscriptionRegex > &new_sub) |
| |
| void | _publish_serialized (std::string type_name, int scheme, const std::vector< char > &bytes, const goby::middleware::Group &group) |
| |
| template<typename Data , int scheme> |
| std::string | _make_identifier (const goby::middleware::Group &group, IdentifierWildcard wildcard) |
| |
| template<typename Data , int scheme> |
| std::string | _make_identifier (const Data &d, const goby::middleware::Group &group, IdentifierWildcard wildcard) |
| |
| std::string | _make_identifier (const std::string &type_name, int scheme, const std::string &group, IdentifierWildcard wildcard) |
| |
| static constexpr auto | to_portal_group_name_ |
| |
| static constexpr auto | regex_group_name_ |
| |
| static constexpr auto | from_portal_group_name_ |
| |
| static constexpr Group | to_portal_group_ {to_portal_group_name_.data()} |
| |
| static constexpr Group | regex_group_ {regex_group_name_.data()} |
| |
| static constexpr Group | from_portal_group_ {from_portal_group_name_.data()} |
| |
template<typename Derived, typename InnerTransporter, typename ImplementationTag>
class goby::middleware::InterModulePortalBase< Derived, InnerTransporter, ImplementationTag >
Definition at line 200 of file intermodule.h.