Skip to content
Snippets Groups Projects
CbmTsaComponentSink.h 943 B
Newer Older
/* Copyright (C) 2018 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
   SPDX-License-Identifier: GPL-3.0-only
   Authors: Florian Uhlig [committer] */
/**
 * CbmTsaComponentSink.h
 *
 * @since 2018-04-24
 * @author F. Uhlig
 */

#ifndef CBMTSACOMPONENTSINK_H_
#define CBMTSACOMPONENTSINK_H_

#include "MicrosliceDescriptor.hpp"
Administrator's avatar
Administrator committed
#include "Timeslice.hpp"
#include "FairMQDevice.h"

Administrator's avatar
Administrator committed
class CbmTsaComponentSink : public FairMQDevice {
public:
  CbmTsaComponentSink();
  virtual ~CbmTsaComponentSink();
Administrator's avatar
Administrator committed
protected:
  virtual void InitTask();
  bool HandleData(FairMQMessagePtr&, int);
Administrator's avatar
Administrator committed
private:
  uint64_t fNumMessages;
  std::vector<std::string> fAllowedChannels = {"stscomponent", "tofcomponent", "trdcomponent"};
Administrator's avatar
Administrator committed
  bool CheckTimeslice(const fles::Timeslice& ts);
  void PrintMicroSliceDescriptor(const fles::MicrosliceDescriptor& mdsc);
  bool IsChannelNameAllowed(std::string channelName);
};

#endif /* CBMTSACOMPONENTSINK_H_ */