otsdaq  v1_01_04
 All Classes Namespaces Functions
AggregatorInterface.h
1 #ifndef _ots_ARTDAQAggregatorInterface_h_
2 #define _ots_ARTDAQAggregatorInterface_h_
3 
4 #include <future>
5 #include <memory>
6 #include <string>
7 #include "artdaq/Application/AggregatorCore.hh"
8 
9 namespace ots
10 {
11 
12 //class OtsUDPFERConfiguration;
13 
15 {
16 public:
17 
18 // AggregatorInterface (std::string name, const OtsUDPFERConfiguration* artDAQFERConfiguration);
19  AggregatorInterface (int mpi_rank, std::string name);
20  AggregatorInterface (AggregatorInterface const&) = delete;
21  virtual ~AggregatorInterface();// = default;
22  AggregatorInterface& operator=(AggregatorInterface const&) = delete;
23 
24  void configure (fhicl::ParameterSet const& pset);
25  void halt (void);
26  void pause (void);
27  void resume (void);
28  void start (std::string runNumber);
29  void stop (void);
30 
31  std::string getBuilderName (void){return name_;}
32 
33 protected:
34  //const OtsUDPFERConfiguration* theARTDAQBuilderConfiguration_;
35 private:
36  int mpi_rank_;
37  std::string name_;
38  std::unique_ptr<artdaq::AggregatorCore> aggregator_ptr_;
39  std::future<size_t> aggregator_future_;
40 
41  //FIXME These should go...
42  std::string report_string_;
43  bool external_request_status_;
44 };
45 
46 }
47 
48 #endif