/* Copyright (C) 2019 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt SPDX-License-Identifier: GPL-3.0-only Authors: Florian Uhlig [committer] */ /** * CbmStsDigiSource.h * * @since 2019-08-21 * @author F. Uhlig */ #ifndef CBMSTSDIGISOURCE_H_ #define CBMSTSDIGISOURCE_H_ #include "FairMQDevice.h" #include <ctime> #include <string> #include <vector> class CbmStsDigi; class CbmStsDigiSource : public FairMQDevice { public: CbmStsDigiSource(); virtual ~CbmStsDigiSource(); protected: uint64_t fMaxEvents; std::string fFileName; std::vector<std::string> fInputFileList; ///< List of input files uint64_t fFileCounter; uint64_t fEventNumber; uint64_t fEventCounter; uint64_t fMessageCounter; int fMaxMemory = 0; virtual void InitTask(); virtual bool ConditionalRun(); private: void PrintStsDigi(const CbmStsDigi*); bool SendData(); void CalcRuntime(); bool IsChannelNameAllowed(std::string); std::chrono::steady_clock::time_point fTime; std::vector<std::string> fAllowedChannels = {"stsdigi"}; }; #endif /* CBMSTSDIGISOURCE_H_ */