mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-15 09:31:45 +00:00
merge the trunk with the development of ZeroMQ branch
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@22451 0381ead4-6506-0410-b988-94b70fbc4730
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* FairMQDevice.h
|
||||
*
|
||||
* @since Oct 25, 2012
|
||||
* @authors: D. Klein
|
||||
* @authors: D. Klein, A. Rybalchenko
|
||||
*/
|
||||
|
||||
#ifndef FAIRMQDEVICE_H_
|
||||
@@ -13,62 +13,75 @@
|
||||
#include <vector>
|
||||
#include "FairMQContext.h"
|
||||
#include "FairMQSocket.h"
|
||||
#include <stdexcept>
|
||||
//#include "FairMQLogger.h"
|
||||
#include "Rtypes.h"
|
||||
#include "TString.h"
|
||||
|
||||
|
||||
class FairMQDevice : /*public FairMQStateMachine,*/ public FairMQConfigurable
|
||||
class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable
|
||||
{
|
||||
protected:
|
||||
TString fId;
|
||||
Int_t fNumIoThreads;
|
||||
FairMQContext* fPayloadContext;
|
||||
std::vector<TString> *fBindAddress;
|
||||
std::vector<Int_t> *fBindSocketType;
|
||||
std::vector<Int_t> *fBindSndBufferSize;
|
||||
std::vector<Int_t> *fBindRcvBufferSize;
|
||||
std::vector<TString> *fConnectAddress;
|
||||
std::vector<Int_t> *fConnectSocketType;
|
||||
std::vector<Int_t> *fConnectSndBufferSize;
|
||||
std::vector<Int_t> *fConnectRcvBufferSize;
|
||||
std::vector<FairMQSocket*> *fPayloadInputs;
|
||||
std::vector<FairMQSocket*> *fPayloadOutputs;
|
||||
Int_t fLogIntervalInMs;
|
||||
Int_t fNumInputs;
|
||||
Int_t fNumOutputs;
|
||||
public:
|
||||
enum {
|
||||
Id = FairMQConfigurable::Last,
|
||||
NumIoThreads,
|
||||
NumInputs,
|
||||
NumOutputs,
|
||||
BindAddress,
|
||||
BindSocketType,
|
||||
BindSndBufferSize,
|
||||
BindRcvBufferSize,
|
||||
ConnectAddress,
|
||||
ConnectSocketType,
|
||||
ConnectSndBufferSize,
|
||||
ConnectRcvBufferSize,
|
||||
InputAddress,
|
||||
InputMethod,
|
||||
InputSocketType,
|
||||
InputSndBufSize,
|
||||
InputRcvBufSize,
|
||||
OutputAddress,
|
||||
OutputMethod,
|
||||
OutputSocketType,
|
||||
OutputSndBufSize,
|
||||
OutputRcvBufSize,
|
||||
LogIntervalInMs,
|
||||
Last
|
||||
};
|
||||
|
||||
FairMQDevice();
|
||||
|
||||
virtual void LogSocketRates();
|
||||
virtual void ListenToCommands();
|
||||
|
||||
virtual void SetProperty(const Int_t& key, const TString& value, const Int_t& slot = 0);
|
||||
virtual TString GetProperty(const Int_t& key, const TString& default_ = "", const Int_t& slot = 0);
|
||||
virtual void SetProperty(const Int_t& key, const Int_t& value, const Int_t& slot = 0);
|
||||
virtual Int_t GetProperty(const Int_t& key, const Int_t& default_ = 0, const Int_t& slot = 0);
|
||||
|
||||
virtual ~FairMQDevice();
|
||||
|
||||
protected:
|
||||
TString fId;
|
||||
Int_t fNumIoThreads;
|
||||
FairMQContext* fPayloadContext;
|
||||
|
||||
Int_t fNumInputs;
|
||||
Int_t fNumOutputs;
|
||||
|
||||
std::vector<TString> *fInputAddress;
|
||||
std::vector<TString> *fInputMethod;
|
||||
std::vector<Int_t> *fInputSocketType;
|
||||
std::vector<Int_t> *fInputSndBufSize;
|
||||
std::vector<Int_t> *fInputRcvBufSize;
|
||||
|
||||
std::vector<TString> *fOutputAddress;
|
||||
std::vector<TString> *fOutputMethod;
|
||||
std::vector<Int_t> *fOutputSocketType;
|
||||
std::vector<Int_t> *fOutputSndBufSize;
|
||||
std::vector<Int_t> *fOutputRcvBufSize;
|
||||
|
||||
std::vector<FairMQSocket*> *fPayloadInputs;
|
||||
std::vector<FairMQSocket*> *fPayloadOutputs;
|
||||
|
||||
Int_t fLogIntervalInMs;
|
||||
|
||||
virtual void Init();
|
||||
virtual void Bind();
|
||||
virtual void Connect();
|
||||
virtual void Run();
|
||||
virtual void Pause();
|
||||
virtual void Shutdown();
|
||||
virtual void* LogSocketRates();
|
||||
static void* callLogSocketRates(void* arg) { return ((FairMQDevice*)arg)->LogSocketRates(); }
|
||||
virtual void SetProperty(Int_t key, TString value, Int_t slot = 0);
|
||||
virtual TString GetProperty(Int_t key, TString default_ = "", Int_t slot = 0);
|
||||
virtual void SetProperty(Int_t key, Int_t value, Int_t slot = 0);
|
||||
virtual Int_t GetProperty(Int_t key, Int_t default_ = 0, Int_t slot = 0);
|
||||
virtual ~FairMQDevice();
|
||||
virtual void InitOutput();
|
||||
virtual void InitInput();
|
||||
};
|
||||
|
||||
#endif /* FAIRMQDEVICE_H_ */
|
||||
|
Reference in New Issue
Block a user