Skip to content

Commit

Permalink
all publisher aligned:
Browse files Browse the repository at this point in the history
- no default constructor
- 2 constructor types with and without event callback
- no Create function
  • Loading branch information
rex-schilasky committed Jan 27, 2025
1 parent bb5f00b commit 380d1ea
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 65 deletions.
6 changes: 2 additions & 4 deletions ecal/core/include/ecal/msg/publisher.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@ namespace eCAL
{
public:
/**
* @brief Constructor, that automatically intializes the Publisher.
* This should be the preferred constructor.
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param data_type_info_ Topic data type information (encoding, type, descriptor).
Expand All @@ -59,8 +58,7 @@ namespace eCAL
}

/**
* @brief Constructor, that automatically intializes the Publisher.
* This should be the preferred constructor.
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param data_type_info_ Topic data type information (encoding, type, descriptor).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,25 @@ namespace eCAL

public:
/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
**/
explicit CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : eCAL::CPublisher(topic_name_, GetDataTypeInformation(), config_)
, builder(std::make_unique<capnp::MallocMessageBuilder>())
, root_builder(builder->initRoot<message_type>())
{
}

/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param event_callback_ The publisher event callback funtion.
* @param config_ Optional configuration parameters.
**/
CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = {})
: eCAL::CPublisher(topic_name_, GetDataTypeInformation(), config_)
explicit CPublisher(const std::string& topic_name_, const eCAL::PubEventCallbackT& event_callback_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : eCAL::CPublisher(topic_name_, GetDataTypeInformation(), event_callback_, config_)
, builder(std::make_unique<capnp::MallocMessageBuilder>())
, root_builder(builder->initRoot<message_type>())
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,22 @@ namespace eCAL
public:
/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
**/
CPublisher() : CMsgPublisher<T>()
explicit CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), config_)
{
}

/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
* @param topic_name_ Unique topic name.
* @param event_callback_ The publisher event callback funtion.
* @param config_ Optional configuration parameters.
**/
CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = {}) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), config_)
explicit CPublisher(const std::string& topic_name_, const eCAL::PubEventCallbackT& event_callback_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), event_callback_, config_)
{
}

Expand All @@ -77,19 +81,6 @@ namespace eCAL
**/
CPublisher& operator=(CPublisher&&) = default;

/**
* @brief Creates this object.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
*
* @return True if it succeeds, false if it fails.
**/
bool Create(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = {})
{
return(CMsgPublisher<T>::Create(topic_name_, GetDataTypeInformation(), config_));
}

private:
/**
* @brief Get topic information of the message.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,22 @@ namespace eCAL
public:
/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
**/
CPublisher() : CMsgPublisher<T>()
CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), config_)
{
}

/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
* @param topic_name_ Unique topic name.
* @param event_callback_ The publisher event callback funtion.
* @param config_ Optional configuration parameters.
**/
CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = {}) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), config_)
CPublisher(const std::string& topic_name_, const eCAL::PubEventCallbackT& event_callback_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), event_callback_, config_)
{
}

Expand All @@ -80,19 +84,6 @@ namespace eCAL
**/
CPublisher& operator=(CPublisher&&) = default;

/**
* @brief Creates this object.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
*
* @return True if it succeeds, false if it fails.
**/
bool Create(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = {})
{
return(CMsgPublisher<T>::Create(topic_name_, GetDataTypeInformation(), config_));
}

private:
/**
* @brief Get topic information of the message.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,17 @@ namespace eCAL
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
**/

// call the function via its class because it's a virtual function that is called in constructor/destructor,-
// where the vtable is not created yet, or it's destructed.
// Probably we can handle the Message publishers differently. One message publisher class and then one class for payloads and getting type
// descriptor information.
explicit CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : eCAL::CPublisher(topic_name_, CPublisher::GetDataTypeInformation(), config_)
{
}

/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param event_callback_ The publisher event callback funtion.
* @param config_ Optional configuration parameters.
**/
explicit CPublisher(const std::string& topic_name_, const eCAL::PubEventCallbackT& event_callback_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : eCAL::CPublisher(topic_name_, CPublisher::GetDataTypeInformation(), event_callback_, config_)
{
}
Expand Down
28 changes: 12 additions & 16 deletions serialization/string/string/include/ecal/msg/string/publisher.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,23 @@ namespace eCAL
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
**/

// call the function via its class because it's a virtual function that is called in constructor/destructor,-
// where the vtable is not created yet, or it's destructed.
explicit CPublisher(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), config_)
{
}

/**
* @brief Constructor.
*
* @param topic_name_ Unique topic name.
* @param event_callback_ The publisher event callback funtion.
* @param config_ Optional configuration parameters.
**/
explicit CPublisher(const std::string& topic_name_, const eCAL::PubEventCallbackT& event_callback_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration()) : CMsgPublisher<T>(topic_name_, GetDataTypeInformation(), event_callback_, config_)
{
}

/**
* @brief Copy Constructor is not available.
**/
Expand All @@ -84,19 +93,6 @@ namespace eCAL
**/
CPublisher& operator=(CPublisher&&) = default;

/**
* @brief Creates this object.
*
* @param topic_name_ Unique topic name.
* @param config_ Optional configuration parameters.
*
* @return True if it succeeds, false if it fails.
**/
bool Create(const std::string& topic_name_, const eCAL::Publisher::Configuration& config_ = GetPublisherConfiguration())
{
return(CMsgPublisher<T>::Create(topic_name_, GetDataTypeInformation(), config_));
}

private:
/**
* @brief Get topic information of the message.
Expand Down

0 comments on commit 380d1ea

Please sign in to comment.