Class CPublisherImpl

Nested Relationships

Nested Types

Class Documentation

class CPublisherImpl

Public Types

using SSubscriptionInfo = Registration::SampleIdentifier

Public Functions

CPublisherImpl(const SDataTypeInformation &topic_info_, const eCAL::eCALWriter::SAttributes &attr_)
~CPublisherImpl()
bool Write(CPayloadWriter &payload_, long long time_, long long filter_id_)
bool SetDataTypeInformation(const SDataTypeInformation &topic_info_)
bool SetEventCallback(ePublisherEvent type_, const v5::PubEventCallbackT callback_)
bool RemoveEventCallback(ePublisherEvent type_)
bool SetEventCallback(const PubEventCallbackT callback_)
bool RemoveEventCallback()
bool SetAttribute(const std::string &attr_name_, const std::string &attr_value_)
bool ClearAttribute(const std::string &attr_name_)
void ApplySubscriberRegistration(const SSubscriptionInfo &subscription_info_, const SDataTypeInformation &data_type_info_, const SLayerStates &sub_layer_states_, const std::string &reader_par_)
void ApplySubscriberUnregistration(const SSubscriptionInfo &subscription_info_, const SDataTypeInformation &data_type_info_)
void GetRegistration(Registration::Sample &sample)
void RefreshSendCounter()
inline bool IsCreated() const
bool IsSubscribed() const
size_t GetSubscriberCount() const
inline const STopicId &GetTopicId() const
inline const std::string &GetTopicName() const
inline const SDataTypeInformation &GetDataTypeInformation() const

Protected Types

using SSubscriptionMapT = std::map<SSubscriptionInfo, SConnection>
using EventCallbackMapT = std::map<ePublisherEvent, v5::PubEventCallbackT>

Protected Functions

void Register()
void Unregister()
void GetRegistrationSample(Registration::Sample &sample)
void GetUnregistrationSample(Registration::Sample &sample)
bool StartUdpLayer()
bool StartShmLayer()
bool StartTcpLayer()
void StopAllLayer()
void FireEvent(const ePublisherEvent type_, const SSubscriptionInfo &subscription_info_, const SDataTypeInformation &data_type_info_)
void FireConnectEvent(const SSubscriptionInfo &subscription_info_, const SDataTypeInformation &data_type_info_)
void FireDisconnectEvent(const SSubscriptionInfo &subscription_info_, const SDataTypeInformation &data_type_info_)
size_t GetConnectionCount()
size_t PrepareWrite(long long id_, size_t len_)
TransportLayer::eType DetermineTransportLayer2Start(const std::vector<eTLayerType> &enabled_pub_layer_, const std::vector<eTLayerType> &enabled_sub_layer_, bool same_host_)
int32_t GetFrequency()

Protected Attributes

EntityIdT m_publisher_id
SDataTypeInformation m_topic_info
size_t m_topic_size = 0
eCAL::eCALWriter::SAttributes m_attributes
STopicId m_topic_id
std::vector<char> m_payload_buffer
mutable std::mutex m_connection_map_mutex
SSubscriptionMapT m_connection_map
std::atomic<size_t> m_connection_count = {0}
std::mutex m_event_callback_map_mutex
EventCallbackMapT m_event_callback_map
std::mutex m_event_id_callback_mutex
PubEventCallbackT m_event_id_callback
long long m_id = 0
long long m_clock = 0
std::mutex m_frequency_calculator_mutex
ResettableFrequencyCalculator<std::chrono::steady_clock> m_frequency_calculator
SLayerStates m_layers
std::atomic<bool> m_created
struct SConnection

Public Members

SDataTypeInformation data_type_info
SLayerStates layer_states
bool state = false
struct SLayerState

Public Members

bool read_enabled = false
bool write_enabled = false
bool active = false
struct SLayerStates

Public Members

SLayerState udp
SLayerState shm
SLayerState tcp