Atlas  0.7.0
Networking protocol for the Worldforge system.
RootOperation.cpp
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 #include <Atlas/Objects/RootOperation.h>
9 
11 using Atlas::Message::MapType;
12 
13 namespace Atlas { namespace Objects { namespace Operation {
14 
15 const std::string SERIALNO_ATTR = "serialno";
16 const std::string REFNO_ATTR = "refno";
17 const std::string FROM_ATTR = "from";
18 const std::string TO_ATTR = "to";
19 const std::string SECONDS_ATTR = "seconds";
20 const std::string FUTURE_SECONDS_ATTR = "future_seconds";
21 const std::string ARGS_ATTR = "args";
22 
23 int RootOperationData::getAttrClass(const std::string& name) const
24 {
25  if (allocator.attr_flags_Data.find(name) != allocator.attr_flags_Data.end()) {
26  return ROOT_OPERATION_NO;
27  }
28  return RootData::getAttrClass(name);
29 }
30 
31 bool RootOperationData::getAttrFlag(const std::string& name, uint32_t& flag) const
32 {
33  auto I = allocator.attr_flags_Data.find(name);
34  if (I != allocator.attr_flags_Data.end()) {
35  flag = I->second;
36  return true;
37  }
38  return RootData::getAttrFlag(name, flag);
39 }
40 
41 int RootOperationData::copyAttr(const std::string& name, Element & attr) const
42 {
43  if (name == SERIALNO_ATTR) { attr = getSerialno(); return 0; }
44  if (name == REFNO_ATTR) { attr = getRefno(); return 0; }
45  if (name == FROM_ATTR) { attr = getFrom(); return 0; }
46  if (name == TO_ATTR) { attr = getTo(); return 0; }
47  if (name == SECONDS_ATTR) { attr = getSeconds(); return 0; }
48  if (name == FUTURE_SECONDS_ATTR) { attr = getFutureSeconds(); return 0; }
49  if (name == ARGS_ATTR) { attr = getArgsAsList(); return 0; }
50  return RootData::copyAttr(name, attr);
51 }
52 
53 void RootOperationData::setAttr(std::string name, Element attr, const Atlas::Objects::Factories* factories)
54 {
55  if (name == SERIALNO_ATTR) { setSerialno(attr.asInt()); return; }
56  if (name == REFNO_ATTR) { setRefno(attr.asInt()); return; }
57  if (name == FROM_ATTR) { setFrom(attr.moveString()); return; }
58  if (name == TO_ATTR) { setTo(attr.moveString()); return; }
59  if (name == SECONDS_ATTR) { setSeconds(attr.asFloat()); return; }
60  if (name == FUTURE_SECONDS_ATTR) { setFutureSeconds(attr.asFloat()); return; }
61  if (name == ARGS_ATTR) { setArgsAsList(attr.moveList(), factories); return; }
62  RootData::setAttr(std::move(name), std::move(attr), factories);
63 }
64 
65 void RootOperationData::removeAttr(const std::string& name)
66 {
67  if (name == SERIALNO_ATTR)
68  { m_attrFlags &= ~SERIALNO_FLAG; return;}
69  if (name == REFNO_ATTR)
70  { m_attrFlags &= ~REFNO_FLAG; return;}
71  if (name == FROM_ATTR)
72  { m_attrFlags &= ~FROM_FLAG; return;}
73  if (name == TO_ATTR)
74  { m_attrFlags &= ~TO_FLAG; return;}
75  if (name == SECONDS_ATTR)
76  { m_attrFlags &= ~SECONDS_FLAG; return;}
77  if (name == FUTURE_SECONDS_ATTR)
78  { m_attrFlags &= ~FUTURE_SECONDS_FLAG; return;}
79  if (name == ARGS_ATTR)
80  { m_attrFlags &= ~ARGS_FLAG; return;}
82 }
83 
85 {
86  if(m_attrFlags & SERIALNO_FLAG) {
87  b.mapIntItem(SERIALNO_ATTR, attr_serialno);
88  }
89 }
90 
92 {
93  if(m_attrFlags & REFNO_FLAG) {
94  b.mapIntItem(REFNO_ATTR, attr_refno);
95  }
96 }
97 
99 {
100  if(m_attrFlags & FROM_FLAG) {
101  b.mapStringItem(FROM_ATTR, attr_from);
102  }
103 }
104 
106 {
107  if(m_attrFlags & TO_FLAG) {
108  b.mapStringItem(TO_ATTR, attr_to);
109  }
110 }
111 
113 {
114  if(m_attrFlags & SECONDS_FLAG) {
115  b.mapFloatItem(SECONDS_ATTR, attr_seconds);
116  }
117 }
118 
120 {
121  if(m_attrFlags & FUTURE_SECONDS_FLAG) {
122  b.mapFloatItem(FUTURE_SECONDS_ATTR, attr_future_seconds);
123  }
124 }
125 
127 {
128  if(m_attrFlags & ARGS_FLAG) {
129  b.mapListItem(ARGS_ATTR);
130  for(const auto& item : attr_args) {
131  b.listMapItem();
132  item->sendContents(b);
133  b.mapEnd();
134  }
135  b.listEnd();
136  }
137 }
138 
140 {
141  sendSerialno(b);
142  sendRefno(b);
143  sendFrom(b);
144  sendTo(b);
145  sendSeconds(b);
147  sendArgs(b);
149 }
150 
151 void RootOperationData::addToMessage(MapType & m) const
152 {
154  if(m_attrFlags & SERIALNO_FLAG)
155  m[SERIALNO_ATTR] = attr_serialno;
156  if(m_attrFlags & REFNO_FLAG)
157  m[REFNO_ATTR] = attr_refno;
158  if(m_attrFlags & FROM_FLAG)
159  m[FROM_ATTR] = attr_from;
160  if(m_attrFlags & TO_FLAG)
161  m[TO_ATTR] = attr_to;
162  if(m_attrFlags & SECONDS_FLAG)
163  m[SECONDS_ATTR] = attr_seconds;
164  if(m_attrFlags & FUTURE_SECONDS_FLAG)
165  m[FUTURE_SECONDS_ATTR] = attr_future_seconds;
166  if(m_attrFlags & ARGS_FLAG)
167  m[ARGS_ATTR] = getArgsAsList();
168 }
169 
170 Allocator<RootOperationData> RootOperationData::allocator;
171 
172 
173 
175 {
176  allocator.free(this);
177 }
178 
179 
180 
182 {
183  attr_args.clear();
184  RootData::reset();
185 }
186 
188 {
189  return copyInstance<RootOperationData>(*this);
190 }
191 
192 bool RootOperationData::instanceOf(int classNo) const
193 {
194  if(ROOT_OPERATION_NO == classNo) return true;
195  return RootData::instanceOf(classNo);
196 }
197 
198 void RootOperationData::fillDefaultObjectInstance(RootOperationData& data, std::map<std::string, uint32_t>& attr_data)
199 {
200  data.attr_objtype = default_objtype;
201  data.attr_serialno = 0;
202  data.attr_refno = 0;
203  data.attr_seconds = 0.0;
204  data.attr_future_seconds = 0.0;
205  data.attr_stamp = 0.0;
206  data.attr_parent = default_parent;
207  attr_data[SERIALNO_ATTR] = SERIALNO_FLAG;
208  attr_data[REFNO_ATTR] = REFNO_FLAG;
209  attr_data[FROM_ATTR] = FROM_FLAG;
210  attr_data[TO_ATTR] = TO_FLAG;
211  attr_data[SECONDS_ATTR] = SECONDS_FLAG;
212  attr_data[FUTURE_SECONDS_ATTR] = FUTURE_SECONDS_FLAG;
213  attr_data[ARGS_ATTR] = ARGS_FLAG;
214 }
215 
216 } } } // namespace Atlas::Objects::Operation
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::RootData::getAttrFlag
bool getAttrFlag(const std::string &name, uint32_t &flag) const override
Find the flag for the attribute "name".
Definition: Root.cpp:29
Atlas::Objects::Operation::RootOperationData::getTo
const std::string & getTo() const
Retrieve the "to" attribute.
Definition: RootOperation.h:342
Atlas::Objects::Operation::RootOperationData::getFrom
const std::string & getFrom() const
Retrieve the "from" attribute.
Definition: RootOperation.h:327
Atlas::Objects::RootData::attr_stamp
double attr_stamp
Last time this object was modified.
Definition: Root.h:127
Atlas::Objects::Operation::RootOperationData::attr_seconds
double attr_seconds
Time in seconds.
Definition: RootOperation.h:163
Atlas::Objects::RootData::removeAttr
void removeAttr(const std::string &name) override
Remove the attribute "name". This will not work for static attributes.
Definition: Root.cpp:59
Atlas::Objects::Operation::RootOperationData::attr_serialno
std::int64_t attr_serialno
Serial number.
Definition: RootOperation.h:155
Atlas::Objects::RootData::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: Root.cpp:49
Atlas::Message::Element::moveList
ListType && moveList()
Definition: Element.h:533
Atlas::Objects::RootData::getAttrClass
int getAttrClass(const std::string &name) const override
Find the class which contains the attribute "name".
Definition: Root.cpp:21
Atlas::Objects::Operation::RootOperationData::attr_args
std::vector< Root > attr_args
List of arguments this operation has.
Definition: RootOperation.h:167
Atlas::Message::Element::moveString
StringType && moveString()
Definition: Element.h:467
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::attr_to
std::string attr_to
Target of message/operation.
Definition: RootOperation.h:161
Atlas::Objects::RootData::attr_parent
std::string attr_parent
The object this inherits attributes from.
Definition: Root.h:125
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::Message::Element::asInt
IntType asInt() const
Retrieve the current value as a int.
Definition: Element.h:404
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::RootData::copyAttr
int copyAttr(const std::string &name, Atlas::Message::Element &attr) const override
Definition: Root.cpp:39
Atlas::Objects::RootData::instanceOf
bool instanceOf(int classNo) const override
Is this instance of some class?
Definition: Root.cpp:156
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::RootData::reset
void reset() override
Resets the object as it's returned to the pool.
Definition: Root.cpp:147
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::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::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::setFrom
void setFrom(std::string val)
Set the "from" attribute.
Definition: RootOperation.h:233
Atlas::Message::Element::asFloat
FloatType asFloat() const
Retrieve the current value as a double.
Definition: Element.h:414
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::RootData::attr_objtype
std::string attr_objtype
What kind of object this is.
Definition: Root.h:129
Atlas::Objects::Factories
Definition: Factories.h:76
Atlas::Objects::RootData::sendContents
void sendContents(Atlas::Bridge &b) const override
Send the contents of this object to a Bridge.
Definition: Root.cpp:109
Atlas::Objects::RootData::addToMessage
void addToMessage(Atlas::Message::MapType &) const override
Write this object to an existing Element.
Definition: Root.cpp:119
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
Base operation for all operators.
Definition: RootOperation.h:41
Atlas::Objects::Operation::RootOperationData::getArgsAsList
Atlas::Message::ListType getArgsAsList() const
Retrieve the "args" attribute AsList.
Definition: RootOperation.h:402
Atlas
Definition: Bridge.h:20