Fix namespaces in Transports.h and add conversion map

This commit is contained in:
Alexey Rybalchenko 2018-05-04 14:58:14 +02:00 committed by Mohammad Al-Turany
parent 155618af57
commit 7a4fd96b27
19 changed files with 61 additions and 55 deletions

View File

@ -36,7 +36,7 @@ FairMQChannel::FairMQChannel()
, fRateLogging(1) , fRateLogging(1)
, fName("") , fName("")
, fIsValid(false) , fIsValid(false)
, fTransportType(FairMQ::Transport::DEFAULT) , fTransportType(fair::mq::Transport::DEFAULT)
, fTransportFactory(nullptr) , fTransportFactory(nullptr)
, fMultipart(false) , fMultipart(false)
, fModified(true) , fModified(true)
@ -57,7 +57,7 @@ FairMQChannel::FairMQChannel(const string& type, const string& method, const str
, fRateLogging(1) , fRateLogging(1)
, fName("") , fName("")
, fIsValid(false) , fIsValid(false)
, fTransportType(FairMQ::Transport::DEFAULT) , fTransportType(fair::mq::Transport::DEFAULT)
, fTransportFactory(nullptr) , fTransportFactory(nullptr)
, fMultipart(false) , fMultipart(false)
, fModified(true) , fModified(true)
@ -99,7 +99,7 @@ FairMQChannel::FairMQChannel(const FairMQChannel& chan)
, fRateLogging(chan.fRateLogging) , fRateLogging(chan.fRateLogging)
, fName(chan.fName) , fName(chan.fName)
, fIsValid(false) , fIsValid(false)
, fTransportType(FairMQ::Transport::DEFAULT) , fTransportType(fair::mq::Transport::DEFAULT)
, fTransportFactory(nullptr) , fTransportFactory(nullptr)
, fMultipart(chan.fMultipart) , fMultipart(chan.fMultipart)
, fModified(chan.fModified) , fModified(chan.fModified)
@ -120,7 +120,7 @@ FairMQChannel& FairMQChannel::operator=(const FairMQChannel& chan)
fSocket = nullptr; fSocket = nullptr;
fName = chan.fName; fName = chan.fName;
fIsValid = false; fIsValid = false;
fTransportType = FairMQ::Transport::DEFAULT; fTransportType = fair::mq::Transport::DEFAULT;
fTransportFactory = nullptr; fTransportFactory = nullptr;
return *this; return *this;
@ -587,7 +587,7 @@ bool FairMQChannel::ValidateChannel()
} }
// validate channel transport // validate channel transport
if (FairMQ::TransportTypes.find(fTransportName) == FairMQ::TransportTypes.end()) if (fair::mq::TransportTypes.find(fTransportName) == fair::mq::TransportTypes.end())
{ {
ss << "INVALID"; ss << "INVALID";
LOG(debug) << ss.str(); LOG(debug) << ss.str();

View File

@ -311,7 +311,7 @@ class FairMQChannel
std::string fName; std::string fName;
std::atomic<bool> fIsValid; std::atomic<bool> fIsValid;
FairMQ::Transport fTransportType; fair::mq::Transport fTransportType;
std::shared_ptr<FairMQTransportFactory> fTransportFactory; std::shared_ptr<FairMQTransportFactory> fTransportFactory;
bool CheckCompatibility(std::unique_ptr<FairMQMessage>& msg) const; bool CheckCompatibility(std::unique_ptr<FairMQMessage>& msg) const;

View File

@ -555,10 +555,10 @@ void FairMQDevice::HandleMultipleChannelInput()
fMultitransportInputs.clear(); fMultitransportInputs.clear();
for (const auto& k : fInputChannelKeys) for (const auto& k : fInputChannelKeys)
{ {
FairMQ::Transport t = fChannels.at(k).at(0).fTransportType; fair::mq::Transport t = fChannels.at(k).at(0).fTransportType;
if (fMultitransportInputs.find(t) == fMultitransportInputs.end()) if (fMultitransportInputs.find(t) == fMultitransportInputs.end())
{ {
fMultitransportInputs.insert(pair<FairMQ::Transport, vector<string>>(t, vector<string>())); fMultitransportInputs.insert(pair<fair::mq::Transport, vector<string>>(t, vector<string>()));
fMultitransportInputs.at(t).push_back(k); fMultitransportInputs.at(t).push_back(k);
} }
else else
@ -762,7 +762,7 @@ void FairMQDevice::Pause()
shared_ptr<FairMQTransportFactory> FairMQDevice::AddTransport(const string& transport) shared_ptr<FairMQTransportFactory> FairMQDevice::AddTransport(const string& transport)
{ {
auto i = fTransports.find(FairMQ::TransportTypes.at(transport)); auto i = fTransports.find(fair::mq::TransportTypes.at(transport));
if (i == fTransports.end()) if (i == fTransports.end())
{ {
@ -770,7 +770,7 @@ shared_ptr<FairMQTransportFactory> FairMQDevice::AddTransport(const string& tran
LOG(debug) << "Adding '" << transport << "' transport to the device."; LOG(debug) << "Adding '" << transport << "' transport to the device.";
pair<FairMQ::Transport, shared_ptr<FairMQTransportFactory>> trPair(FairMQ::TransportTypes.at(transport), tr); pair<fair::mq::Transport, shared_ptr<FairMQTransportFactory>> trPair(fair::mq::TransportTypes.at(transport), tr);
fTransports.insert(trPair); fTransports.insert(trPair);
return tr; return tr;

View File

@ -253,7 +253,7 @@ class FairMQDevice : public FairMQStateMachine
// if more than one channel provided, check compatibility // if more than one channel provided, check compatibility
if (chans.size() > 1) if (chans.size() > 1)
{ {
FairMQ::Transport type = fChannels.at(chans.at(0)).at(0).Transport()->GetType(); fair::mq::Transport type = fChannels.at(chans.at(0)).at(0).Transport()->GetType();
for (unsigned int i = 1; i < chans.size(); ++i) for (unsigned int i = 1; i < chans.size(); ++i)
{ {
@ -273,7 +273,7 @@ class FairMQDevice : public FairMQStateMachine
// if more than one channel provided, check compatibility // if more than one channel provided, check compatibility
if (channels.size() > 1) if (channels.size() > 1)
{ {
FairMQ::Transport type = channels.at(0)->Transport()->GetType(); fair::mq::Transport type = channels.at(0)->Transport()->GetType();
for (unsigned int i = 1; i < channels.size(); ++i) for (unsigned int i = 1; i < channels.size(); ++i)
{ {
@ -415,7 +415,7 @@ class FairMQDevice : public FairMQStateMachine
protected: protected:
std::shared_ptr<FairMQTransportFactory> fTransportFactory; ///< Transport factory std::shared_ptr<FairMQTransportFactory> fTransportFactory; ///< Transport factory
std::unordered_map<FairMQ::Transport, std::shared_ptr<FairMQTransportFactory>> fTransports; ///< Container for transports std::unordered_map<fair::mq::Transport, std::shared_ptr<FairMQTransportFactory>> fTransports; ///< Container for transports
public: public:
std::unordered_map<std::string, std::vector<FairMQChannel>> fChannels; ///< Device channels std::unordered_map<std::string, std::vector<FairMQChannel>> fChannels; ///< Device channels
@ -521,7 +521,7 @@ class FairMQDevice : public FairMQStateMachine
bool fDataCallbacks; bool fDataCallbacks;
std::unordered_map<std::string, InputMsgCallback> fMsgInputs; std::unordered_map<std::string, InputMsgCallback> fMsgInputs;
std::unordered_map<std::string, InputMultipartCallback> fMultipartInputs; std::unordered_map<std::string, InputMultipartCallback> fMultipartInputs;
std::unordered_map<FairMQ::Transport, std::vector<std::string>> fMultitransportInputs; std::unordered_map<fair::mq::Transport, std::vector<std::string>> fMultitransportInputs;
std::unordered_map<std::string, std::pair<uint16_t, uint16_t>> fChannelRegistry; std::unordered_map<std::string, std::pair<uint16_t, uint16_t>> fChannelRegistry;
std::vector<std::string> fInputChannelKeys; std::vector<std::string> fInputChannelKeys;
std::mutex fMultitransportMutex; std::mutex fMultitransportMutex;

View File

@ -28,7 +28,7 @@ class FairMQMessage
virtual bool SetUsedSize(const size_t size) = 0; virtual bool SetUsedSize(const size_t size) = 0;
virtual FairMQ::Transport GetType() const = 0; virtual fair::mq::Transport GetType() const = 0;
virtual void Copy(const std::unique_ptr<FairMQMessage>& msg) __attribute__((deprecated("Use 'Copy(const FairMQMessage& msg)'"))) = 0; virtual void Copy(const std::unique_ptr<FairMQMessage>& msg) __attribute__((deprecated("Use 'Copy(const FairMQMessage& msg)'"))) = 0;
virtual void Copy(const FairMQMessage& msg) = 0; virtual void Copy(const FairMQMessage& msg) = 0;

View File

@ -29,7 +29,7 @@ class FairMQTransportFactory
private: private:
/// Topology wide unique id /// Topology wide unique id
const std::string fkId; const std::string fkId;
public: public:
/// ctor /// ctor
/// @param id Topology wide unique id, usually the device id. /// @param id Topology wide unique id, usually the device id.
@ -69,7 +69,7 @@ class FairMQTransportFactory
virtual FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback = nullptr) const = 0; virtual FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback = nullptr) const = 0;
/// Get transport type /// Get transport type
virtual FairMQ::Transport GetType() const = 0; virtual fair::mq::Transport GetType() const = 0;
virtual void Interrupt() = 0; virtual void Interrupt() = 0;
virtual void Resume() = 0; virtual void Resume() = 0;

View File

@ -15,8 +15,9 @@
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
/// TODO deprecate this namespace namespace fair
namespace FairMQ {
namespace mq
{ {
enum class Transport enum class Transport
@ -28,7 +29,6 @@ enum class Transport
OFI OFI
}; };
static std::unordered_map<std::string, Transport> TransportTypes { static std::unordered_map<std::string, Transport> TransportTypes {
{ "default", Transport::DEFAULT }, { "default", Transport::DEFAULT },
{ "zeromq", Transport::ZMQ }, { "zeromq", Transport::ZMQ },
@ -37,16 +37,6 @@ static std::unordered_map<std::string, Transport> TransportTypes {
{ "ofi", Transport::OFI } { "ofi", Transport::OFI }
}; };
}
namespace fair
{
namespace mq
{
using Transport = ::FairMQ::Transport;
using ::FairMQ::TransportTypes;
} /* namespace mq */ } /* namespace mq */
} /* namespace fair */ } /* namespace fair */
@ -54,8 +44,24 @@ namespace std
{ {
template<> template<>
struct hash<FairMQ::Transport> : fair::mq::tools::HashEnum<FairMQ::Transport> {}; struct hash<fair::mq::Transport> : fair::mq::tools::HashEnum<fair::mq::Transport> {};
} /* namespace std */ } /* namespace std */
namespace fair
{
namespace mq
{
static std::unordered_map<Transport, std::string> TransportNames {
{ Transport::DEFAULT, "default" },
{ Transport::ZMQ, "zeromq" },
{ Transport::NN, "nanomsg" },
{ Transport::SHM, "shmem" },
{ Transport::OFI, "ofi" }
};
} /* namespace mq */
} /* namespace fair */
#endif /* FAIR_MQ_TRANSPORTS_H */ #endif /* FAIR_MQ_TRANSPORTS_H */

View File

@ -22,7 +22,7 @@
using namespace std; using namespace std;
FairMQ::Transport FairMQMessageNN::fTransportType = FairMQ::Transport::NN; fair::mq::Transport FairMQMessageNN::fTransportType = fair::mq::Transport::NN;
FairMQMessageNN::FairMQMessageNN() FairMQMessageNN::FairMQMessageNN()
: fMessage(nullptr) : fMessage(nullptr)
@ -172,7 +172,7 @@ void FairMQMessageNN::SetMessage(void* data, const size_t size)
fSize = size; fSize = size;
} }
FairMQ::Transport FairMQMessageNN::GetType() const fair::mq::Transport FairMQMessageNN::GetType() const
{ {
return fTransportType; return fTransportType;
} }

View File

@ -46,7 +46,7 @@ class FairMQMessageNN : public FairMQMessage
bool SetUsedSize(const size_t size) override; bool SetUsedSize(const size_t size) override;
FairMQ::Transport GetType() const override; fair::mq::Transport GetType() const override;
void Copy(const FairMQMessage& msg) override; void Copy(const FairMQMessage& msg) override;
void Copy(const FairMQMessagePtr& msg) override; void Copy(const FairMQMessagePtr& msg) override;
@ -59,7 +59,7 @@ class FairMQMessageNN : public FairMQMessage
size_t fHint; size_t fHint;
bool fReceiving; bool fReceiving;
FairMQUnmanagedRegion* fRegionPtr; FairMQUnmanagedRegion* fRegionPtr;
static FairMQ::Transport fTransportType; static fair::mq::Transport fTransportType;
void* GetMessage() const; void* GetMessage() const;
void CloseMessage(); void CloseMessage();

View File

@ -12,7 +12,7 @@
using namespace std; using namespace std;
FairMQ::Transport FairMQTransportFactoryNN::fTransportType = FairMQ::Transport::NN; fair::mq::Transport FairMQTransportFactoryNN::fTransportType = fair::mq::Transport::NN;
FairMQTransportFactoryNN::FairMQTransportFactoryNN(const string& id, const FairMQProgOptions* /*config*/) FairMQTransportFactoryNN::FairMQTransportFactoryNN(const string& id, const FairMQProgOptions* /*config*/)
: FairMQTransportFactory(id) : FairMQTransportFactory(id)
@ -70,7 +70,7 @@ FairMQUnmanagedRegionPtr FairMQTransportFactoryNN::CreateUnmanagedRegion(const s
return unique_ptr<FairMQUnmanagedRegion>(new FairMQUnmanagedRegionNN(size, callback)); return unique_ptr<FairMQUnmanagedRegion>(new FairMQUnmanagedRegionNN(size, callback));
} }
FairMQ::Transport FairMQTransportFactoryNN::GetType() const fair::mq::Transport FairMQTransportFactoryNN::GetType() const
{ {
return fTransportType; return fTransportType;
} }

View File

@ -39,13 +39,13 @@ class FairMQTransportFactoryNN : public FairMQTransportFactory
FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback) const override; FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback) const override;
FairMQ::Transport GetType() const override; fair::mq::Transport GetType() const override;
void Interrupt() override { FairMQSocketNN::Interrupt(); } void Interrupt() override { FairMQSocketNN::Interrupt(); }
void Resume() override { FairMQSocketNN::Resume(); } void Resume() override { FairMQSocketNN::Resume(); }
private: private:
static FairMQ::Transport fTransportType; static fair::mq::Transport fTransportType;
}; };
#endif /* FAIRMQTRANSPORTFACTORYNN_H_ */ #endif /* FAIRMQTRANSPORTFACTORYNN_H_ */

View File

@ -23,7 +23,7 @@ namespace bipc = boost::interprocess;
namespace bpt = boost::posix_time; namespace bpt = boost::posix_time;
atomic<bool> FairMQMessageSHM::fInterrupted(false); atomic<bool> FairMQMessageSHM::fInterrupted(false);
FairMQ::Transport FairMQMessageSHM::fTransportType = FairMQ::Transport::SHM; fair::mq::Transport FairMQMessageSHM::fTransportType = fair::mq::Transport::SHM;
FairMQMessageSHM::FairMQMessageSHM(Manager& manager) FairMQMessageSHM::FairMQMessageSHM(Manager& manager)
: fManager(manager) : fManager(manager)
@ -284,7 +284,7 @@ bool FairMQMessageSHM::SetUsedSize(const size_t size)
} }
} }
FairMQ::Transport FairMQMessageSHM::GetType() const fair::mq::Transport FairMQMessageSHM::GetType() const
{ {
return fTransportType; return fTransportType;
} }

View File

@ -44,7 +44,7 @@ class FairMQMessageSHM : public FairMQMessage
bool SetUsedSize(const size_t size) override; bool SetUsedSize(const size_t size) override;
FairMQ::Transport GetType() const override; fair::mq::Transport GetType() const override;
void Copy(const FairMQMessage& msg) override; void Copy(const FairMQMessage& msg) override;
void Copy(const FairMQMessagePtr& msg) override; void Copy(const FairMQMessagePtr& msg) override;
@ -57,7 +57,7 @@ class FairMQMessageSHM : public FairMQMessage
bool fQueued; bool fQueued;
bool fMetaCreated; bool fMetaCreated;
static std::atomic<bool> fInterrupted; static std::atomic<bool> fInterrupted;
static FairMQ::Transport fTransportType; static fair::mq::Transport fTransportType;
size_t fRegionId; size_t fRegionId;
mutable fair::mq::shmem::Region* fRegionPtr; mutable fair::mq::shmem::Region* fRegionPtr;
boost::interprocess::managed_shared_memory::handle_t fHandle; boost::interprocess::managed_shared_memory::handle_t fHandle;

View File

@ -32,7 +32,7 @@ namespace bfs = boost::filesystem;
namespace bpt = boost::posix_time; namespace bpt = boost::posix_time;
namespace bipc = boost::interprocess; namespace bipc = boost::interprocess;
FairMQ::Transport FairMQTransportFactorySHM::fTransportType = FairMQ::Transport::SHM; fair::mq::Transport FairMQTransportFactorySHM::fTransportType = fair::mq::Transport::SHM;
FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id, const FairMQProgOptions* config) FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id, const FairMQProgOptions* config)
: FairMQTransportFactory(id) : FairMQTransportFactory(id)
@ -316,7 +316,7 @@ FairMQTransportFactorySHM::~FairMQTransportFactorySHM()
} }
} }
FairMQ::Transport FairMQTransportFactorySHM::GetType() const fair::mq::Transport FairMQTransportFactorySHM::GetType() const
{ {
return fTransportType; return fTransportType;
} }

