9 #ifndef FAIR_MQ_TRANSPORTS_H
10 #define FAIR_MQ_TRANSPORTS_H
12 #include <fairmq/tools/Strings.h>
17 #include <unordered_map>
30 struct TransportError : std::runtime_error {
using std::runtime_error::runtime_error; };
37 static std::unordered_map<std::string, Transport> TransportTypes {
38 {
"default", Transport::DEFAULT },
39 {
"zeromq", Transport::ZMQ },
40 {
"shmem", Transport::SHM },
41 {
"ofi", Transport::OFI }
44 static std::unordered_map<Transport, std::string> TransportNames {
45 { Transport::DEFAULT,
"default" },
46 { Transport::ZMQ,
"zeromq" },
47 { Transport::SHM,
"shmem" },
48 { Transport::OFI,
"ofi" }
51 inline std::string TransportName(Transport transport)
53 return TransportNames[transport];
56 inline Transport TransportType(
const std::string& transport)
58 return TransportTypes.at(transport);
59 }
catch (std::out_of_range&) {
60 throw TransportError(tools::ToString(
"Unknown transport provided: ", transport));