Belle II Software  release-05-02-19
Callback.h
1 #ifndef _Belle2_Callback_hh
2 #define _Belle2_Callback_hh
3 
4 #include "daq/slc/nsm/NSMVar.h"
5 #include "daq/slc/nsm/NSMVHandler.h"
6 
7 #include "daq/slc/database/DBObject.h"
8 
9 #include <cstring>
10 
11 namespace Belle2 {
17  class Callback {
18 
19  friend class AbstractNSMCallback;
20  friend class NSMCallback;
21 
22  public:
23  Callback() : m_revision(1) {}
24  virtual ~Callback() {}
25 
26  public:
27  virtual void notify(const NSMVar& var) = 0;
28  int reset();
29  int add(NSMVHandler* handler, bool overwrite = true, bool isdump = true);
30  void remove(const std::string& node, const std::string& name);
31  void remove(const std::string& name) { remove("", name); }
32  void remove(const DBObject& obj);
33  StringList& getHandlerNames() { return m_hnames; }
34  NSMVHandlerList& getHandlers() { return m_handler; }
35  NSMVHandler& getHandler(const std::string& name)
36  {
37  return getHandler("", name);
38  }
39  NSMVHandler& getHandler(const std::string& node, const std::string& name)
40  ;
41  void setUseGet(const std::string& name, bool use)
42  {
43  getHandler(name).setUseGet(use);
44  }
45  void setUseSet(const std::string& name, bool use)
46  {
47  getHandler(name).setUseSet(use);
48  }
49 
50  public:
51  void setRevision(int revision) { m_revision = revision; }
52  int getRevision() const { return m_revision; }
53 
54  private:
55  NSMVHandler* getHandler_p(const std::string& node, const std::string& name);
56 
57  private:
58  int m_revision;
59  NSMVHandlerList m_handler;
60  StringList m_hnames;
61 
62  };
63 
65 };
66 
67 #endif
Belle2::NSMVHandler
Definition: NSMVHandler.h:15
Belle2::Callback
Definition: Callback.h:17
Belle2::DBObject
Definition: DBObject.h:14
Belle2::AbstractNSMCallback
Definition: AbstractNSMCallback.h:22
Belle2::NSMCallback
Definition: NSMCallback.h:24
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::NSMVar
Definition: NSMVar.h:16