FairMQ: Remove deprecated TransportFactory factory method

This commit is contained in:
Dennis Klein 2018-02-14 16:35:55 +01:00 committed by Mohammad Al-Turany
parent 7cfd93c998
commit 9b7841e89e
11 changed files with 71 additions and 124 deletions

View File

@ -75,8 +75,8 @@ set(FAIRMQ_HEADER_FILES
FairMQSocket.h
FairMQStateMachine.h
FairMQTransportFactory.h
FairMQTransports.h
Tools.h
Transports.h
devices/FairMQBenchmarkSampler.h
devices/FairMQMerger.h
devices/FairMQMultiplier.h

View File

@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* FairMQChannel.h
*
* @since 2015-06-02
* @author A. Rybalchenko
*/
#ifndef FAIRMQCHANNEL_H_
#define FAIRMQCHANNEL_H_
@ -21,12 +15,12 @@
#include <atomic>
#include <mutex>
#include "FairMQTransportFactory.h"
#include "FairMQSocket.h"
#include "FairMQPoller.h"
#include "FairMQTransports.h"
#include "FairMQLogger.h"
#include "FairMQParts.h"
#include <FairMQTransportFactory.h>
#include <FairMQSocket.h>
#include <FairMQPoller.h>
#include <fairmq/Transports.h>
#include <FairMQLogger.h>
#include <FairMQParts.h>
class FairMQChannel
{

View File

@ -1,11 +1,25 @@
/********************************************************************************
* Copyright (C) 2012-2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2012-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
#include <FairMQSocket.h>
#include <FairMQDevice.h>
#include <FairMQLogger.h>
#include <options/FairMQProgOptions.h>
#include <fairmq/Tools.h>
#include <fairmq/Transports.h>
#include <boost/algorithm/string.hpp> // join/split
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <list>
#include <cstdlib>
#include <stdexcept>
@ -14,24 +28,7 @@
#include <mutex>
#include <thread>
#include <functional>
#include <boost/algorithm/string.hpp> // join/split
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include "FairMQSocket.h"
#include "FairMQDevice.h"
#include "FairMQLogger.h"
#include <fairmq/Tools.h>
#include "options/FairMQProgOptions.h"
#include "zeromq/FairMQTransportFactoryZMQ.h"
#include "shmem/FairMQTransportFactorySHM.h"
#ifdef NANOMSG_FOUND
#include "nanomsg/FairMQTransportFactoryNN.h"
#endif
#include <sstream>
using namespace std;
@ -804,39 +801,6 @@ shared_ptr<FairMQTransportFactory> FairMQDevice::AddTransport(const string& tran
}
}
unique_ptr<FairMQTransportFactory> FairMQDevice::MakeTransport(const string& transport)
{
unique_ptr<FairMQTransportFactory> tr;
if (transport == "zeromq")
{
tr = fair::mq::tools::make_unique<FairMQTransportFactoryZMQ>();
}
else if (transport == "shmem")
{
tr = fair::mq::tools::make_unique<FairMQTransportFactorySHM>();
}
#ifdef NANOMSG_FOUND
else if (transport == "nanomsg")
{
tr = fair::mq::tools::make_unique<FairMQTransportFactoryNN>();
}
#endif
else
{
LOG(error) << "Unavailable transport requested: " << "\"" << transport << "\"" << ". Available are: "
<< "\"zeromq\""
<< "\"shmem\""
#ifdef NANOMSG_FOUND
<< ", \"nanomsg\""
#endif
<< ". Returning nullptr.";
return tr;
}
return tr;
}
void FairMQDevice::CreateOwnConfig()
{
// TODO: make fConfig a shared_ptr when no old user code has FairMQProgOptions ptr*

View File

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2012-2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2012-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
@ -9,16 +9,15 @@
#ifndef FAIRMQDEVICE_H_
#define FAIRMQDEVICE_H_
#include "FairMQStateMachine.h"
#include "FairMQTransportFactory.h"
#include "FairMQTransports.h"
#include <FairMQStateMachine.h>
#include <FairMQTransportFactory.h>
#include <fairmq/Transports.h>
#include "FairMQSocket.h"
#include "FairMQChannel.h"
#include "FairMQMessage.h"
#include "FairMQParts.h"
#include "FairMQUnmanagedRegion.h"
#include "options/FairMQProgOptions.h"
#include <FairMQSocket.h>
#include <FairMQChannel.h>
#include <FairMQMessage.h>
#include <FairMQParts.h>
#include <FairMQUnmanagedRegion.h>
#include <vector>
#include <memory> // unique_ptr
@ -297,10 +296,6 @@ class FairMQDevice : public FairMQStateMachine
/// @param transport Transport string ("zeromq"/"nanomsg"/"shmem")
void SetTransport(const std::string& transport = "zeromq");
/// Creates stand-alone transport factory
/// @param transport Transport string ("zeromq"/"nanomsg"/"shmem")
static std::unique_ptr<FairMQTransportFactory> MakeTransport(const std::string& transport) __attribute__((deprecated("Use 'static auto FairMQTransportFactory::CreateTransportFactory() -> std::shared_ptr<FairMQTransportFactory>' from <FairMQTransportFactory.h> instead.")));
void SetConfig(FairMQProgOptions& config);
const FairMQProgOptions* GetConfig() const
{

View File

@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* FairMQMessage.h
*
* @since 2012-12-05
* @author D. Klein, A. Rybalchenko
*/
#ifndef FAIRMQMESSAGE_H_
#define FAIRMQMESSAGE_H_
@ -18,7 +12,7 @@
#include <cstddef> // for size_t
#include <memory> // unique_ptr
#include "FairMQTransports.h"
#include <fairmq/Transports.h>
using fairmq_free_fn = void(void* data, void* hint);

View File

@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* FairMQPoller.h
*
* @since 2014-01-23
* @author A. Rybalchenko
*/
#ifndef FAIRMQPOLLER_H_
#define FAIRMQPOLLER_H_

View File

@ -1,16 +1,10 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
* copied verbatim in the file "LICENSE" *
********************************************************************************/
/**
* FairMQSocket.h
*
* @since 2012-12-05
* @author D. Klein, A. Rybalchenko
*/
#ifndef FAIRMQSOCKET_H_
#define FAIRMQSOCKET_H_

View File

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2017-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
@ -12,6 +12,7 @@
#ifdef NANOMSG_FOUND
#include <nanomsg/FairMQTransportFactoryNN.h>
#endif /* NANOMSG_FOUND */
#include <fairmq/ofi/TransportFactory.h>
#include <FairMQLogger.h>
#include <fairmq/Tools.h>
@ -38,18 +39,22 @@ auto FairMQTransportFactory::CreateTransportFactory(const std::string& type, con
if (type == "zeromq")
{
return std::make_shared<FairMQTransportFactoryZMQ>(finalId, config);
return make_shared<FairMQTransportFactoryZMQ>(finalId, config);
}
else if (type == "shmem")
{
return std::make_shared<FairMQTransportFactorySHM>(finalId, config);
return make_shared<FairMQTransportFactorySHM>(finalId, config);
}
#ifdef NANOMSG_FOUND
else if (type == "nanomsg")
{
return std::make_shared<FairMQTransportFactoryNN>(finalId, config);
return make_shared<FairMQTransportFactoryNN>(finalId, config);
}
#endif /* NANOMSG_FOUND */
else if (type == "ofi")
{
return make_shared<fair::mq::ofi::TransportFactory>(finalId, config);
}
else
{
LOG(error) << "Unavailable transport requested: " << "\"" << type << "\"" << ". Available are: "
@ -58,6 +63,7 @@ auto FairMQTransportFactory::CreateTransportFactory(const std::string& type, con
#ifdef NANOMSG_FOUND
<< ", \"nanomsg\""
#endif /* NANOMSG_FOUND */
<< ", and \"ofi\""
<< ". Exiting.";
exit(EXIT_FAILURE);
}

View File

@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2014-2017 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
@ -9,12 +9,12 @@
#ifndef FAIRMQTRANSPORTFACTORY_H_
#define FAIRMQTRANSPORTFACTORY_H_
#include "FairMQMessage.h"
#include "FairMQSocket.h"
#include "FairMQPoller.h"
#include "FairMQUnmanagedRegion.h"
#include "FairMQLogger.h"
#include "FairMQTransports.h"
#include <FairMQMessage.h>
#include <FairMQSocket.h>
#include <FairMQPoller.h>
#include <FairMQUnmanagedRegion.h>
#include <FairMQLogger.h>
#include <fairmq/Transports.h>
#include <string>
#include <memory>

View File

@ -10,6 +10,8 @@
#define FAIR_MQ_TRANSPORTS_H
#include <fairmq/Tools.h>
#include <memory>
#include <string>
#include <unordered_map>
@ -21,7 +23,9 @@ enum class Transport
{
DEFAULT,
ZMQ,
#ifdef NANOMSG_FOUND
NN,
#endif
SHM,
OFI
};
@ -30,7 +34,9 @@ enum class Transport
static std::unordered_map<std::string, Transport> TransportTypes {
{ "default", Transport::DEFAULT },
{ "zeromq", Transport::ZMQ },
#ifdef NANOMSG_FOUND
{ "nanomsg", Transport::NN },
#endif
{ "shmem", Transport::SHM },
{ "ofi", Transport::OFI }
};

View File

@ -25,57 +25,57 @@ TransportFactory::TransportFactory(const string& id, const FairMQProgOptions* co
auto TransportFactory::CreateMessage() const -> MessagePtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreateMessage(const size_t size) const -> MessagePtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreateMessage(void* data, const size_t size, fairmq_free_fn* ffn, void* hint) const -> MessagePtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreateMessage(UnmanagedRegionPtr& region, void* data, const size_t size, void* hint) const -> MessagePtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreateSocket(const string& type, const string& name) const -> SocketPtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreatePoller(const vector<FairMQChannel>& channels) const -> PollerPtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreatePoller(const vector<const FairMQChannel*>& channels) const -> PollerPtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreatePoller(const unordered_map<string, vector<FairMQChannel>>& channelsMap, const vector<string>& channelList) const -> PollerPtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreatePoller(const FairMQSocket& cmdSocket, const FairMQSocket& dataSocket) const -> PollerPtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::CreateUnmanagedRegion(const size_t size, FairMQRegionCallback callback) const -> UnmanagedRegionPtr
{
throw runtime_error{"Not yet implemented."};
throw runtime_error{"Not yet implemented."};
}
auto TransportFactory::GetType() const -> Transport
{
return Transport::OFI;
return Transport::OFI;
}
TransportFactory::~TransportFactory()