Belle II Software  release-05-02-19
NSMVHandler.cc
1 #include "daq/slc/nsm/NSMVHandler.h"
2 
3 #include "daq/slc/nsm/NSMCallback.h"
4 
5 using namespace Belle2;
6 
7 NSMVHandler* NSMVHandler::create(const NSMVar& var)
8 {
9  const std::string node = var.getNode();
10  const std::string name = var.getName();
11  if (var.getType() == NSMVar::INT) {
12  if (var.getLength() == 0) {
13  return new NSMVHandlerInt(node, name, false, true);
14  }
15  return new NSMVHandlerIntArray(node, name, false, true);
16  } else if (var.getType() == NSMVar::FLOAT) {
17  if (var.getLength() == 0) {
18  return new NSMVHandlerFloat(node, name, false, true);
19  }
20  return new NSMVHandlerFloatArray(node, name, false, true);
21  } else if (var.getType() == NSMVar::TEXT) {
22  return new NSMVHandlerText(node, name, false, true);
23  }
24  return NULL;
25 }
26 
27 bool NSMVHandlerInt::handleGet(NSMVar& var)
28 {
29  int val;
30  if (handleGetInt(val)) {
31  var = val;
32  return true;
33  }
34  return false;
35 }
36 
37 bool NSMVHandlerInt::handleSet(const NSMVar& var)
38 {
39  if (var.getType() == NSMVar::INT&& var.getLength() == 0) {
40  if (handleSetInt(var.getInt())) {
41  m_var = var.getInt();
42  return true;
43  }
44  }
45  return false;
46 }
47 
48 bool NSMVHandlerFloat::handleGet(NSMVar& var)
49 {
50  float val;
51  if (handleGetFloat(val)) {
52  var = val;
53  return true;
54  }
55  return false;
56 }
57 
58 bool NSMVHandlerFloat::handleSet(const NSMVar& var)
59 {
60  if (var.getType() == NSMVar::FLOAT && var.getLength() == 0) {
61  if (handleSetFloat(var.getFloat())) {
62  m_var = var.getFloat();
63  return true;
64  }
65  }
66  return false;
67 }
68 
69 bool NSMVHandlerText::handleGet(NSMVar& var)
70 {
71  std::string val;
72  if (handleGetText(val)) {
73  var = val;
74  return true;
75  }
76  return false;
77 }
78 
79 bool NSMVHandlerText::handleSet(const NSMVar& var)
80 {
81  if (var.getType() == NSMVar::TEXT && var.getLength() > 0) {
82  if (handleSetText(var.getText())) {
83  m_var = var.getText();
84  return true;
85  }
86  }
87  return false;
88 }
89 
90 bool NSMVHandlerIntArray::handleGetIntArray(std::vector<int>& val)
91 {
92  const int* pv = (const int*)m_var.get();
93  val = std::vector<int>();
94  for (int i = 0; i < m_var.getLength(); i++) {
95  val.push_back(pv[i]);
96  }
97  return true;
98 }
99 
100 bool NSMVHandlerIntArray::handleGet(NSMVar& var)
101 {
102  std::vector<int> val;
103  if (handleGetIntArray(val)) {
104  var = val;
105  return true;
106  }
107  return false;
108 }
109 
110 bool NSMVHandlerIntArray::handleSet(const NSMVar& var)
111 {
112  if (var.getType() == NSMVar::INT&& var.getLength() > 0) {
113  const int* pv = (const int*)var.get();
114  std::vector<int> val;
115  for (int i = 0; i < var.getLength(); i++) {
116  val.push_back(pv[i]);
117  }
118  if (handleSetIntArray(val)) {
119  m_var = val;
120  return true;
121  }
122  }
123  return false;
124 }
125 
126 bool NSMVHandlerFloatArray::handleGetFloatArray(std::vector<float>& val)
127 {
128  const float* pv = (const float*)m_var.get();
129  val = std::vector<float>();
130  for (int i = 0; i < m_var.getLength(); i++) {
131  val.push_back(pv[i]);
132  }
133  return true;
134 }
135 
136 bool NSMVHandlerFloatArray::handleGet(NSMVar& var)
137 {
138  std::vector<float> val;
139  if (handleGetFloatArray(val)) {
140  var = val;
141  return true;
142  }
143  return false;
144 }
145 
146 bool NSMVHandlerFloatArray::handleSet(const NSMVar& var)
147 {
148  if (var.getType() == NSMVar::FLOAT && var.getLength() > 0) {
149  const float* pv = (const float*)var.get();
150  std::vector<float> val;
151  for (int i = 0; i < var.getLength(); i++) {
152  val.push_back(pv[i]);
153  }
154  if (handleSetFloatArray(val)) {
155  m_var = val;
156  return true;
157  }
158  }
159  return false;
160 }
161 
162 bool NSMVHandlerRef::handleGet(NSMVar& var)
163 {
164  //var = m_callback.getHandler(m_refname).get();
165  m_callback.get(m_refname, var);
166  return true;
167 }
168 
169 bool NSMVHandlerRef::handleSet(const NSMVar& var)
170 {
171  //NSMVar& v(m_callback.getHandler(m_refname).get());
172  //v = var;
173  m_callback.set(m_refname, var);
174  return true;
175 }
Belle2::NSMVHandler
Definition: NSMVHandler.h:15
Belle2::NSMVHandlerInt
Definition: NSMVHandler.h:81
Belle2::NSMVHandlerFloatArray
Definition: NSMVHandler.h:219
Belle2::NSMVHandlerIntArray
Definition: NSMVHandler.h:186
Belle2::NSMVHandlerFloat
Definition: NSMVHandler.h:116
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::NSMVHandlerText
Definition: NSMVHandler.h:151
Belle2::NSMVar
Definition: NSMVar.h:16