Refactor TransportFactory to RAII

* Remove explicit Initialize and Terminate states,
    map them onto ctor/dtor
  * Remove no longer needed Shutdown state
  * Remove deprecated SetTransport()
This commit is contained in:
Dennis Klein
2017-05-23 16:13:43 +02:00
committed by Mohammad Al-Turany
parent 733794657c
commit 8bc21675af
11 changed files with 24 additions and 136 deletions

View File

@@ -9,7 +9,6 @@
#include "FairMQLogger.h"
#include "FairMQShmManager.h"
#include "FairMQTransportFactorySHM.h"
#include "../options/FairMQProgOptions.h"
#include <zmq.h>
@@ -30,7 +29,7 @@ namespace bpt = boost::posix_time;
FairMQ::Transport FairMQTransportFactorySHM::fTransportType = FairMQ::Transport::SHM;
FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id)
FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id, const FairMQProgOptions* config)
: FairMQTransportFactory(id)
, fContext(nullptr)
, fHeartbeatSocket(nullptr)
@@ -50,10 +49,7 @@ FairMQTransportFactorySHM::FairMQTransportFactorySHM(const string& id)
LOG(ERROR) << "failed creating context, reason: " << zmq_strerror(errno);
exit(EXIT_FAILURE);
}
}
void FairMQTransportFactorySHM::Initialize(const FairMQProgOptions* config)
{
int numIoThreads = 1;
size_t segmentSize = 2000000000;
string segmentName = "fairmq_shmem_main";
@@ -172,19 +168,11 @@ FairMQPollerPtr FairMQTransportFactorySHM::CreatePoller(const FairMQSocket& cmdS
return unique_ptr<FairMQPoller>(new FairMQPollerSHM(cmdSocket, dataSocket));
}
void FairMQTransportFactorySHM::Shutdown()
FairMQTransportFactorySHM::~FairMQTransportFactorySHM()
{
if (zmq_ctx_shutdown(fContext) != 0)
{
LOG(ERROR) << "shmem: failed shutting down context, reason: " << zmq_strerror(errno);
}
fSendHeartbeats = false;
fHeartbeatThread.join();
}
void FairMQTransportFactorySHM::Terminate()
{
if (fContext)
{
if (zmq_ctx_term(fContext) != 0)
@@ -234,8 +222,3 @@ FairMQ::Transport FairMQTransportFactorySHM::GetType() const
{
return fTransportType;
}
FairMQTransportFactorySHM::~FairMQTransportFactorySHM()
{
Terminate();
}

View File

@@ -14,6 +14,7 @@
#include "FairMQSocketSHM.h"
#include "FairMQPollerSHM.h"
#include "FairMQShmDeviceCounter.h"
#include <options/FairMQProgOptions.h>
#include <vector>
#include <string>
@@ -26,9 +27,7 @@
class FairMQTransportFactorySHM : public FairMQTransportFactory
{
public:
FairMQTransportFactorySHM(const std::string& id = "");
void Initialize(const FairMQProgOptions* config) override;
FairMQTransportFactorySHM(const std::string& id = "", const FairMQProgOptions* config = nullptr);
FairMQMessagePtr CreateMessage() const override;
FairMQMessagePtr CreateMessage(const size_t size) const override;
@@ -43,9 +42,6 @@ class FairMQTransportFactorySHM : public FairMQTransportFactory
FairMQ::Transport GetType() const override;
void Shutdown() override;
void Terminate() override;
void SendHeartbeats();
~FairMQTransportFactorySHM() override;