FairMQ  1.2.0
C++ Message Passing Framework
Transports.h
1 /********************************************************************************
2  * Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 
9 #ifndef FAIR_MQ_TRANSPORTS_H
10 #define FAIR_MQ_TRANSPORTS_H
11 
12 #include <fairmq/Tools.h>
13 
14 #include <memory>
15 #include <string>
16 #include <unordered_map>
17 
19 namespace FairMQ
20 {
21 
22 enum class Transport
23 {
24  DEFAULT,
25  ZMQ,
26  NN,
27  SHM,
28  OFI
29 };
30 
31 
32 static std::unordered_map<std::string, Transport> TransportTypes {
33  { "default", Transport::DEFAULT },
34  { "zeromq", Transport::ZMQ },
35  { "nanomsg", Transport::NN },
36  { "shmem", Transport::SHM },
37  { "ofi", Transport::OFI }
38 };
39 
40 }
41 
42 namespace fair
43 {
44 namespace mq
45 {
46 
47 using Transport = ::FairMQ::Transport;
48 using ::FairMQ::TransportTypes;
49 
50 } /* namespace mq */
51 } /* namespace fair */
52 
53 namespace std
54 {
55 
56 template<>
57 struct hash<FairMQ::Transport> : fair::mq::tools::HashEnum<FairMQ::Transport> {};
58 
59 } /* namespace std */
60 
61 #endif /* FAIR_MQ_TRANSPORTS_H */
Definition: Transports.h:53
TODO deprecate this namespace.
Definition: Transports.h:19
Definition: CppSTL.h:32
Definition: DeviceRunner.h:23