View File

@ -47,7 +47,7 @@ class FairMQTransportFactorySHM : public FairMQTransportFactory
FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback = nullptr) const override; FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback = nullptr) const override;
FairMQ::Transport GetType() const override; fair::mq::Transport GetType() const override;
void Interrupt() override { FairMQSocketSHM::Interrupt(); } void Interrupt() override { FairMQSocketSHM::Interrupt(); }
void Resume() override { FairMQSocketSHM::Resume(); } void Resume() override { FairMQSocketSHM::Resume(); }
@ -58,7 +58,7 @@ class FairMQTransportFactorySHM : public FairMQTransportFactory
void SendHeartbeats(); void SendHeartbeats();
void StartMonitor(); void StartMonitor();
static FairMQ::Transport fTransportType; static fair::mq::Transport fTransportType;
std::string fDeviceId; std::string fDeviceId;
std::string fSessionName; std::string fSessionName;
void* fContext; void* fContext;

View File

@ -20,7 +20,7 @@
using namespace std; using namespace std;
FairMQ::Transport FairMQMessageZMQ::fTransportType = FairMQ::Transport::ZMQ; fair::mq::Transport FairMQMessageZMQ::fTransportType = fair::mq::Transport::ZMQ;
FairMQMessageZMQ::FairMQMessageZMQ() FairMQMessageZMQ::FairMQMessageZMQ()
: fUsedSizeModified(false) : fUsedSizeModified(false)
@ -190,7 +190,7 @@ void FairMQMessageZMQ::ApplyUsedSize()
} }
} }
FairMQ::Transport FairMQMessageZMQ::GetType() const fair::mq::Transport FairMQMessageZMQ::GetType() const
{ {
return fTransportType; return fTransportType;
} }

