From 2b8a6b32239b05d2d013487c562036bbb22bdac2 Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Mon, 7 Jun 2021 14:14:35 +0200 Subject: [PATCH] feat: Add new function GetEnabledTransports() * Also clang-format --- fairmq/Transports.h | 52 +++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/fairmq/Transports.h b/fairmq/Transports.h index 0ecae844..f47fd220 100644 --- a/fairmq/Transports.h +++ b/fairmq/Transports.h @@ -1,5 +1,5 @@ /******************************************************************************** - * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * + * Copyright (C) 2014-2021 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence (LGPL) version 3, * @@ -10,15 +10,13 @@ #define FAIR_MQ_TRANSPORTS_H #include - #include #include #include #include #include -namespace fair::mq -{ +namespace fair::mq { enum class Transport { @@ -28,31 +26,26 @@ enum class Transport OFI }; -struct TransportError : std::runtime_error { using std::runtime_error::runtime_error; }; - -} // namespace fair::mq - -namespace fair::mq +struct TransportError : std::runtime_error { - -static std::unordered_map TransportTypes { - { "default", Transport::DEFAULT }, - { "zeromq", Transport::ZMQ }, - { "shmem", Transport::SHM }, - { "ofi", Transport::OFI } + using std::runtime_error::runtime_error; }; -static std::unordered_map TransportNames { - { Transport::DEFAULT, "default" }, - { Transport::ZMQ, "zeromq" }, - { Transport::SHM, "shmem" }, - { Transport::OFI, "ofi" } +static std::unordered_map TransportTypes{ + {"default", Transport::DEFAULT}, + {"zeromq", Transport::ZMQ}, + {"shmem", Transport::SHM}, + {"ofi", Transport::OFI} }; -inline std::string TransportName(Transport transport) -{ - return TransportNames[transport]; -} +static std::unordered_map TransportNames{ + {Transport::DEFAULT, "default"}, + {Transport::ZMQ, "zeromq"}, + {Transport::SHM, "shmem"}, + {Transport::OFI, "ofi"} +}; + +inline std::string TransportName(Transport transport) { return TransportNames[transport]; } inline Transport TransportType(const std::string& transport) try { @@ -66,6 +59,15 @@ inline std::ostream& operator<<(std::ostream& os, const Transport& transport) return os << TransportName(transport); } -} // namespace fair::mq +inline auto GetEnabledTransports() -> std::vector +{ +#ifdef BUILD_OFI_TRANSPORT + return {Transport::ZMQ, Transport::SHM, Transport::OFI}; +#else + return {Transport::ZMQ, Transport::SHM}; +#endif +} + +} // namespace fair::mq #endif /* FAIR_MQ_TRANSPORTS_H */