Goby3 3.5.1
2026.06.04
Loading...
Searching...
No Matches
goby::middleware::detail Namespace Reference

Classes

struct  ThreadTypeSelector
 Selects which constructor to use based on whether the thread is launched with an index or not (that is, index == -1), and with a configuration object or not. Not directly called by user code. More...
struct  ThreadTypeSelector< ThreadType, ThreadConfig, false, true >
 ThreadTypeSelector instantiation for calling a constructor without an index parameter but with a configuration value, e.g. "MyThread(const MyConfig& cfg)". More...
struct  ThreadTypeSelector< ThreadType, ThreadConfig, true, true >
 ThreadTypeSelector instantiation for calling a constructor with an index parameter and a configuration value, e.g. "MyThread(const MyConfig& cfg, int index)". More...
struct  ThreadTypeSelector< ThreadType, ThreadConfig, false, false >
 ThreadTypeSelector instantiation for calling a constructor without an index parameter ora configuration value, e.g. "MyThread()". More...
struct  ThreadTypeSelector< ThreadType, ThreadConfig, true, false >
 ThreadTypeSelector instantiation for calling a constructor with an index parameter and without a configuration value, e.g. "MyThread(int index)". More...
struct  DCCLSerializerParserHelperBase
 Wraps a dccl::Codec in a thread-safe way to make it usable by SerializerParserHelper. More...
struct  primitive_type
struct  primitive_type< std::shared_ptr< T > >
struct  primitive_type< std::shared_ptr< const T > >
class  SubscriptionStoreBase
 Base class for interthread subscription information. Non-template so it can be stored in a single container. Used by InterThreadTransporter. More...
struct  DataProtection
class  SubscriptionStore
 Storage class for a specific interthread subscription (and related data). Used by InterThreadTransporter. More...

Typedefs

template<typename T>
using first_argument = decltype(first_argument_helper(std::declval<T>()))

Functions

template<typename Config>
Config make_interprocess_config (Config cfg, std::string app_name)
template<std::size_t N1, std::size_t N2>
constexpr auto concat (const char(&a)[N1], const char(&b)[N2])
template<typename Ret, typename Arg, typename... Rest>
Arg first_argument_helper (Ret(*)(Arg, Rest...))
template<typename Ret, typename F, typename Arg, typename... Rest>
Arg first_argument_helper (Ret(F::*)(Arg, Rest...))
template<typename F>
decltype(first_argument_helper(&F::operator())) first_argument_helper (F)

Variables

template<typename Data>
std::unordered_multimap< std::thread::id, typename SubscriptionStore< Data >::Callback > SubscriptionStore< Data >::subscription_callbacks_
template<typename Data>
std::unordered_map< std::thread::id, typename SubscriptionStore< Data >::DataQueue > SubscriptionStore< Data >::data_
template<typename Data>
std::unordered_multimap< goby::middleware::Group, typename decltype(SubscriptionStore< Data >::subscription_callbacks_)::const_iterator > SubscriptionStore< Data >::subscription_groups_
template<typename Data>
std::unordered_map< std::thread::id, detail::DataProtectionSubscriptionStore< Data >::data_protection_
template<typename Data>
std::shared_timed_mutex SubscriptionStore< Data >::subscription_mutex_

Typedef Documentation

◆ first_argument

template<typename T>
using goby::middleware::detail::first_argument = decltype(first_argument_helper(std::declval<T>()))

Definition at line 46 of file type_helpers.h.

Function Documentation

◆ concat()

template<std::size_t N1, std::size_t N2>
auto goby::middleware::detail::concat ( const char(&) a[N1],
const char(&) b[N2] )
constexpr

Definition at line 35 of file static_group_names.h.

◆ first_argument_helper() [1/3]

template<typename F>
decltype(first_argument_helper(&F::operator())) goby::middleware::detail::first_argument_helper ( F )

◆ first_argument_helper() [2/3]

template<typename Ret, typename Arg, typename... Rest>
Arg goby::middleware::detail::first_argument_helper ( Ret(*  )(Arg, Rest...))

◆ first_argument_helper() [3/3]

template<typename Ret, typename F, typename Arg, typename... Rest>
Arg goby::middleware::detail::first_argument_helper ( Ret(F::*  )(Arg, Rest...))

◆ make_interprocess_config()

template<typename Config>
Config goby::middleware::detail::make_interprocess_config ( Config cfg,
std::string app_name )
inline

Definition at line 33 of file interprocess_common.h.

Variable Documentation

◆ SubscriptionStore< Data >::data_

template<typename Data>
std::unordered_map<std::thread::id, typename SubscriptionStore<Data>::DataQueue> goby::middleware::detail::SubscriptionStore< Data >::data_

Definition at line 367 of file subscription_store.h.

◆ SubscriptionStore< Data >::data_protection_

template<typename Data>
std::unordered_map<std::thread::id, detail::DataProtection> goby::middleware::detail::SubscriptionStore< Data >::data_protection_

Definition at line 375 of file subscription_store.h.

◆ SubscriptionStore< Data >::subscription_callbacks_

template<typename Data>
std::unordered_multimap<std::thread::id, typename SubscriptionStore<Data>::Callback> goby::middleware::detail::SubscriptionStore< Data >::subscription_callbacks_

Definition at line 364 of file subscription_store.h.

◆ SubscriptionStore< Data >::subscription_groups_

template<typename Data>
std::unordered_multimap<goby::middleware::Group, typename decltype( SubscriptionStore<Data>::subscription_callbacks_)::const_iterator> goby::middleware::detail::SubscriptionStore< Data >::subscription_groups_

Definition at line 372 of file subscription_store.h.

◆ SubscriptionStore< Data >::subscription_mutex_

template<typename Data>
std::shared_timed_mutex goby::middleware::detail::SubscriptionStore< Data >::subscription_mutex_

Definition at line 377 of file subscription_store.h.