otsdaq  v1_01_04
 All Classes Namespaces Functions
ARTDAQConsumer.h
1 #ifndef _ots_ARTDAQConsumer_h_
2 #define _ots_ARTDAQConsumer_h_
3 
4 #include "otsdaq-core/DataManager/DataConsumer.h"
5 #include "otsdaq-core/ConfigurationInterface/Configurable.h"
6 #include "artdaq/Application/BoardReaderCore.hh"
7 
8 
9 #include <future>
10 #include <memory>
11 #include <string>
12 
13 namespace ots
14 {
15 
17 {
18 
19 public:
20  ARTDAQConsumer (std::string supervisorApplicationUID, std::string bufferUID, std::string processorUID, const ConfigurationTree& theXDAQContextConfigTree, const std::string& configurationPath);
21  virtual ~ARTDAQConsumer(void);
22 
23  void initLocalGroup (int rank);
24  //void destroy (void);
25 
26  //void configure (fhicl::ParameterSet const& pset);
27  void configure (int rank);
28  void halt (void);
29  void pauseProcessingData (void);
30  void resumeProcessingData(void);
31  void startProcessingData (std::string runNumber) override;
32  void stopProcessingData (void);
33  //int universalRead (char *address, char *returnValue) override {;}
34  //void universalWrite (char *address, char *writeValue) override {;}
35  //artdaq::BoardReaderCore* getFragmentReceiverPtr(){return fragment_receiver_ptr_.get();}
36  //void ProcessData_(artdaq::FragmentPtrs & frags) override;
37 
38 private:
39  bool workLoopThread(toolbox::task::WorkLoop* workLoop){return false;}
40 
41  std::unique_ptr<artdaq::BoardReaderCore> fragment_receiver_ptr_;
42  std::future<size_t> fragment_processing_future_;
43  std::string name_;
44 
45  //FIXME These should go...
46  std::string report_string_;
47  bool external_request_status_;
48  fhicl::ParameterSet fhiclConfiguration_;
49 };
50 
51 }
52 
53 #endif