1 #ifndef _Belle2_NSMCallback_hh
2 #define _Belle2_NSMCallback_hh
4 #include "daq/slc/nsm/AbstractNSMCallback.h"
5 #include "daq/slc/nsm/NSMCommand.h"
6 #include "daq/slc/nsm/NSMData.h"
18 class NSMCommunicator;
21 typedef std::map<std::string, NSMNode> NSMNodeMap;
22 typedef std::map<std::string, NSMData> NSMDataMap;
35 virtual void term() {}
38 virtual void ok(
const char* ,
const char* ) {}
39 virtual void fatal(
const char* ,
const char* ) {}
40 virtual void error(
const char* ,
const char* ) {}
42 virtual void vget(
const std::string& nodename,
43 const std::string& vname);
51 void log(LogFile::Priority pri,
const char* format, ...);
52 void log(LogFile::Priority pri,
const std::string& msg);
56 NSMDataMap& getDataMap() {
return m_datas; }
57 NSMData& getData(
const std::string& name);
58 NSMData& getData() {
return m_data; }
59 void openData(
const std::string& name,
const std::string& format,
61 void allocData(
const std::string& name,
const std::string& format,
63 const std::string& getCategory()
const {
return m_category; }
64 void setCategory(
const std::string& category) { m_category = category; }
67 virtual void notify(
const NSMVar& var);
68 void reg(
const NSMCommand& cmd) { m_cmd_v.push_back(cmd); }
69 void addNode(
const NSMNode& node);
70 const NSMNodeMap& getNodes() {
return m_nodes; }
71 void setLogNode(
const NSMNode& node) { m_lognode = node; }
72 const NSMNode& getLogNode() {
return m_lognode; }
75 typedef std::vector<NSMCommand> NSMCommandList;
78 int addDefaultHandlers();
80 NSMCommandList& getCommandList() {
return m_cmd_v; }
84 NSMCommandList m_cmd_v;
89 std::string m_category;
93 inline NSMData& NSMCallback::getData(
const std::string& name)
95 if (m_datas.find(name) != m_datas.end()) {
98 throw (std::out_of_range(
"nodata registered : " + name));
101 inline void NSMCallback::openData(
const std::string& name,
102 const std::string& format,
105 if (m_datas.find(name) == m_datas.end()) {
106 m_datas.insert(NSMDataMap::value_type(name, NSMData(name, format, revision)));
110 inline void NSMCallback::allocData(
const std::string& name,
111 const std::string& format,
114 m_data = NSMData(name, format, revision);