00001 #ifndef _ots_ARTDAQConsumer_h_
00002 #define _ots_ARTDAQConsumer_h_
00003
00004 #include "otsdaq-core/DataManager/DataConsumer.h"
00005 #include "otsdaq-core/Configurable/Configurable.h"
00006 #include "artdaq/Application/BoardReaderApp.hh"
00007
00008
00009 #include <future>
00010 #include <memory>
00011 #include <string>
00012
00013 namespace ots
00014 {
00015
00016
00017
00018 class ARTDAQConsumer : public DataConsumer, public Configurable
00019 {
00020
00021 public:
00022 ARTDAQConsumer (std::string supervisorApplicationUID, std::string bufferUID, std::string processorUID, const ConfigurationTree& theXDAQContextConfigTree, const std::string& configurationPath);
00023 virtual ~ARTDAQConsumer(void);
00024
00025 void initLocalGroup (int rank);
00026
00027
00028
00029 void configure (int rank);
00030 void halt (void);
00031 void pauseProcessingData (void);
00032 void resumeProcessingData(void);
00033 void startProcessingData (std::string runNumber) override;
00034 void stopProcessingData (void);
00035
00036
00037
00038
00039
00040 private:
00041 bool workLoopThread(toolbox::task::WorkLoop* workLoop){return false;}
00042
00043 std::unique_ptr<artdaq::BoardReaderApp> fragment_receiver_ptr_;
00044 std::string name_;
00045
00046
00047 std::string report_string_;
00048 bool external_request_status_;
00049 fhicl::ParameterSet fhiclConfiguration_;
00050 };
00051
00052 }
00053
00054 #endif