mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
use factory for messages
This commit is contained in:
parent
88fee245b8
commit
5989845e31
|
@ -39,10 +39,10 @@ void FairMQBenchmarkSampler::Run()
|
||||||
boost::thread resetEventCounter(boost::bind(&FairMQBenchmarkSampler::ResetEventCounter, this));
|
boost::thread resetEventCounter(boost::bind(&FairMQBenchmarkSampler::ResetEventCounter, this));
|
||||||
|
|
||||||
void* buffer = operator new[](fEventSize);
|
void* buffer = operator new[](fEventSize);
|
||||||
FairMQMessage* base_event = new FairMQMessageZMQ(buffer, fEventSize);
|
FairMQMessage* base_event = fTransportFactory->CreateMessage(buffer, fEventSize);
|
||||||
|
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
FairMQMessage* event = new FairMQMessageZMQ();
|
FairMQMessage* event = fTransportFactory->CreateMessage();
|
||||||
event->Copy(base_event);
|
event->Copy(base_event);
|
||||||
|
|
||||||
fPayloadOutputs->at(0)->Send(event);
|
fPayloadOutputs->at(0)->Send(event);
|
||||||
|
|
|
@ -26,7 +26,7 @@ void FairMQBuffer::Run()
|
||||||
|
|
||||||
bool received = false;
|
bool received = false;
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
received = fPayloadInputs->at(0)->Receive(msg);
|
received = fPayloadInputs->at(0)->Receive(msg);
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ void FairMQMerger::Run()
|
||||||
bool received = false;
|
bool received = false;
|
||||||
|
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
zmq_poll(items, fNumInputs, 100);
|
zmq_poll(items, fNumInputs, 100);
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ void FairMQProcessor::Run()
|
||||||
bool received = false;
|
bool received = false;
|
||||||
|
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
received = fPayloadInputs->at(0)->Receive(msg);
|
received = fPayloadInputs->at(0)->Receive(msg);
|
||||||
receivedMsgs++;
|
receivedMsgs++;
|
||||||
|
|
|
@ -25,7 +25,7 @@ void FairMQProxy::Run()
|
||||||
|
|
||||||
boost::thread rateLogger(boost::bind(&FairMQDevice::LogSocketRates, this));
|
boost::thread rateLogger(boost::bind(&FairMQDevice::LogSocketRates, this));
|
||||||
|
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
fPayloadInputs->at(0)->Receive(msg);
|
fPayloadInputs->at(0)->Receive(msg);
|
||||||
|
|
|
@ -45,6 +45,7 @@ void FairMQSampler::Init()
|
||||||
FairMQDevice::Init();
|
FairMQDevice::Init();
|
||||||
|
|
||||||
fSamplerTask->SetBranch(fBranch);
|
fSamplerTask->SetBranch(fBranch);
|
||||||
|
fSamplerTask->SetTransport(fTransportFactory); // TODO: simplify message creation for sampler task?
|
||||||
|
|
||||||
fFairRunAna->SetInputFile(TString(fInputFile));
|
fFairRunAna->SetInputFile(TString(fInputFile));
|
||||||
TString output = fInputFile;
|
TString output = fInputFile;
|
||||||
|
@ -139,7 +140,7 @@ void FairMQSampler::ListenToCommands()
|
||||||
|
|
||||||
while ( true ) {
|
while ( true ) {
|
||||||
try {
|
try {
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
received = fPayloadInputs->at(0)->Receive(msg);
|
received = fPayloadInputs->at(0)->Receive(msg);
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ FairMQSamplerTask::FairMQSamplerTask(const Text_t* name, int iVerbose) :
|
||||||
FairTask(name, iVerbose),
|
FairTask(name, iVerbose),
|
||||||
fInput(NULL),
|
fInput(NULL),
|
||||||
fBranch(""),
|
fBranch(""),
|
||||||
fOutput(new FairMQMessageZMQ)
|
fOutput(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ FairMQSamplerTask::FairMQSamplerTask() :
|
||||||
FairTask( "Abstract base task used for loading a branch from a root file into memory"),
|
FairTask( "Abstract base task used for loading a branch from a root file into memory"),
|
||||||
fInput(NULL),
|
fInput(NULL),
|
||||||
fBranch(""),
|
fBranch(""),
|
||||||
fOutput(new FairMQMessageZMQ)
|
fOutput(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,4 +48,7 @@ FairMQMessage* FairMQSamplerTask::GetOutput()
|
||||||
return fOutput;
|
return fOutput;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FairMQSamplerTask::SetTransport(FairMQTransportFactory* factory)
|
||||||
|
{
|
||||||
|
fTransportFactory = factory;
|
||||||
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include "TClonesArray.h"
|
#include "TClonesArray.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "FairMQMessage.h"
|
#include "FairMQMessage.h"
|
||||||
#include "FairMQMessageZMQ.h"
|
#include "FairMQTransportFactory.h"
|
||||||
#include "TString.h"
|
#include "TString.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,10 +27,13 @@ class FairMQSamplerTask: public FairTask
|
||||||
virtual void Exec(Option_t* opt) = 0;
|
virtual void Exec(Option_t* opt) = 0;
|
||||||
void SetBranch(TString branch);
|
void SetBranch(TString branch);
|
||||||
FairMQMessage* GetOutput();
|
FairMQMessage* GetOutput();
|
||||||
|
void SetTransport(FairMQTransportFactory* factory);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
TClonesArray* fInput;
|
TClonesArray* fInput;
|
||||||
TString fBranch;
|
TString fBranch;
|
||||||
FairMQMessage* fOutput;
|
FairMQMessage* fOutput;
|
||||||
|
FairMQTransportFactory* fTransportFactory;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* FAIRMQSAMPLERTASK_H_ */
|
#endif /* FAIRMQSAMPLERTASK_H_ */
|
||||||
|
|
|
@ -22,7 +22,7 @@ void FairMQSink::Run()
|
||||||
boost::thread rateLogger(boost::bind(&FairMQDevice::LogSocketRates, this));
|
boost::thread rateLogger(boost::bind(&FairMQDevice::LogSocketRates, this));
|
||||||
|
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
fPayloadInputs->at(0)->Receive(msg);
|
fPayloadInputs->at(0)->Receive(msg);
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "FairMQContext.h"
|
#include "FairMQContext.h"
|
||||||
#include "FairMQMessage.h"
|
#include "FairMQMessage.h"
|
||||||
#include "FairMQMessageZMQ.h"
|
|
||||||
|
|
||||||
|
|
||||||
class FairMQSocket
|
class FairMQSocket
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#include "FairMQSocket.h"
|
#include "FairMQSocket.h"
|
||||||
#include "FairMQContext.h"
|
#include "FairMQContext.h"
|
||||||
#include "FairMQMessageZMQ.h"
|
|
||||||
|
|
||||||
|
|
||||||
class FairMQSocketZMQ : public FairMQSocket
|
class FairMQSocketZMQ : public FairMQSocket
|
||||||
|
|
|
@ -30,7 +30,7 @@ void FairMQSplitter::Run()
|
||||||
int direction = 0;
|
int direction = 0;
|
||||||
|
|
||||||
while ( fState == RUNNING ) {
|
while ( fState == RUNNING ) {
|
||||||
FairMQMessage* msg = new FairMQMessageZMQ();
|
FairMQMessage* msg = fTransportFactory->CreateMessage();
|
||||||
|
|
||||||
received = fPayloadInputs->at(0)->Receive(msg);
|
received = fPayloadInputs->at(0)->Receive(msg);
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
*
|
*
|
||||||
* @since 2014-01-20
|
* @since 2014-01-20
|
||||||
* @author: A. Rybalchenko
|
* @author: A. Rybalchenko
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -15,6 +15,8 @@ class FairMQTransportFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual FairMQMessage* CreateMessage() = 0;
|
virtual FairMQMessage* CreateMessage() = 0;
|
||||||
|
virtual FairMQMessage* CreateMessage(size_t size) = 0;
|
||||||
|
virtual FairMQMessage* CreateMessage(void* data, size_t size) = 0;
|
||||||
virtual FairMQSocket* CreateSocket(FairMQContext* context, int type, int num) = 0;
|
virtual FairMQSocket* CreateSocket(FairMQContext* context, int type, int num) = 0;
|
||||||
|
|
||||||
virtual ~FairMQTransportFactory() {};
|
virtual ~FairMQTransportFactory() {};
|
||||||
|
|
|
@ -17,7 +17,17 @@ FairMQMessage* FairMQTransportFactoryZMQ::CreateMessage()
|
||||||
return new FairMQMessageZMQ();
|
return new FairMQMessageZMQ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FairMQMessage* FairMQTransportFactoryZMQ::CreateMessage(size_t size)
|
||||||
|
{
|
||||||
|
return new FairMQMessageZMQ(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
FairMQMessage* FairMQTransportFactoryZMQ::CreateMessage(void* data, size_t size)
|
||||||
|
{
|
||||||
|
return new FairMQMessageZMQ(data, size);
|
||||||
|
}
|
||||||
|
|
||||||
FairMQSocket* FairMQTransportFactoryZMQ::CreateSocket(FairMQContext* context, int type, int num)
|
FairMQSocket* FairMQTransportFactoryZMQ::CreateSocket(FairMQContext* context, int type, int num)
|
||||||
{
|
{
|
||||||
return new FairMQSocketZMQ(context, type, num);
|
return new FairMQSocketZMQ(context, type, num);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,8 @@ class FairMQTransportFactoryZMQ : public FairMQTransportFactory
|
||||||
FairMQTransportFactoryZMQ();
|
FairMQTransportFactoryZMQ();
|
||||||
|
|
||||||
virtual FairMQMessage* CreateMessage();
|
virtual FairMQMessage* CreateMessage();
|
||||||
|
virtual FairMQMessage* CreateMessage(size_t size);
|
||||||
|
virtual FairMQMessage* CreateMessage(void* data, size_t size);
|
||||||
virtual FairMQSocket* CreateSocket(FairMQContext* context, int type, int num);
|
virtual FairMQSocket* CreateSocket(FairMQContext* context, int type, int num);
|
||||||
|
|
||||||
virtual ~FairMQTransportFactoryZMQ() {};
|
virtual ~FairMQTransportFactoryZMQ() {};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user