Skip to content

Commit

Permalink
Changed enum to enum class
Browse files Browse the repository at this point in the history
  • Loading branch information
hannemn committed Jan 29, 2025
1 parent 5a9aabc commit 5a19062
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 42 deletions.
6 changes: 3 additions & 3 deletions ecal/core/include/ecal/config/publisher.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ namespace eCAL
{
Layer::Configuration layer; //!< Layer configuration

using LayerPriorityVector = std::vector<TransportLayer::eTransportLayer>;
LayerPriorityVector layer_priority_local { TransportLayer::transport_layer_shm, TransportLayer::transport_layer_udp_mc, TransportLayer::transport_layer_tcp };
LayerPriorityVector layer_priority_remote { TransportLayer::transport_layer_udp_mc, TransportLayer::transport_layer_tcp };
using LayerPriorityVector = std::vector<TransportLayer::eType>;
LayerPriorityVector layer_priority_local { TransportLayer::eType::shm, TransportLayer::eType::udp_mc, TransportLayer::eType::tcp };
LayerPriorityVector layer_priority_remote { TransportLayer::eType::udp_mc, TransportLayer::eType::tcp };
};
}
}
12 changes: 6 additions & 6 deletions ecal/core/include/ecal/config/transport_layer.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ namespace eCAL
{
namespace TransportLayer
{
enum eTransportLayer
enum class eType
{
transport_layer_none = 0,
transport_layer_udp_mc = 1,
transport_layer_shm = 4,
transport_layer_tcp = 5,
transport_layer_all = 255
none,
udp_mc,
shm,
tcp,
all
};

namespace UDP
Expand Down
12 changes: 6 additions & 6 deletions ecal/core/src/config/configuration_to_yaml.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ namespace YAML
eCAL::Publisher::Configuration::LayerPriorityVector layer_priority_vector;
for (const auto& layer_as_string : string_vector_)
{
if (layer_as_string == "shm") layer_priority_vector.emplace_back(eCAL::TransportLayer::transport_layer_shm);
if (layer_as_string == "udp") layer_priority_vector.emplace_back(eCAL::TransportLayer::transport_layer_udp_mc);
if (layer_as_string == "tcp") layer_priority_vector.emplace_back(eCAL::TransportLayer::transport_layer_tcp);
if (layer_as_string == "shm") layer_priority_vector.emplace_back(eCAL::TransportLayer::eType::shm);
if (layer_as_string == "udp") layer_priority_vector.emplace_back(eCAL::TransportLayer::eType::udp_mc);
if (layer_as_string == "tcp") layer_priority_vector.emplace_back(eCAL::TransportLayer::eType::tcp);
}

return layer_priority_vector;
Expand All @@ -59,13 +59,13 @@ namespace YAML
{
switch (layer_as_enum)
{
case eCAL::TransportLayer::transport_layer_shm:
case eCAL::TransportLayer::eType::shm:
layer_priority_vector.emplace_back("shm");
break;
case eCAL::TransportLayer::transport_layer_udp_mc:
case eCAL::TransportLayer::eType::udp_mc:
layer_priority_vector.emplace_back("udp");
break;
case eCAL::TransportLayer::transport_layer_tcp:
case eCAL::TransportLayer::eType::tcp:
layer_priority_vector.emplace_back("tcp");
break;
default:
Expand Down
6 changes: 3 additions & 3 deletions ecal/core/src/config/default_configuration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ namespace
{
switch (elem)
{
case eCAL::TransportLayer::transport_layer_shm:
case eCAL::TransportLayer::eType::shm:
result += "\"shm\", ";
break;
case eCAL::TransportLayer::transport_layer_udp_mc:
case eCAL::TransportLayer::eType::udp_mc:
result += "\"udp\", ";
break;
case eCAL::TransportLayer::transport_layer_tcp:
case eCAL::TransportLayer::eType::tcp:
result += "\"tcp\", ";
break;
default:
Expand Down
6 changes: 3 additions & 3 deletions ecal/core/src/pubsub/ecal_pubgate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,13 @@ namespace eCAL
{
switch (layer.type)
{
case TransportLayer::transport_layer_udp_mc:
case tl_ecal_udp:
layer_states.udp.read_enabled = true;
break;
case TransportLayer::transport_layer_shm:
case tl_ecal_shm:
layer_states.shm.read_enabled = true;
break;
case TransportLayer::transport_layer_tcp:
case tl_ecal_tcp:
layer_states.tcp.read_enabled = true;
break;
default:
Expand Down
27 changes: 17 additions & 10 deletions ecal/core/src/pubsub/ecal_publisher_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -459,16 +459,16 @@ namespace eCAL
#endif

// determine if we need to start a transport layer
const TransportLayer::eTransportLayer layer2activate = DetermineTransportLayer2Start(pub_layers, sub_layers, m_attributes.host_name == subscription_info_.host_name);
const TransportLayer::eType layer2activate = DetermineTransportLayer2Start(pub_layers, sub_layers, m_attributes.host_name == subscription_info_.host_name);
switch (layer2activate)
{
case tl_ecal_udp:
case TransportLayer::eType::udp_mc:
StartUdpLayer();
break;
case tl_ecal_shm:
case TransportLayer::eType::shm:
StartShmLayer();
break;
case tl_ecal_tcp:
case TransportLayer::eType::tcp:
StartTcpLayer();
break;
default:
Expand Down Expand Up @@ -912,24 +912,31 @@ namespace eCAL
return snd_hash;
}

TransportLayer::eTransportLayer CPublisherImpl::DetermineTransportLayer2Start(const std::vector<eTLayerType>& enabled_pub_layer_, const std::vector<eTLayerType>& enabled_sub_layer_, bool same_host_)
TransportLayer::eType CPublisherImpl::DetermineTransportLayer2Start(const std::vector<eTLayerType>& enabled_pub_layer_, const std::vector<eTLayerType>& enabled_sub_layer_, bool same_host_)
{
// determine the priority list to use
const Publisher::Configuration::LayerPriorityVector& layer_priority_vector = same_host_ ? m_attributes.layer_priority_local : m_attributes.layer_priority_remote;

// find the highest priority transport layer that is available in both publisher and subscriber options
// TODO: we need to fusion the two layer enum types (eTransportLayer) in ecal_tlayer.h and ecal_struct_sample_common.hf
for (const TransportLayer::eTransportLayer layer : layer_priority_vector)
static const std::map<TransportLayer::eType, eTLayerType> transport_layer_mapping {
{TransportLayer::eType::none, tl_none },
{TransportLayer::eType::shm, tl_ecal_shm},
{TransportLayer::eType::udp_mc, tl_ecal_udp},
{TransportLayer::eType::tcp, tl_ecal_tcp},
{TransportLayer::eType::all, tl_all}
};

for (const TransportLayer::eType layer : layer_priority_vector)
{
if (std::find(enabled_pub_layer_.begin(), enabled_pub_layer_.end(), layer) != enabled_pub_layer_.end()
&& std::find(enabled_sub_layer_.begin(), enabled_sub_layer_.end(), layer) != enabled_sub_layer_.end())
if (std::find(enabled_pub_layer_.begin(), enabled_pub_layer_.end(), transport_layer_mapping.at(layer)) != enabled_pub_layer_.end()
&& std::find(enabled_sub_layer_.begin(), enabled_sub_layer_.end(), transport_layer_mapping.at(layer)) != enabled_sub_layer_.end())
{
return layer;
}
}

// return tl_none if no common transport layer is found
return TransportLayer::eTransportLayer::transport_layer_none;
return TransportLayer::eType::none;
}

int32_t CPublisherImpl::GetFrequency()
Expand Down
2 changes: 1 addition & 1 deletion ecal/core/src/pubsub/ecal_publisher_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ namespace eCAL

size_t PrepareWrite(long long id_, size_t len_);

TransportLayer::eTransportLayer DetermineTransportLayer2Start(const std::vector<eTLayerType>& enabled_pub_layer_, const std::vector<eTLayerType>& enabled_sub_layer_, bool same_host_);
TransportLayer::eType DetermineTransportLayer2Start(const std::vector<eTLayerType>& enabled_pub_layer_, const std::vector<eTLayerType>& enabled_sub_layer_, bool same_host_);

int32_t GetFrequency();

Expand Down
6 changes: 3 additions & 3 deletions ecal/core/src/pubsub/ecal_subgate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -227,13 +227,13 @@ namespace eCAL
{
switch (layer.type)
{
case TransportLayer::transport_layer_udp_mc:
case tl_ecal_udp:
layer_states.udp.write_enabled = true;
break;
case TransportLayer::transport_layer_shm:
case tl_ecal_shm:
layer_states.shm.write_enabled = true;
break;
case TransportLayer::transport_layer_tcp:
case tl_ecal_tcp:
layer_states.tcp.write_enabled = true;
break;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ namespace eCAL

struct SAttributes
{
using LayerPriorityVector = std::vector<TransportLayer::eTransportLayer>;
using LayerPriorityVector = std::vector<TransportLayer::eType>;
LayerPriorityVector layer_priority_local;
LayerPriorityVector layer_priority_remote;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
const auto g_snd_size (8* 1024 * 1024);
const auto g_snd_loops(1000);

void throughput_test(int snd_size, int snd_loops, eCAL::TransportLayer::eTransportLayer layer, bool zero_copy)
void throughput_test(int snd_size, int snd_loops, eCAL::TransportLayer::eType layer, bool zero_copy)
{
// create payload
CBinaryPayload payload(snd_size);
Expand All @@ -42,13 +42,13 @@ void throughput_test(int snd_size, int snd_loops, eCAL::TransportLayer::eTranspo
pub_config.layer.tcp.enable = false;
switch (layer)
{
case eCAL::TransportLayer::transport_layer_shm:
case eCAL::TransportLayer::eType::shm:
pub_config.layer.shm.enable = true;
break;
case eCAL::TransportLayer::transport_layer_udp_mc:
case eCAL::TransportLayer::eType::udp_mc:
pub_config.layer.udp.enable = true;
break;
case eCAL::TransportLayer::transport_layer_tcp:
case eCAL::TransportLayer::eType::tcp:
pub_config.layer.tcp.enable = true;
break;
default:
Expand Down Expand Up @@ -116,13 +116,13 @@ int main()
std::cout << "---------------------------" << '\n';
std::cout << "LAYER: SHM" << '\n';
std::cout << "---------------------------" << '\n';
throughput_test(g_snd_size, g_snd_loops, eCAL::TransportLayer::transport_layer_shm, false);
throughput_test(g_snd_size, g_snd_loops, eCAL::TransportLayer::eType::shm, false);
std::cout << '\n' << '\n';

std::cout << "---------------------------" << '\n';
std::cout << "LAYER: SHM ZERO-COPY" << '\n';
std::cout << "---------------------------" << '\n';
throughput_test(g_snd_size, g_snd_loops, eCAL::TransportLayer::transport_layer_shm, true);
throughput_test(g_snd_size, g_snd_loops, eCAL::TransportLayer::eType::shm, true);
std::cout << '\n' << '\n';

// finalize eCAL API
Expand Down

0 comments on commit 5a19062

Please sign in to comment.