View File

@ -46,7 +46,7 @@ class FairMQMessageZMQ : public FairMQMessage
bool SetUsedSize(const size_t size) override; bool SetUsedSize(const size_t size) override;
void ApplyUsedSize(); void ApplyUsedSize();
FairMQ::Transport GetType() const override; fair::mq::Transport GetType() const override;
void Copy(const FairMQMessagePtr& msg) override; void Copy(const FairMQMessagePtr& msg) override;
void Copy(const FairMQMessage& msg) override; void Copy(const FairMQMessage& msg) override;
@ -58,7 +58,7 @@ class FairMQMessageZMQ : public FairMQMessage
size_t fUsedSize; size_t fUsedSize;
std::unique_ptr<zmq_msg_t> fMsg; std::unique_ptr<zmq_msg_t> fMsg;
std::unique_ptr<zmq_msg_t> fViewMsg; // view on a subset of fMsg (treating it as user buffer) std::unique_ptr<zmq_msg_t> fViewMsg; // view on a subset of fMsg (treating it as user buffer)
static FairMQ::Transport fTransportType; static fair::mq::Transport fTransportType;
zmq_msg_t* GetMessage() const; zmq_msg_t* GetMessage() const;
void CloseMessage(); void CloseMessage();

View File

@ -11,7 +11,7 @@
using namespace std; using namespace std;
FairMQ::Transport FairMQTransportFactoryZMQ::fTransportType = FairMQ::Transport::ZMQ; fair::mq::Transport FairMQTransportFactoryZMQ::fTransportType = fair::mq::Transport::ZMQ;
FairMQTransportFactoryZMQ::FairMQTransportFactoryZMQ(const string& id, const FairMQProgOptions* config) FairMQTransportFactoryZMQ::FairMQTransportFactoryZMQ(const string& id, const FairMQProgOptions* config)
: FairMQTransportFactory(id) : FairMQTransportFactory(id)
@ -100,7 +100,7 @@ FairMQUnmanagedRegionPtr FairMQTransportFactoryZMQ::CreateUnmanagedRegion(const
return unique_ptr<FairMQUnmanagedRegion>(new FairMQUnmanagedRegionZMQ(size, callback)); return unique_ptr<FairMQUnmanagedRegion>(new FairMQUnmanagedRegionZMQ(size, callback));
} }
FairMQ::Transport FairMQTransportFactoryZMQ::GetType() const fair::mq::Transport FairMQTransportFactoryZMQ::GetType() const
{ {
return fTransportType; return fTransportType;
} }

View File

@ -48,13 +48,13 @@ class FairMQTransportFactoryZMQ : public FairMQTransportFactory
FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback) const override; FairMQUnmanagedRegionPtr CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback) const override;
FairMQ::Transport GetType() const override; fair::mq::Transport GetType() const override;
void Interrupt() override { FairMQSocketZMQ::Interrupt(); } void Interrupt() override { FairMQSocketZMQ::Interrupt(); }
void Resume() override { FairMQSocketZMQ::Resume(); } void Resume() override { FairMQSocketZMQ::Resume(); }
private: private:
static FairMQ::Transport fTransportType; static fair::mq::Transport fTransportType;
void* fContext; void* fContext;
}; };