RINASim  October 2016
Documentation of framework for OMNeT++
ManagementPDU_m.cc
Go to the documentation of this file.
1 //
2 // Generated file, do not edit! Created by nedtool 5.0 from DIF/EFCP/ManagementPDU.msg.
3 //
4 
5 // Disable warnings about unused variables, empty switch stmts, etc:
6 #ifdef _MSC_VER
7 # pragma warning(disable:4101)
8 # pragma warning(disable:4065)
9 #endif
10 
11 #include <iostream>
12 #include <sstream>
13 #include "ManagementPDU_m.h"
14 
15 namespace omnetpp {
16 
17 // Template pack/unpack rules. They are declared *after* a1l type-specific pack functions for multiple reasons.
18 // They are in the omnetpp namespace, to allow them to be found by argument-dependent lookup via the cCommBuffer argument
19 
20 // Packing/unpacking an std::vector
21 template<typename T, typename A>
22 void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::vector<T,A>& v)
23 {
24  int n = v.size();
25  doParsimPacking(buffer, n);
26  for (int i = 0; i < n; i++)
27  doParsimPacking(buffer, v[i]);
28 }
29 
30 template<typename T, typename A>
31 void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::vector<T,A>& v)
32 {
33  int n;
34  doParsimUnpacking(buffer, n);
35  v.resize(n);
36  for (int i = 0; i < n; i++)
37  doParsimUnpacking(buffer, v[i]);
38 }
39 
40 // Packing/unpacking an std::list
41 template<typename T, typename A>
42 void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::list<T,A>& l)
43 {
44  doParsimPacking(buffer, (int)l.size());
45  for (typename std::list<T,A>::const_iterator it = l.begin(); it != l.end(); ++it)
46  doParsimPacking(buffer, (T&)*it);
47 }
48 
49 template<typename T, typename A>
50 void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::list<T,A>& l)
51 {
52  int n;
53  doParsimUnpacking(buffer, n);
54  for (int i=0; i<n; i++) {
55  l.push_back(T());
56  doParsimUnpacking(buffer, l.back());
57  }
58 }
59 
60 // Packing/unpacking an std::set
61 template<typename T, typename Tr, typename A>
62 void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::set<T,Tr,A>& s)
63 {
64  doParsimPacking(buffer, (int)s.size());
65  for (typename std::set<T,Tr,A>::const_iterator it = s.begin(); it != s.end(); ++it)
66  doParsimPacking(buffer, *it);
67 }
68 
69 template<typename T, typename Tr, typename A>
70 void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::set<T,Tr,A>& s)
71 {
72  int n;
73  doParsimUnpacking(buffer, n);
74  for (int i=0; i<n; i++) {
75  T x;
76  doParsimUnpacking(buffer, x);
77  s.insert(x);
78  }
79 }
80 
81 // Packing/unpacking an std::map
82 template<typename K, typename V, typename Tr, typename A>
83 void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::map<K,V,Tr,A>& m)
84 {
85  doParsimPacking(buffer, (int)m.size());
86  for (typename std::map<K,V,Tr,A>::const_iterator it = m.begin(); it != m.end(); ++it) {
87  doParsimPacking(buffer, it->first);
88  doParsimPacking(buffer, it->second);
89  }
90 }
91 
92 template<typename K, typename V, typename Tr, typename A>
93 void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::map<K,V,Tr,A>& m)
94 {
95  int n;
96  doParsimUnpacking(buffer, n);
97  for (int i=0; i<n; i++) {
98  K k; V v;
99  doParsimUnpacking(buffer, k);
100  doParsimUnpacking(buffer, v);
101  m[k] = v;
102  }
103 }
104 
105 // Default pack/unpack function for arrays
106 template<typename T>
107 void doParsimArrayPacking(omnetpp::cCommBuffer *b, const T *t, int n)
108 {
109  for (int i = 0; i < n; i++)
110  doParsimPacking(b, t[i]);
111 }
112 
113 template<typename T>
114 void doParsimArrayUnpacking(omnetpp::cCommBuffer *b, T *t, int n)
115 {
116  for (int i = 0; i < n; i++)
117  doParsimUnpacking(b, t[i]);
118 }
119 
120 // Default rule to prevent compiler from choosing base class' doParsimPacking() function
121 template<typename T>
122 void doParsimPacking(omnetpp::cCommBuffer *, const T& t)
123 {
124  throw omnetpp::cRuntimeError("Parsim error: no doParsimPacking() function for type %s", omnetpp::opp_typename(typeid(t)));
125 }
126 
127 template<typename T>
128 void doParsimUnpacking(omnetpp::cCommBuffer *, T& t)
129 {
130  throw omnetpp::cRuntimeError("Parsim error: no doParsimUnpacking() function for type %s", omnetpp::opp_typename(typeid(t)));
131 }
132 
133 } // namespace omnetpp
134 
135 
136 // forward
137 template<typename T, typename A>
138 std::ostream& operator<<(std::ostream& out, const std::vector<T,A>& vec);
139 
140 // Template rule which fires if a struct or class doesn't have operator<<
141 template<typename T>
142 inline std::ostream& operator<<(std::ostream& out,const T&) {return out;}
143 
144 // operator<< for std::vector<T>
145 template<typename T, typename A>
146 inline std::ostream& operator<<(std::ostream& out, const std::vector<T,A>& vec)
147 {
148  out.put('{');
149  for(typename std::vector<T,A>::const_iterator it = vec.begin(); it != vec.end(); ++it)
150  {
151  if (it != vec.begin()) {
152  out.put(','); out.put(' ');
153  }
154  out << *it;
155  }
156  out.put('}');
157 
158  char buf[32];
159  sprintf(buf, " (size=%u)", (unsigned int)vec.size());
160  out.write(buf, strlen(buf));
161  return out;
162 }
163 
165 
166 ManagementPDU::ManagementPDU(const char *name, int kind) : ::PDU(name,kind)
167 {
168  this->setType(MANAGEMENT_PDU);
169  this->setDisplayString("b=15,15,oval,#2066CC,#2066CC,0");
170 }
171 
173 {
174  copy(other);
175 }
176 
178 {
179 }
180 
182 {
183  if (this==&other) return *this;
184  ::PDU::operator=(other);
185  copy(other);
186  return *this;
187 }
188 
190 {
191 }
192 
193 void ManagementPDU::parsimPack(omnetpp::cCommBuffer *b) const
194 {
196 }
197 
198 void ManagementPDU::parsimUnpack(omnetpp::cCommBuffer *b)
199 {
201 }
202 
203 class ManagementPDUDescriptor : public omnetpp::cClassDescriptor
204 {
205  private:
206  mutable const char **propertynames;
207  public:
209  virtual ~ManagementPDUDescriptor();
210 
211  virtual bool doesSupport(omnetpp::cObject *obj) const override;
212  virtual const char **getPropertyNames() const override;
213  virtual const char *getProperty(const char *propertyname) const override;
214  virtual int getFieldCount() const override;
215  virtual const char *getFieldName(int field) const override;
216  virtual int findField(const char *fieldName) const override;
217  virtual unsigned int getFieldTypeFlags(int field) const override;
218  virtual const char *getFieldTypeString(int field) const override;
219  virtual const char **getFieldPropertyNames(int field) const override;
220  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
221  virtual int getFieldArraySize(void *object, int field) const override;
222 
223  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
224  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
225 
226  virtual const char *getFieldStructName(int field) const override;
227  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
228 };
229 
231 
232 ManagementPDUDescriptor::ManagementPDUDescriptor() : omnetpp::cClassDescriptor("ManagementPDU", "PDU")
233 {
234  propertynames = nullptr;
235 }
236 
238 {
239  delete[] propertynames;
240 }
241 
242 bool ManagementPDUDescriptor::doesSupport(omnetpp::cObject *obj) const
243 {
244  return dynamic_cast<ManagementPDU *>(obj)!=nullptr;
245 }
246 
248 {
249  if (!propertynames) {
250  static const char *names[] = { nullptr };
251  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
252  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
253  propertynames = mergeLists(basenames, names);
254  }
255  return propertynames;
256 }
257 
258 const char *ManagementPDUDescriptor::getProperty(const char *propertyname) const
259 {
260  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
261  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
262 }
263 
265 {
266  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
267  return basedesc ? 0+basedesc->getFieldCount() : 0;
268 }
269 
270 unsigned int ManagementPDUDescriptor::getFieldTypeFlags(int field) const
271 {
272  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
273  if (basedesc) {
274  if (field < basedesc->getFieldCount())
275  return basedesc->getFieldTypeFlags(field);
276  field -= basedesc->getFieldCount();
277  }
278  return 0;
279 }
280 
281 const char *ManagementPDUDescriptor::getFieldName(int field) const
282 {
283  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
284  if (basedesc) {
285  if (field < basedesc->getFieldCount())
286  return basedesc->getFieldName(field);
287  field -= basedesc->getFieldCount();
288  }
289  return nullptr;
290 }
291 
292 int ManagementPDUDescriptor::findField(const char *fieldName) const
293 {
294  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
295  return basedesc ? basedesc->findField(fieldName) : -1;
296 }
297 
299 {
300  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
301  if (basedesc) {
302  if (field < basedesc->getFieldCount())
303  return basedesc->getFieldTypeString(field);
304  field -= basedesc->getFieldCount();
305  }
306  return nullptr;
307 }
308 
310 {
311  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
312  if (basedesc) {
313  if (field < basedesc->getFieldCount())
314  return basedesc->getFieldPropertyNames(field);
315  field -= basedesc->getFieldCount();
316  }
317  switch (field) {
318  default: return nullptr;
319  }
320 }
321 
322 const char *ManagementPDUDescriptor::getFieldProperty(int field, const char *propertyname) const
323 {
324  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
325  if (basedesc) {
326  if (field < basedesc->getFieldCount())
327  return basedesc->getFieldProperty(field, propertyname);
328  field -= basedesc->getFieldCount();
329  }
330  switch (field) {
331  default: return nullptr;
332  }
333 }
334 
335 int ManagementPDUDescriptor::getFieldArraySize(void *object, int field) const
336 {
337  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
338  if (basedesc) {
339  if (field < basedesc->getFieldCount())
340  return basedesc->getFieldArraySize(object, field);
341  field -= basedesc->getFieldCount();
342  }
343  ManagementPDU *pp = (ManagementPDU *)object; (void)pp;
344  switch (field) {
345  default: return 0;
346  }
347 }
348 
349 std::string ManagementPDUDescriptor::getFieldValueAsString(void *object, int field, int i) const
350 {
351  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
352  if (basedesc) {
353  if (field < basedesc->getFieldCount())
354  return basedesc->getFieldValueAsString(object,field,i);
355  field -= basedesc->getFieldCount();
356  }
357  ManagementPDU *pp = (ManagementPDU *)object; (void)pp;
358  switch (field) {
359  default: return "";
360  }
361 }
362 
363 bool ManagementPDUDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
364 {
365  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
366  if (basedesc) {
367  if (field < basedesc->getFieldCount())
368  return basedesc->setFieldValueAsString(object,field,i,value);
369  field -= basedesc->getFieldCount();
370  }
371  ManagementPDU *pp = (ManagementPDU *)object; (void)pp;
372  switch (field) {
373  default: return false;
374  }
375 }
376 
378 {
379  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
380  if (basedesc) {
381  if (field < basedesc->getFieldCount())
382  return basedesc->getFieldStructName(field);
383  field -= basedesc->getFieldCount();
384  }
385  return nullptr;
386 }
387 
388 void *ManagementPDUDescriptor::getFieldStructValuePointer(void *object, int field, int i) const
389 {
390  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
391  if (basedesc) {
392  if (field < basedesc->getFieldCount())
393  return basedesc->getFieldStructValuePointer(object, field, i);
394  field -= basedesc->getFieldCount();
395  }
396  ManagementPDU *pp = (ManagementPDU *)object; (void)pp;
397  switch (field) {
398  default: return nullptr;
399  }
400 }
401 
402 
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
virtual const char ** getFieldPropertyNames(int field) const override
ManagementPDU(const char *name=nullptr, int kind=0)
virtual int getFieldArraySize(void *object, int field) const override
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
virtual void parsimPack(omnetpp::cCommBuffer *b) const
void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::vector< T, A > &v)
Definition: PDU_m.cc:22
virtual void setType(int type)
Definition: PDU_m.cc:351
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
std::ostream & operator<<(std::ostream &out, const std::vector< T, A > &vec)
Definition: PDU.h:42
virtual const char ** getPropertyNames() const override
virtual void parsimPack(omnetpp::cCommBuffer *b) const
Definition: PDU_m.cc:242
void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::vector< T, A > &v)
Definition: PDU_m.cc:31
virtual const char * getProperty(const char *propertyname) const override
void doParsimArrayUnpacking(omnetpp::cCommBuffer *b, T *t, int n)
Definition: PDU_m.cc:114
virtual int getFieldCount() const override
Register_Class(ManagementPDU)
Register_ClassDescriptor(ManagementPDUDescriptor)
virtual void setDisplayString(const char *displayString)
Definition: PDU_m.cc:281
ManagementPDU & operator=(const ManagementPDU &other)
void copy(const ManagementPDU &other)
virtual bool doesSupport(omnetpp::cObject *obj) const override
virtual const char * getFieldTypeString(int field) const override
virtual unsigned int getFieldTypeFlags(int field) const override
Definition: PDU_m.cc:15
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
Definition: PDU_m.cc:259
virtual const char * getFieldName(int field) const override
virtual int findField(const char *fieldName) const override
virtual const char * getFieldProperty(int field, const char *propertyname) const override
virtual const char * getFieldStructName(int field) const override
virtual ~ManagementPDU()
void doParsimArrayPacking(omnetpp::cCommBuffer *b, const T *t, int n)
Definition: PDU_m.cc:107