Class CSubscriberImpl
Defined in File ecal_subscriber_impl.h
Nested Relationships
Nested Types
Class Documentation
-
class CSubscriberImpl
Public Types
-
using SPublicationInfo = Registration::SampleIdentifier
Public Functions
-
CSubscriberImpl(const SDataTypeInformation &topic_info_, const eCAL::eCALReader::SAttributes &attr_)
-
~CSubscriberImpl()
-
CSubscriberImpl(const CSubscriberImpl&) = delete
-
CSubscriberImpl &operator=(const CSubscriberImpl&) = delete
-
CSubscriberImpl(CSubscriberImpl&&) = delete
-
CSubscriberImpl &operator=(CSubscriberImpl&&) = delete
-
bool Read(std::string &buf_, long long *time_ = nullptr, int rcv_timeout_ms_ = 0)
-
bool SetReceiveCallback(ReceiveCallbackT callback_)
-
bool RemoveReceiveCallback()
-
bool SetEventCallback(eSubscriberEvent type_, v5::SubEventCallbackT callback_)
-
bool RemoveEventCallback(eSubscriberEvent type_)
-
bool SetEventIDCallback(const SubEventCallbackT callback_)
-
bool RemoveEventCallback()
-
bool SetAttribute(const std::string &attr_name_, const std::string &attr_value_)
-
bool ClearAttribute(const std::string &attr_name_)
-
void SetFilterIDs(const std::set<long long> &filter_ids_)
-
void ApplyPublisherRegistration(const SPublicationInfo &publication_info_, const SDataTypeInformation &data_type_info_, const SLayerStates &pub_layer_states_)
-
void ApplyPublisherUnregistration(const SPublicationInfo &publication_info_, const SDataTypeInformation &data_type_info_)
-
void ApplyLayerParameter(const SPublicationInfo &publication_info_, eTLayerType type_, const Registration::ConnectionPar ¶meter_)
-
inline bool IsCreated() const
-
bool IsPublished() const
-
size_t GetPublisherCount() const
-
inline const std::string &GetTopicName() const
-
inline const SDataTypeInformation &GetDataTypeInformation() const
-
void InitializeLayers()
-
size_t ApplySample(const Payload::TopicInfo &topic_info_, const char *payload_, size_t size_, long long id_, long long clock_, long long time_, size_t hash_, eTLayerType layer_)
Protected Types
-
using ConnectionMapT = std::map<SPublicationInfo, SConnection>
-
using EventCallbackMapT = std::map<eSubscriberEvent, v5::SubEventCallbackT>
Protected Functions
-
void Register()
-
void Unregister()
-
void StartTransportLayer()
-
void StopTransportLayer()
-
void FireEvent(const eSubscriberEvent type_, const SPublicationInfo &publication_info_, const SDataTypeInformation &data_type_info_)
-
void FireConnectEvent(const SPublicationInfo &publication_info_, const SDataTypeInformation &data_type_info_)
-
void FireDisconnectEvent(const SPublicationInfo &publication_info_, const SDataTypeInformation &data_type_info_)
-
void FireDroppedEvent(const SPublicationInfo &publication_info_, const SDataTypeInformation &data_type_info_)
-
size_t GetConnectionCount()
-
bool CheckMessageClock(const SPublicationInfo &publication_info_, long long current_clock_)
-
int32_t GetFrequency()
Protected Attributes
-
SDataTypeInformation m_topic_info
-
std::atomic<size_t> m_topic_size
-
mutable std::mutex m_connection_map_mtx
-
ConnectionMapT m_connection_map
-
std::atomic<size_t> m_connection_count = {0}
-
mutable std::mutex m_read_buf_mutex
-
std::condition_variable m_read_buf_cv
-
bool m_read_buf_received = false
-
std::string m_read_buf
-
long long m_read_time = 0
-
std::mutex m_receive_callback_mutex
-
ReceiveCallbackT m_receive_callback
-
std::atomic<int> m_receive_time
-
std::deque<size_t> m_sample_hash_queue
-
std::mutex m_event_callback_map_mutex
-
EventCallbackMapT m_event_callback_map
-
std::mutex m_event_id_callback_mutex
-
SubEventCallbackT m_event_id_callback
-
std::atomic<long long> m_clock
-
std::mutex m_frequency_calculator_mutex
-
ResettableFrequencyCalculator<std::chrono::steady_clock> m_frequency_calculator
-
std::set<long long> m_id_set
-
WriterCounterMapT m_writer_counter_map
-
long long m_message_drops = 0
-
SLayerStates m_layers
-
std::atomic<bool> m_created
-
eCAL::eCALReader::SAttributes m_attributes
-
struct SConnection
-
struct SLayerState
-
struct SLayerStates
-
using SPublicationInfo = Registration::SampleIdentifier