Atlas  0.7.0
Networking protocol for the Worldforge system.
RootOperation.h
1 // This file may be redistributed and modified only under the terms of
2 // the GNU Lesser General Public License (See COPYING for details).
3 // Copyright 2000-2001 Stefanus Du Toit and Aloril.
4 // Copyright 2001-2005 Alistair Riddoch.
5 // Copyright 2011-2020 Erik Ogenvik.
6 // Automatically generated using gen_cpp.py. Don't edit directly.
7 
8 #ifndef ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H
9 #define ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H
10 
11 #include <Atlas/Objects/Root.h>
12 #include <Atlas/Objects/SmartPtr.h>
13 
14 #include <Atlas/Objects/Factories.h>
15 
16 namespace Atlas { namespace Objects { namespace Operation {
17 
28 class RootOperationData;
29 typedef SmartPtr<RootOperationData> RootOperation;
30 
31 static const int ROOT_OPERATION_NO = 9;
32 
35 
42 {
43 protected:
45  explicit RootOperationData(RootOperationData *defaults = nullptr) :
46  RootData((RootData*)defaults)
47  {
48  m_class_no = ROOT_OPERATION_NO;
49  }
51  ~RootOperationData() override = default;
52 
53 public:
54  // The parent type for this object's superclass
55  static constexpr const char* super_parent = "root";
56  // The default parent type for this object
57  static constexpr const char* default_parent = "root_operation";
58  // The default objtype for this object
59  static constexpr const char* default_objtype = "op";
61  RootOperationData * copy() const override;
62 
64  bool instanceOf(int classNo) const override;
65 
68  int copyAttr(const std::string& name, Atlas::Message::Element & attr) const override;
70  void setAttr(std::string name,
71  Atlas::Message::Element attr, const Atlas::Objects::Factories* factories = nullptr) override;
73  void removeAttr(const std::string& name) override;
74 
76  void sendContents(Atlas::Bridge & b) const override;
77 
79  void addToMessage(Atlas::Message::MapType &) const override;
80 
82  void setSerialno(std::int64_t val);
84  void setRefno(std::int64_t val);
86  void setFrom(std::string val);
88  void setTo(std::string val);
90  void setSeconds(double val);
92  void setFutureSeconds(double val);
94  void setArgs(std::vector<Root> val);
96  void setArgsAsList(const Atlas::Message::ListType& val, const Atlas::Objects::Factories* factories);
98  void setArgsAsList(Atlas::Message::ListType&& val, const Atlas::Objects::Factories* factories);
100  template <class ObjectData>
101  void setArgs1(SmartPtr<ObjectData> val);
102 
104  std::int64_t getSerialno() const;
106  std::int64_t& modifySerialno();
108  std::int64_t getRefno() const;
110  std::int64_t& modifyRefno();
112  const std::string& getFrom() const;
114  std::string& modifyFrom();
116  const std::string& getTo() const;
118  std::string& modifyTo();
120  double getSeconds() const;
122  double& modifySeconds();
124  double getFutureSeconds() const;
126  double& modifyFutureSeconds();
128  const std::vector<Root>& getArgs() const;
130  std::vector<Root>& modifyArgs();
132  Atlas::Message::ListType getArgsAsList() const;
133 
135  bool isDefaultSerialno() const;
137  bool isDefaultRefno() const;
139  bool isDefaultFrom() const;
141  bool isDefaultTo() const;
143  bool isDefaultSeconds() const;
145  bool isDefaultFutureSeconds() const;
147  bool isDefaultArgs() const;
148 
149 protected:
151  int getAttrClass(const std::string& name)const override;
153  bool getAttrFlag(const std::string& name, uint32_t& flag)const override;
155  std::int64_t attr_serialno;
157  std::int64_t attr_refno;
159  std::string attr_from;
161  std::string attr_to;
163  double attr_seconds;
167  std::vector<Root> attr_args;
168 
170  void sendSerialno(Atlas::Bridge&) const;
172  void sendRefno(Atlas::Bridge&) const;
174  void sendFrom(Atlas::Bridge&) const;
176  void sendTo(Atlas::Bridge&) const;
178  void sendSeconds(Atlas::Bridge&) const;
180  void sendFutureSeconds(Atlas::Bridge&) const;
182  void sendArgs(Atlas::Bridge&) const;
183 
184 public:
185  template <typename>
186  friend class ::Atlas::Objects::Allocator;
187  static Allocator<RootOperationData> allocator;
188 
189 protected:
191  void reset() override;
192  void free() override;
193 
194 private:
195 
196  static void fillDefaultObjectInstance(RootOperationData& data, std::map<std::string, uint32_t>& attr_data);
197 };
198 
199 //
200 // Attribute name strings follow.
201 //
202 
203 extern const std::string SERIALNO_ATTR;
204 extern const std::string REFNO_ATTR;
205 extern const std::string FROM_ATTR;
206 extern const std::string TO_ATTR;
207 extern const std::string SECONDS_ATTR;
208 extern const std::string FUTURE_SECONDS_ATTR;
209 extern const std::string ARGS_ATTR;
210 
211 //
212 // Inlined member functions follow.
213 //
214 
215 const uint32_t SERIALNO_FLAG = 1u << 14u;
216 
217 inline void RootOperationData::setSerialno(std::int64_t val)
218 {
219  attr_serialno = val;
220  m_attrFlags |= SERIALNO_FLAG;
221 }
222 
223 const uint32_t REFNO_FLAG = 1u << 15u;
224 
225 inline void RootOperationData::setRefno(std::int64_t val)
226 {
227  attr_refno = val;
228  m_attrFlags |= REFNO_FLAG;
229 }
230 
231 const uint32_t FROM_FLAG = 1u << 16u;
232 
233 inline void RootOperationData::setFrom(std::string val)
234 {
235  attr_from = std::move(val);
236  m_attrFlags |= FROM_FLAG;
237 }
238 
239 const uint32_t TO_FLAG = 1u << 17u;
240 
241 inline void RootOperationData::setTo(std::string val)
242 {
243  attr_to = std::move(val);
244  m_attrFlags |= TO_FLAG;
245 }
246 
247 const uint32_t SECONDS_FLAG = 1u << 18u;
248 
249 inline void RootOperationData::setSeconds(double val)
250 {
251  attr_seconds = val;
252  m_attrFlags |= SECONDS_FLAG;
253 }
254 
255 const uint32_t FUTURE_SECONDS_FLAG = 1u << 19u;
256 
257 inline void RootOperationData::setFutureSeconds(double val)
258 {
259  attr_future_seconds = val;
260  m_attrFlags |= FUTURE_SECONDS_FLAG;
261 }
262 
263 const uint32_t ARGS_FLAG = 1u << 20u;
264 
265 inline void RootOperationData::setArgs(std::vector<Root> val)
266 {
267  attr_args = std::move(val);
268  m_attrFlags |= ARGS_FLAG;
269 }
270 
271 inline void RootOperationData::setArgsAsList(const Atlas::Message::ListType& val, const Factories* factories)
272 {
273  if (!factories) {
274  throw Exception("You must pass in a valid Factories instance when setting 'args'.");
275  }
276  m_attrFlags |= ARGS_FLAG;
277  attr_args = factories->parseListOfObjects(val);
278 }
279 
280 inline void RootOperationData::setArgsAsList(Atlas::Message::ListType&& val, const Factories* factories)
281 {
282  if (!factories) {
283  throw Exception("You must pass in a valid Factories instance when setting 'args'.");
284  }
285  m_attrFlags |= ARGS_FLAG;
286  attr_args = factories->parseListOfObjects(std::move(val));
287 }
288 
289 template <class ObjectData>
291 {
292  m_attrFlags |= ARGS_FLAG;
293  if(attr_args.size()!=1) attr_args.resize(1);
294  attr_args[0] = std::move(val);
295 }
296 
297 inline std::int64_t RootOperationData::getSerialno() const
298 {
299  if(m_attrFlags & SERIALNO_FLAG)
300  return attr_serialno;
301  else
302  return ((RootOperationData*)m_defaults)->attr_serialno;
303 }
304 
305 inline std::int64_t& RootOperationData::modifySerialno()
306 {
307  if(!(m_attrFlags & SERIALNO_FLAG))
309  return attr_serialno;
310 }
311 
312 inline std::int64_t RootOperationData::getRefno() const
313 {
314  if(m_attrFlags & REFNO_FLAG)
315  return attr_refno;
316  else
317  return ((RootOperationData*)m_defaults)->attr_refno;
318 }
319 
320 inline std::int64_t& RootOperationData::modifyRefno()
321 {
322  if(!(m_attrFlags & REFNO_FLAG))
324  return attr_refno;
325 }
326 
327 inline const std::string& RootOperationData::getFrom() const
328 {
329  if(m_attrFlags & FROM_FLAG)
330  return attr_from;
331  else
332  return ((RootOperationData*)m_defaults)->attr_from;
333 }
334 
335 inline std::string& RootOperationData::modifyFrom()
336 {
337  if(!(m_attrFlags & FROM_FLAG))
339  return attr_from;
340 }
341 
342 inline const std::string& RootOperationData::getTo() const
343 {
344  if(m_attrFlags & TO_FLAG)
345  return attr_to;
346  else
347  return ((RootOperationData*)m_defaults)->attr_to;
348 }
349 
350 inline std::string& RootOperationData::modifyTo()
351 {
352  if(!(m_attrFlags & TO_FLAG))
354  return attr_to;
355 }
356 
357 inline double RootOperationData::getSeconds() const
358 {
359  if(m_attrFlags & SECONDS_FLAG)
360  return attr_seconds;
361  else
362  return ((RootOperationData*)m_defaults)->attr_seconds;
363 }
364 
366 {
367  if(!(m_attrFlags & SECONDS_FLAG))
369  return attr_seconds;
370 }
371 
373 {
374  if(m_attrFlags & FUTURE_SECONDS_FLAG)
375  return attr_future_seconds;
376  else
377  return ((RootOperationData*)m_defaults)->attr_future_seconds;
378 }
379 
381 {
382  if(!(m_attrFlags & FUTURE_SECONDS_FLAG))
384  return attr_future_seconds;
385 }
386 
387 inline const std::vector<Root>& RootOperationData::getArgs() const
388 {
389  if(m_attrFlags & ARGS_FLAG)
390  return attr_args;
391  else
392  return ((RootOperationData*)m_defaults)->attr_args;
393 }
394 
395 inline std::vector<Root>& RootOperationData::modifyArgs()
396 {
397  if(!(m_attrFlags & ARGS_FLAG))
399  return attr_args;
400 }
401 
402 inline Atlas::Message::ListType RootOperationData::getArgsAsList() const
403 {
404  const std::vector<Root>& args_in = getArgs();
405  Atlas::Message::ListType args_out;
406  for (const auto& entry : args_in) {
407  args_out.push_back(Atlas::Message::MapType());
408  entry->addToMessage(args_out.back().Map());
409  }
410  return args_out;
411 }
412 
414 {
415  return (m_attrFlags & SERIALNO_FLAG) == 0;
416 }
417 
419 {
420  return (m_attrFlags & REFNO_FLAG) == 0;
421 }
422 
424 {
425  return (m_attrFlags & FROM_FLAG) == 0;
426 }
427 
429 {
430  return (m_attrFlags & TO_FLAG) == 0;
431 }
432 
434 {
435  return (m_attrFlags & SECONDS_FLAG) == 0;
436 }
437 
439 {
440  return (m_attrFlags & FUTURE_SECONDS_FLAG) == 0;
441 }
442 
444 {
445  return (m_attrFlags & ARGS_FLAG) == 0;
446 }
447 
448 
449 } } } // namespace Atlas::Objects::Operation
450 
451 #endif // ATLAS_OBJECTS_OPERATION_ROOTOPERATION_H
Atlas::Objects::Operation::RootOperationData::getAttrClass
int getAttrClass(const std::string &name) const override
Find the class which contains the attribute "name".
Definition: RootOperation.cpp:23
Atlas::Objects::Operation::RootOperationData::getRefno
std::int64_t getRefno() const
Retrieve the "refno" attribute.
Definition: RootOperation.h:312
Atlas::Objects::Operation::RootOperationData::getTo
const std::string & getTo() const
Retrieve the "to" attribute.
Definition: RootOperation.h:342
Atlas::Objects::Operation::RootOperationData::~RootOperationData
~RootOperationData() override=default
Default destructor.
Atlas::Objects::Operation::RootOperationData::setArgs
void setArgs(std::vector< Root > val)
Set the "args" attribute.
Definition: RootOperation.h:265
Atlas::Objects::Operation::RootOperationData::modifyFutureSeconds
double & modifyFutureSeconds()
Retrieve the "future_seconds" attribute as a non-const reference.
Definition: RootOperation.h:380
Atlas::Exception
Definition: Exception.h:17
Atlas::Objects::Operation::RootOperationData::getFrom
const std::string & getFrom() const
Retrieve the "from" attribute.
Definition: RootOperation.h:327
Atlas::Objects::Operation::RootOperationData::attr_seconds
double attr_seconds
Time in seconds.
Definition: RootOperation.h:163
Atlas::Objects::Operation::RootOperationData::attr_serialno
std::int64_t attr_serialno
Serial number.
Definition: RootOperation.h:155
Atlas::Objects::Operation::RootOperationData::getArgs
const std::vector< Root > & getArgs() const
Retrieve the "args" attribute.
Definition: RootOperation.h:387
Atlas::Objects::Operation::RootOperationData::isDefaultSerialno
bool isDefaultSerialno() const
Is "serialno" value default?
Definition: RootOperation.h:413
Atlas::Objects::Operation::RootOperationData::RootOperationData
RootOperationData(RootOperationData *defaults=nullptr)
Construct a RootOperationData class definition.
Definition: RootOperation.h:45
Atlas::Objects::Operation::RootOperationData::modifyFrom
std::string & modifyFrom()
Retrieve the "from" attribute as a non-const reference.
Definition: RootOperation.h:335
Atlas::Objects::Operation::RootOperationData::attr_args
std::vector< Root > attr_args
List of arguments this operation has.
Definition: RootOperation.h:167
Atlas::Objects::Operation::RootOperationData::modifySerialno
std::int64_t & modifySerialno()
Retrieve the "serialno" attribute as a non-const reference.
Definition: RootOperation.h:305
Atlas::Objects::Operation::RootOperationData::modifyRefno
std::int64_t & modifyRefno()
Retrieve the "refno" attribute as a non-const reference.
Definition: RootOperation.h:320
Atlas::Objects::Operation::RootOperationData::setArgsAsList
void setArgsAsList(const Atlas::Message::ListType &val, const Atlas::Objects::Factories *factories)
Set the "args" attribute AsList.
Definition: RootOperation.h:271
Atlas::Objects::Operation::RootOperationData::modifyArgs
std::vector< Root > & modifyArgs()
Retrieve the "args" attribute as a non-const reference.
Definition: RootOperation.h:395
Atlas::Objects::Operation::RootOperationData::attr_to
std::string attr_to
Target of message/operation.
Definition: RootOperation.h:161
Atlas::Objects::Operation::RootOperationData::sendFrom
void sendFrom(Atlas::Bridge &) const
Send the "from" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:98
Atlas::Objects::Operation::RootOperationData::sendFutureSeconds
void sendFutureSeconds(Atlas::Bridge &) const
Send the "future_seconds" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:119
Atlas::Message::Element
Definition: Element.h:38
Atlas::Objects::Operation::RootOperationData::addToMessage
void addToMessage(Atlas::Message::MapType &) const override
Write this object to an existing Element.
Definition: RootOperation.cpp:151
Atlas::Objects::Operation::RootOperationData::copyAttr
int copyAttr(const std::string &name, Atlas::Message::Element &attr) const override
Definition: RootOperation.cpp:41
Atlas::Objects::Allocator
Definition: BaseObject.h:78
Atlas::Objects::Operation::RootOperationData::free
void free() override
Free an instance of this class, returning it to the memory pool.
Definition: RootOperation.cpp:174
Atlas::Objects::Operation::RootOperationData::sendArgs
void sendArgs(Atlas::Bridge &) const
Send the "args" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:126
Atlas::Objects::Operation::RootOperationData::isDefaultArgs
bool isDefaultArgs() const
Is "args" value default?
Definition: RootOperation.h:443
Atlas::Objects::Operation::RootOperationData::isDefaultFrom
bool isDefaultFrom() const
Is "from" value default?
Definition: RootOperation.h:423
Atlas::Objects::Operation::RootOperationData::isDefaultSeconds
bool isDefaultSeconds() const
Is "seconds" value default?
Definition: RootOperation.h:433
Atlas::Objects::Operation::RootOperationData::setFutureSeconds
void setFutureSeconds(double val)
Set the "future_seconds" attribute.
Definition: RootOperation.h:257
Atlas::Objects::Operation::RootOperationData::attr_refno
std::int64_t attr_refno
Reference to serial number.
Definition: RootOperation.h:157
Atlas::Objects::Operation::RootOperationData::setAttr
void setAttr(std::string name, Atlas::Message::Element attr, const Atlas::Objects::Factories *factories=nullptr) override
Set the attribute "name" to the value given by"attr".
Definition: RootOperation.cpp:53
Atlas::Objects::Operation::RootOperationData::isDefaultFutureSeconds
bool isDefaultFutureSeconds() const
Is "future_seconds" value default?
Definition: RootOperation.h:438
Atlas::Objects::Operation::RootOperationData::setSeconds
void setSeconds(double val)
Set the "seconds" attribute.
Definition: RootOperation.h:249
Atlas::Objects::Operation::RootOperationData::removeAttr
void removeAttr(const std::string &name) override
Remove the attribute "name". This will not work for static attributes.
Definition: RootOperation.cpp:65
Atlas::Objects::Operation::RootOperationData::getSerialno
std::int64_t getSerialno() const
Retrieve the "serialno" attribute.
Definition: RootOperation.h:297
Atlas::Objects::Operation::RootOperationData::modifySeconds
double & modifySeconds()
Retrieve the "seconds" attribute as a non-const reference.
Definition: RootOperation.h:365
Atlas::Objects::Operation::RootOperationData::attr_future_seconds
double attr_future_seconds
Time in seconds to add current time.
Definition: RootOperation.h:165
Atlas::Objects::Operation::RootOperationData::attr_from
std::string attr_from
Source of message/operation.
Definition: RootOperation.h:159
Atlas::Objects::Operation::RootOperationData::setTo
void setTo(std::string val)
Set the "to" attribute.
Definition: RootOperation.h:241
Atlas::Objects::BaseObjectData::m_defaults
BaseObjectData * m_defaults
Definition: BaseObject.h:330
Atlas::Bridge
Definition: Bridge.h:35
Atlas::Objects::Operation::RootOperationData::setSerialno
void setSerialno(std::int64_t val)
Set the "serialno" attribute.
Definition: RootOperation.h:217
Atlas::Objects::Operation::RootOperationData::sendSeconds
void sendSeconds(Atlas::Bridge &) const
Send the "seconds" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:112
Atlas::Objects::Operation::RootOperationData::setRefno
void setRefno(std::int64_t val)
Set the "refno" attribute.
Definition: RootOperation.h:225
Atlas::Objects::Operation::RootOperationData::sendContents
void sendContents(Atlas::Bridge &b) const override
Send the contents of this object to a Bridge.
Definition: RootOperation.cpp:139
Atlas::Objects::Operation::RootOperationData::getSeconds
double getSeconds() const
Retrieve the "seconds" attribute.
Definition: RootOperation.h:357
Atlas::Objects::Operation::RootOperationData::copy
RootOperationData * copy() const override
Copy this object.
Definition: RootOperation.cpp:187
Atlas::Objects::Operation::RootOperationData::isDefaultRefno
bool isDefaultRefno() const
Is "refno" value default?
Definition: RootOperation.h:418
Atlas::Objects::Operation::RootOperationData::setFrom
void setFrom(std::string val)
Set the "from" attribute.
Definition: RootOperation.h:233
Atlas::Objects::Operation::RootOperationData::setArgs1
void setArgs1(SmartPtr< ObjectData > val)
Set the first member of "args".
Definition: RootOperation.h:290
Atlas::Objects::Operation::RootOperationData::instanceOf
bool instanceOf(int classNo) const override
Is this instance of some class?
Definition: RootOperation.cpp:192
Atlas::Objects::Operation::RootOperationData::sendSerialno
void sendSerialno(Atlas::Bridge &) const
Send the "serialno" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:84
Atlas::Objects::Operation::RootOperationData::getAttrFlag
bool getAttrFlag(const std::string &name, uint32_t &flag) const override
Find the flag for the attribute "name".
Definition: RootOperation.cpp:31
Atlas::Objects::Operation::RootOperationData::reset
void reset() override
Resets the object as it's returned to the pool.
Definition: RootOperation.cpp:181
Atlas::Objects::Factories
Definition: Factories.h:76
Atlas::Objects::RootData
All objects inherit from this..
Definition: Root.h:36
Atlas::Objects::Operation::RootOperationData::sendTo
void sendTo(Atlas::Bridge &) const
Send the "to" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:105
Atlas::Objects::Operation::RootOperationData::sendRefno
void sendRefno(Atlas::Bridge &) const
Send the "refno" attribute to an Atlas::Bridge.
Definition: RootOperation.cpp:91
Atlas::Objects::Operation::RootOperationData::getFutureSeconds
double getFutureSeconds() const
Retrieve the "future_seconds" attribute.
Definition: RootOperation.h:372
Atlas::Objects::Operation::RootOperationData::isDefaultTo
bool isDefaultTo() const
Is "to" value default?
Definition: RootOperation.h:428
Atlas::Objects::Operation::RootOperationData
Base operation for all operators.
Definition: RootOperation.h:41
Atlas::Objects::Operation::RootOperationData::modifyTo
std::string & modifyTo()
Retrieve the "to" attribute as a non-const reference.
Definition: RootOperation.h:350
Atlas::Objects::Factories::parseListOfObjects
std::vector< Root > parseListOfObjects(const Atlas::Message::ListType &val) const
Definition: Factories.cpp:151
Atlas::Objects::Operation::RootOperationData::getArgsAsList
Atlas::Message::ListType getArgsAsList() const
Retrieve the "args" attribute AsList.
Definition: RootOperation.h:402
Atlas::Objects::SmartPtr
Definition: Decoder.h:17
Atlas
Definition: Bridge.h:20