/** * FairMQDevice.h * * @since Oct 25, 2012 * @authors: D. Klein */ #ifndef FAIRMQDEVICE_H_ #define FAIRMQDEVICE_H_ #include "FairMQConfigurable.h" #include "FairMQStateMachine.h" #include #include "FairMQContext.h" #include "FairMQSocket.h" #include //#include "FairMQLogger.h" #include "Rtypes.h" #include "TString.h" class FairMQDevice : /*public FairMQStateMachine,*/ public FairMQConfigurable { protected: TString fId; Int_t fNumIoThreads; FairMQContext* fPayloadContext; std::vector *fBindAddress; std::vector *fBindSocketType; std::vector *fBindSndBufferSize; std::vector *fBindRcvBufferSize; std::vector *fConnectAddress; std::vector *fConnectSocketType; std::vector *fConnectSndBufferSize; std::vector *fConnectRcvBufferSize; std::vector *fPayloadInputs; std::vector *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, LogIntervalInMs, Last }; FairMQDevice(); 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(); }; #endif /* FAIRMQDEVICE_H_ */