Belle II Software  release-08-01-10
RFMasterCallback.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #ifndef _Belle2_RFMasterCallback_h
9 #define _Belle2_RFMasterCallback_h
10 
11 #include <daq/slc/runcontrol/RCState.h>
12 #include <daq/slc/runcontrol/RCCallback.h>
13 
14 #include <daq/slc/base/StringUtil.h>
15 
16 #include <vector>
17 
18 namespace Belle2 {
24  class RFRunControlCallback;
25 
26  class RFMasterCallback : public RCCallback {
27 
28  public:
29  RFMasterCallback() throw();
30  virtual ~RFMasterCallback() throw() {}
31 
32  public:
33  virtual void initialize(const DBObject& obj) throw(RCHandlerException);
34  virtual void configure(const DBObject& obj) throw(RCHandlerException);
35  virtual void monitor() throw(RCHandlerException);
36  virtual void ok(const char* node, const char* data) throw();
37  virtual void error(const char* node, const char* data) throw();
38  virtual void load(const DBObject& obj) throw(RCHandlerException);
39  virtual void start(int expno, int runno) throw(RCHandlerException);
40  virtual void stop() throw(RCHandlerException);
41  virtual void recover(const DBObject& obj) throw(RCHandlerException);
42  virtual bool resume(int subno) throw(RCHandlerException);
43  virtual bool pause() throw(RCHandlerException);
44  virtual void abort() throw(RCHandlerException);
45  virtual bool perform(NSMCommunicator& com) throw();
46 
47  public:
48  void setState(NSMNode& node, const RCState& state);
49  void setCallback(RFRunControlCallback* callback) { m_callback = callback; }
50  void addData(const std::string& dataname, const std::string& format);
51 
52  private:
53  RFRunControlCallback* m_callback;
54  StringList m_dataname;
55  typedef std::vector<NSMNode> NSMNodeList;
56  NSMNodeList m_nodes;
57 
58  };
59 
61 }
62 
63 #endif
Abstract base class for different kinds of events.