RINASim  October 2016
Documentation of framework for OMNeT++
SDUData_m.cc
Go to the documentation of this file.
1 //
2 // Generated file, do not edit! Created by nedtool 5.0 from Common/SDUData.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 "SDUData_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 SDUData::SDUData(const char *name, int kind) : ::omnetpp::cPacket(name,kind)
167 {
168 }
169 
170 SDUData::SDUData(const SDUData& other) : ::omnetpp::cPacket(other)
171 {
172  copy(other);
173 }
174 
176 {
177 }
178 
180 {
181  if (this==&other) return *this;
182  ::omnetpp::cPacket::operator=(other);
183  copy(other);
184  return *this;
185 }
186 
187 void SDUData::copy(const SDUData& other)
188 {
189 }
190 
191 void SDUData::parsimPack(omnetpp::cCommBuffer *b) const
192 {
193  ::omnetpp::cPacket::parsimPack(b);
194 }
195 
196 void SDUData::parsimUnpack(omnetpp::cCommBuffer *b)
197 {
198  ::omnetpp::cPacket::parsimUnpack(b);
199 }
200 
201 class SDUDataDescriptor : public omnetpp::cClassDescriptor
202 {
203  private:
204  mutable const char **propertynames;
205  public:
207  virtual ~SDUDataDescriptor();
208 
209  virtual bool doesSupport(omnetpp::cObject *obj) const override;
210  virtual const char **getPropertyNames() const override;
211  virtual const char *getProperty(const char *propertyname) const override;
212  virtual int getFieldCount() const override;
213  virtual const char *getFieldName(int field) const override;
214  virtual int findField(const char *fieldName) const override;
215  virtual unsigned int getFieldTypeFlags(int field) const override;
216  virtual const char *getFieldTypeString(int field) const override;
217  virtual const char **getFieldPropertyNames(int field) const override;
218  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
219  virtual int getFieldArraySize(void *object, int field) const override;
220 
221  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
222  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
223 
224  virtual const char *getFieldStructName(int field) const override;
225  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
226 };
227 
229 
230 SDUDataDescriptor::SDUDataDescriptor() : omnetpp::cClassDescriptor("SDUData", "omnetpp::cPacket")
231 {
232  propertynames = nullptr;
233 }
234 
236 {
237  delete[] propertynames;
238 }
239 
240 bool SDUDataDescriptor::doesSupport(omnetpp::cObject *obj) const
241 {
242  return dynamic_cast<SDUData *>(obj)!=nullptr;
243 }
244 
246 {
247  if (!propertynames) {
248  static const char *names[] = { nullptr };
249  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
250  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
251  propertynames = mergeLists(basenames, names);
252  }
253  return propertynames;
254 }
255 
256 const char *SDUDataDescriptor::getProperty(const char *propertyname) const
257 {
258  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
259  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
260 }
261 
263 {
264  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
265  return basedesc ? 0+basedesc->getFieldCount() : 0;
266 }
267 
268 unsigned int SDUDataDescriptor::getFieldTypeFlags(int field) const
269 {
270  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
271  if (basedesc) {
272  if (field < basedesc->getFieldCount())
273  return basedesc->getFieldTypeFlags(field);
274  field -= basedesc->getFieldCount();
275  }
276  return 0;
277 }
278 
279 const char *SDUDataDescriptor::getFieldName(int field) const
280 {
281  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
282  if (basedesc) {
283  if (field < basedesc->getFieldCount())
284  return basedesc->getFieldName(field);
285  field -= basedesc->getFieldCount();
286  }
287  return nullptr;
288 }
289 
290 int SDUDataDescriptor::findField(const char *fieldName) const
291 {
292  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
293  return basedesc ? basedesc->findField(fieldName) : -1;
294 }
295 
296 const char *SDUDataDescriptor::getFieldTypeString(int field) const
297 {
298  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
299  if (basedesc) {
300  if (field < basedesc->getFieldCount())
301  return basedesc->getFieldTypeString(field);
302  field -= basedesc->getFieldCount();
303  }
304  return nullptr;
305 }
306 
307 const char **SDUDataDescriptor::getFieldPropertyNames(int field) const
308 {
309  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
310  if (basedesc) {
311  if (field < basedesc->getFieldCount())
312  return basedesc->getFieldPropertyNames(field);
313  field -= basedesc->getFieldCount();
314  }
315  switch (field) {
316  default: return nullptr;
317  }
318 }
319 
320 const char *SDUDataDescriptor::getFieldProperty(int field, const char *propertyname) const
321 {
322  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
323  if (basedesc) {
324  if (field < basedesc->getFieldCount())
325  return basedesc->getFieldProperty(field, propertyname);
326  field -= basedesc->getFieldCount();
327  }
328  switch (field) {
329  default: return nullptr;
330  }
331 }
332 
333 int SDUDataDescriptor::getFieldArraySize(void *object, int field) const
334 {
335  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
336  if (basedesc) {
337  if (field < basedesc->getFieldCount())
338  return basedesc->getFieldArraySize(object, field);
339  field -= basedesc->getFieldCount();
340  }
341  SDUData *pp = (SDUData *)object; (void)pp;
342  switch (field) {
343  default: return 0;
344  }
345 }
346 
347 std::string SDUDataDescriptor::getFieldValueAsString(void *object, int field, int i) const
348 {
349  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
350  if (basedesc) {
351  if (field < basedesc->getFieldCount())
352  return basedesc->getFieldValueAsString(object,field,i);
353  field -= basedesc->getFieldCount();
354  }
355  SDUData *pp = (SDUData *)object; (void)pp;
356  switch (field) {
357  default: return "";
358  }
359 }
360 
361 bool SDUDataDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
362 {
363  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
364  if (basedesc) {
365  if (field < basedesc->getFieldCount())
366  return basedesc->setFieldValueAsString(object,field,i,value);
367  field -= basedesc->getFieldCount();
368  }
369  SDUData *pp = (SDUData *)object; (void)pp;
370  switch (field) {
371  default: return false;
372  }
373 }
374 
375 const char *SDUDataDescriptor::getFieldStructName(int field) const
376 {
377  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
378  if (basedesc) {
379  if (field < basedesc->getFieldCount())
380  return basedesc->getFieldStructName(field);
381  field -= basedesc->getFieldCount();
382  }
383  return nullptr;
384 }
385 
386 void *SDUDataDescriptor::getFieldStructValuePointer(void *object, int field, int i) const
387 {
388  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
389  if (basedesc) {
390  if (field < basedesc->getFieldCount())
391  return basedesc->getFieldStructValuePointer(object, field, i);
392  field -= basedesc->getFieldCount();
393  }
394  SDUData *pp = (SDUData *)object; (void)pp;
395  switch (field) {
396  default: return nullptr;
397  }
398 }
399 
400 
virtual const char * getFieldStructName(int field) const override
Definition: SDUData_m.cc:375
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
Definition: SDUData_m.cc:386
Register_ClassDescriptor(SDUDataDescriptor)
virtual void parsimPack(omnetpp::cCommBuffer *b) const
Definition: SDUData_m.cc:191
void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::vector< T, A > &v)
Definition: PDU_m.cc:22
virtual const char ** getFieldPropertyNames(int field) const override
Definition: SDUData_m.cc:307
virtual int getFieldCount() const override
Definition: SDUData_m.cc:262
virtual const char * getProperty(const char *propertyname) const override
Definition: SDUData_m.cc:256
void copy(const SDUData &other)
Definition: SDUData_m.cc:187
virtual bool doesSupport(omnetpp::cObject *obj) const override
Definition: SDUData_m.cc:240
virtual int getFieldArraySize(void *object, int field) const override
Definition: SDUData_m.cc:333
virtual const char ** getPropertyNames() const override
Definition: SDUData_m.cc:245
void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::vector< T, A > &v)
Definition: PDU_m.cc:31
void doParsimArrayUnpacking(omnetpp::cCommBuffer *b, T *t, int n)
Definition: PDU_m.cc:114
const char ** propertynames
Definition: SDUData_m.cc:204
Register_Class(SDUData)
SDUData & operator=(const SDUData &other)
Definition: SDUData_m.cc:179
std::ostream & operator<<(std::ostream &out, const std::vector< T, A > &vec)
Definition: SDUData_m.cc:146
SDUData(const char *name=nullptr, int kind=0)
Definition: SDUData_m.cc:166
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
Definition: SDUData_m.cc:361
Definition: PDU_m.cc:15
virtual ~SDUDataDescriptor()
Definition: SDUData_m.cc:235
virtual const char * getFieldTypeString(int field) const override
Definition: SDUData_m.cc:296
virtual const char * getFieldName(int field) const override
Definition: SDUData_m.cc:279
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
Definition: SDUData_m.cc:196
virtual unsigned int getFieldTypeFlags(int field) const override
Definition: SDUData_m.cc:268
virtual int findField(const char *fieldName) const override
Definition: SDUData_m.cc:290
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
Definition: SDUData_m.cc:347
virtual const char * getFieldProperty(int field, const char *propertyname) const override
Definition: SDUData_m.cc:320
void doParsimArrayPacking(omnetpp::cCommBuffer *b, const T *t, int n)
Definition: PDU_m.cc:107
virtual ~SDUData()
Definition: SDUData_m.cc:175