/** * FairMQDevice.h * * @since Oct 25, 2012 * @authors: D. Klein, A. Rybalchenko */ #ifndef FAIRMQDEVICE_H_ #define FAIRMQDEVICE_H_ #include "FairMQConfigurable.h" #include "FairMQStateMachine.h" #include #include "FairMQContext.h" #include "FairMQSocket.h" #include "Rtypes.h" #include "TString.h" class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable { public: enum { Id = FairMQConfigurable::Last, NumIoThreads, NumInputs, NumOutputs, 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 *fInputAddress; std::vector *fInputMethod; std::vector *fInputSocketType; std::vector *fInputSndBufSize; std::vector *fInputRcvBufSize; std::vector *fOutputAddress; std::vector *fOutputMethod; std::vector *fOutputSocketType; std::vector *fOutputSndBufSize; std::vector *fOutputRcvBufSize; std::vector *fPayloadInputs; std::vector *fPayloadOutputs; Int_t fLogIntervalInMs; virtual void Init(); virtual void Run(); virtual void Pause(); virtual void Shutdown(); virtual void InitOutput(); virtual void InitInput(); }; #endif /* FAIRMQDEVICE_H_ */