RINASim  October 2016
Documentation of framework for OMNeT++
DTCPTimers_m.cc
Go to the documentation of this file.
1 //
2 // Generated file, do not edit! Created by nedtool 5.0 from DIF/EFCP/DTCP/DTCPTimers.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 "DTCPTimers_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  omnetpp::cEnum *e = omnetpp::cEnum::find("DTCPTimerType");
166  if (!e) omnetpp::enums.getInstance()->add(e = new omnetpp::cEnum("DTCPTimerType"));
167  e->insert(DTCP_RX_EXPIRY_TIMER, "DTCP_RX_EXPIRY_TIMER");
168  e->insert(DTCP_SENDING_RATE_TIMER, "DTCP_SENDING_RATE_TIMER");
169  e->insert(DTCP_RENDEZVOUS_TIMER, "DTCP_RENDEZVOUS_TIMER");
170  e->insert(DTCP_REL_C_PDU_TIMER, "DTCP_REL_C_PDU_TIMER");
171 );
172 
174 
175 DTCPTimers::DTCPTimers(const char *name, int kind) : ::omnetpp::cMessage(name,kind)
176 {
177  this->type = 0;
178 }
179 
180 DTCPTimers::DTCPTimers(const DTCPTimers& other) : ::omnetpp::cMessage(other)
181 {
182  copy(other);
183 }
184 
186 {
187 }
188 
190 {
191  if (this==&other) return *this;
192  ::omnetpp::cMessage::operator=(other);
193  copy(other);
194  return *this;
195 }
196 
197 void DTCPTimers::copy(const DTCPTimers& other)
198 {
199  this->type = other.type;
200 }
201 
202 void DTCPTimers::parsimPack(omnetpp::cCommBuffer *b) const
203 {
204  ::omnetpp::cMessage::parsimPack(b);
205  doParsimPacking(b,this->type);
206 }
207 
208 void DTCPTimers::parsimUnpack(omnetpp::cCommBuffer *b)
209 {
210  ::omnetpp::cMessage::parsimUnpack(b);
211  doParsimUnpacking(b,this->type);
212 }
213 
215 {
216  return this->type;
217 }
218 
219 void DTCPTimers::setType(int type)
220 {
221  this->type = type;
222 }
223 
224 class DTCPTimersDescriptor : public omnetpp::cClassDescriptor
225 {
226  private:
227  mutable const char **propertynames;
228  public:
230  virtual ~DTCPTimersDescriptor();
231 
232  virtual bool doesSupport(omnetpp::cObject *obj) const override;
233  virtual const char **getPropertyNames() const override;
234  virtual const char *getProperty(const char *propertyname) const override;
235  virtual int getFieldCount() const override;
236  virtual const char *getFieldName(int field) const override;
237  virtual int findField(const char *fieldName) const override;
238  virtual unsigned int getFieldTypeFlags(int field) const override;
239  virtual const char *getFieldTypeString(int field) const override;
240  virtual const char **getFieldPropertyNames(int field) const override;
241  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
242  virtual int getFieldArraySize(void *object, int field) const override;
243 
244  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
245  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
246 
247  virtual const char *getFieldStructName(int field) const override;
248  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
249 };
250 
252 
253 DTCPTimersDescriptor::DTCPTimersDescriptor() : omnetpp::cClassDescriptor("DTCPTimers", "omnetpp::cMessage")
254 {
255  propertynames = nullptr;
256 }
257 
259 {
260  delete[] propertynames;
261 }
262 
263 bool DTCPTimersDescriptor::doesSupport(omnetpp::cObject *obj) const
264 {
265  return dynamic_cast<DTCPTimers *>(obj)!=nullptr;
266 }
267 
269 {
270  if (!propertynames) {
271  static const char *names[] = { nullptr };
272  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
273  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
274  propertynames = mergeLists(basenames, names);
275  }
276  return propertynames;
277 }
278 
279 const char *DTCPTimersDescriptor::getProperty(const char *propertyname) const
280 {
281  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
282  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
283 }
284 
286 {
287  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
288  return basedesc ? 1+basedesc->getFieldCount() : 1;
289 }
290 
291 unsigned int DTCPTimersDescriptor::getFieldTypeFlags(int field) const
292 {
293  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
294  if (basedesc) {
295  if (field < basedesc->getFieldCount())
296  return basedesc->getFieldTypeFlags(field);
297  field -= basedesc->getFieldCount();
298  }
299  static unsigned int fieldTypeFlags[] = {
300  FD_ISEDITABLE,
301  };
302  return (field>=0 && field<1) ? fieldTypeFlags[field] : 0;
303 }
304 
305 const char *DTCPTimersDescriptor::getFieldName(int field) const
306 {
307  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
308  if (basedesc) {
309  if (field < basedesc->getFieldCount())
310  return basedesc->getFieldName(field);
311  field -= basedesc->getFieldCount();
312  }
313  static const char *fieldNames[] = {
314  "type",
315  };
316  return (field>=0 && field<1) ? fieldNames[field] : nullptr;
317 }
318 
319 int DTCPTimersDescriptor::findField(const char *fieldName) const
320 {
321  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
322  int base = basedesc ? basedesc->getFieldCount() : 0;
323  if (fieldName[0]=='t' && strcmp(fieldName, "type")==0) return base+0;
324  return basedesc ? basedesc->findField(fieldName) : -1;
325 }
326 
327 const char *DTCPTimersDescriptor::getFieldTypeString(int field) const
328 {
329  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
330  if (basedesc) {
331  if (field < basedesc->getFieldCount())
332  return basedesc->getFieldTypeString(field);
333  field -= basedesc->getFieldCount();
334  }
335  static const char *fieldTypeStrings[] = {
336  "int",
337  };
338  return (field>=0 && field<1) ? fieldTypeStrings[field] : nullptr;
339 }
340 
341 const char **DTCPTimersDescriptor::getFieldPropertyNames(int field) const
342 {
343  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
344  if (basedesc) {
345  if (field < basedesc->getFieldCount())
346  return basedesc->getFieldPropertyNames(field);
347  field -= basedesc->getFieldCount();
348  }
349  switch (field) {
350  case 0: {
351  static const char *names[] = { "enum", nullptr };
352  return names;
353  }
354  default: return nullptr;
355  }
356 }
357 
358 const char *DTCPTimersDescriptor::getFieldProperty(int field, const char *propertyname) const
359 {
360  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
361  if (basedesc) {
362  if (field < basedesc->getFieldCount())
363  return basedesc->getFieldProperty(field, propertyname);
364  field -= basedesc->getFieldCount();
365  }
366  switch (field) {
367  case 0:
368  if (!strcmp(propertyname,"enum")) return "DTCPTimerType";
369  return nullptr;
370  default: return nullptr;
371  }
372 }
373 
374 int DTCPTimersDescriptor::getFieldArraySize(void *object, int field) const
375 {
376  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
377  if (basedesc) {
378  if (field < basedesc->getFieldCount())
379  return basedesc->getFieldArraySize(object, field);
380  field -= basedesc->getFieldCount();
381  }
382  DTCPTimers *pp = (DTCPTimers *)object; (void)pp;
383  switch (field) {
384  default: return 0;
385  }
386 }
387 
388 std::string DTCPTimersDescriptor::getFieldValueAsString(void *object, int field, int i) const
389 {
390  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
391  if (basedesc) {
392  if (field < basedesc->getFieldCount())
393  return basedesc->getFieldValueAsString(object,field,i);
394  field -= basedesc->getFieldCount();
395  }
396  DTCPTimers *pp = (DTCPTimers *)object; (void)pp;
397  switch (field) {
398  case 0: return enum2string(pp->getType(), "DTCPTimerType");
399  default: return "";
400  }
401 }
402 
403 bool DTCPTimersDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
404 {
405  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
406  if (basedesc) {
407  if (field < basedesc->getFieldCount())
408  return basedesc->setFieldValueAsString(object,field,i,value);
409  field -= basedesc->getFieldCount();
410  }
411  DTCPTimers *pp = (DTCPTimers *)object; (void)pp;
412  switch (field) {
413  case 0: pp->setType((DTCPTimerType)string2enum(value, "DTCPTimerType")); return true;
414  default: return false;
415  }
416 }
417 
418 const char *DTCPTimersDescriptor::getFieldStructName(int field) const
419 {
420  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
421  if (basedesc) {
422  if (field < basedesc->getFieldCount())
423  return basedesc->getFieldStructName(field);
424  field -= basedesc->getFieldCount();
425  }
426  switch (field) {
427  default: return nullptr;
428  };
429 }
430 
431 void *DTCPTimersDescriptor::getFieldStructValuePointer(void *object, int field, int i) const
432 {
433  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
434  if (basedesc) {
435  if (field < basedesc->getFieldCount())
436  return basedesc->getFieldStructValuePointer(object, field, i);
437  field -= basedesc->getFieldCount();
438  }
439  DTCPTimers *pp = (DTCPTimers *)object; (void)pp;
440  switch (field) {
441  default: return nullptr;
442  }
443 }
444 
446 
447 DTCPRxExpiryTimer::DTCPRxExpiryTimer(const char *name, int kind) : ::DTCPTimers(name,kind)
448 {
450 
451  this->pdu = NULL;
452  this->expiryCount = 0;
453  this->sent = 0;
454 }
455 
457 {
458  copy(other);
459 }
460 
462 {
463 }
464 
466 {
467  if (this==&other) return *this;
468  ::DTCPTimers::operator=(other);
469  copy(other);
470  return *this;
471 }
472 
474 {
475  this->pdu = other.pdu;
476  this->expiryCount = other.expiryCount;
477  this->sent = other.sent;
478 }
479 
480 void DTCPRxExpiryTimer::parsimPack(omnetpp::cCommBuffer *b) const
481 {
483  doParsimPacking(b,this->pdu);
484  doParsimPacking(b,this->expiryCount);
485  doParsimPacking(b,this->sent);
486 }
487 
488 void DTCPRxExpiryTimer::parsimUnpack(omnetpp::cCommBuffer *b)
489 {
491  doParsimUnpacking(b,this->pdu);
493  doParsimUnpacking(b,this->sent);
494 }
495 
497 {
498  return this->pdu;
499 }
500 
502 {
503  this->pdu = pdu;
504 }
505 
507 {
508  return this->expiryCount;
509 }
510 
511 void DTCPRxExpiryTimer::setExpiryCount(unsigned int expiryCount)
512 {
513  this->expiryCount = expiryCount;
514 }
515 
517 {
518  return this->sent;
519 }
520 
521 void DTCPRxExpiryTimer::setSent(double sent)
522 {
523  this->sent = sent;
524 }
525 
526 class DTCPRxExpiryTimerDescriptor : public omnetpp::cClassDescriptor
527 {
528  private:
529  mutable const char **propertynames;
530  public:
533 
534  virtual bool doesSupport(omnetpp::cObject *obj) const override;
535  virtual const char **getPropertyNames() const override;
536  virtual const char *getProperty(const char *propertyname) const override;
537  virtual int getFieldCount() const override;
538  virtual const char *getFieldName(int field) const override;
539  virtual int findField(const char *fieldName) const override;
540  virtual unsigned int getFieldTypeFlags(int field) const override;
541  virtual const char *getFieldTypeString(int field) const override;
542  virtual const char **getFieldPropertyNames(int field) const override;
543  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
544  virtual int getFieldArraySize(void *object, int field) const override;
545 
546  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
547  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
548 
549  virtual const char *getFieldStructName(int field) const override;
550  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
551 };
552 
554 
555 DTCPRxExpiryTimerDescriptor::DTCPRxExpiryTimerDescriptor() : omnetpp::cClassDescriptor("DTCPRxExpiryTimer", "DTCPTimers")
556 {
557  propertynames = nullptr;
558 }
559 
561 {
562  delete[] propertynames;
563 }
564 
565 bool DTCPRxExpiryTimerDescriptor::doesSupport(omnetpp::cObject *obj) const
566 {
567  return dynamic_cast<DTCPRxExpiryTimer *>(obj)!=nullptr;
568 }
569 
571 {
572  if (!propertynames) {
573  static const char *names[] = { nullptr };
574  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
575  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
576  propertynames = mergeLists(basenames, names);
577  }
578  return propertynames;
579 }
580 
581 const char *DTCPRxExpiryTimerDescriptor::getProperty(const char *propertyname) const
582 {
583  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
584  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
585 }
586 
588 {
589  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
590  return basedesc ? 3+basedesc->getFieldCount() : 3;
591 }
592 
594 {
595  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
596  if (basedesc) {
597  if (field < basedesc->getFieldCount())
598  return basedesc->getFieldTypeFlags(field);
599  field -= basedesc->getFieldCount();
600  }
601  static unsigned int fieldTypeFlags[] = {
602  FD_ISCOMPOUND,
603  FD_ISEDITABLE,
604  FD_ISEDITABLE,
605  };
606  return (field>=0 && field<3) ? fieldTypeFlags[field] : 0;
607 }
608 
609 const char *DTCPRxExpiryTimerDescriptor::getFieldName(int field) const
610 {
611  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
612  if (basedesc) {
613  if (field < basedesc->getFieldCount())
614  return basedesc->getFieldName(field);
615  field -= basedesc->getFieldCount();
616  }
617  static const char *fieldNames[] = {
618  "pdu",
619  "expiryCount",
620  "sent",
621  };
622  return (field>=0 && field<3) ? fieldNames[field] : nullptr;
623 }
624 
625 int DTCPRxExpiryTimerDescriptor::findField(const char *fieldName) const
626 {
627  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
628  int base = basedesc ? basedesc->getFieldCount() : 0;
629  if (fieldName[0]=='p' && strcmp(fieldName, "pdu")==0) return base+0;
630  if (fieldName[0]=='e' && strcmp(fieldName, "expiryCount")==0) return base+1;
631  if (fieldName[0]=='s' && strcmp(fieldName, "sent")==0) return base+2;
632  return basedesc ? basedesc->findField(fieldName) : -1;
633 }
634 
636 {
637  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
638  if (basedesc) {
639  if (field < basedesc->getFieldCount())
640  return basedesc->getFieldTypeString(field);
641  field -= basedesc->getFieldCount();
642  }
643  static const char *fieldTypeStrings[] = {
644  "DTPDU_p",
645  "unsigned int",
646  "double",
647  };
648  return (field>=0 && field<3) ? fieldTypeStrings[field] : nullptr;
649 }
650 
652 {
653  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
654  if (basedesc) {
655  if (field < basedesc->getFieldCount())
656  return basedesc->getFieldPropertyNames(field);
657  field -= basedesc->getFieldCount();
658  }
659  switch (field) {
660  default: return nullptr;
661  }
662 }
663 
664 const char *DTCPRxExpiryTimerDescriptor::getFieldProperty(int field, const char *propertyname) const
665 {
666  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
667  if (basedesc) {
668  if (field < basedesc->getFieldCount())
669  return basedesc->getFieldProperty(field, propertyname);
670  field -= basedesc->getFieldCount();
671  }
672  switch (field) {
673  default: return nullptr;
674  }
675 }
676 
677 int DTCPRxExpiryTimerDescriptor::getFieldArraySize(void *object, int field) const
678 {
679  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
680  if (basedesc) {
681  if (field < basedesc->getFieldCount())
682  return basedesc->getFieldArraySize(object, field);
683  field -= basedesc->getFieldCount();
684  }
685  DTCPRxExpiryTimer *pp = (DTCPRxExpiryTimer *)object; (void)pp;
686  switch (field) {
687  default: return 0;
688  }
689 }
690 
691 std::string DTCPRxExpiryTimerDescriptor::getFieldValueAsString(void *object, int field, int i) const
692 {
693  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
694  if (basedesc) {
695  if (field < basedesc->getFieldCount())
696  return basedesc->getFieldValueAsString(object,field,i);
697  field -= basedesc->getFieldCount();
698  }
699  DTCPRxExpiryTimer *pp = (DTCPRxExpiryTimer *)object; (void)pp;
700  switch (field) {
701  case 0: {std::stringstream out; out << pp->getPdu(); return out.str();}
702  case 1: return ulong2string(pp->getExpiryCount());
703  case 2: return double2string(pp->getSent());
704  default: return "";
705  }
706 }
707 
708 bool DTCPRxExpiryTimerDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
709 {
710  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
711  if (basedesc) {
712  if (field < basedesc->getFieldCount())
713  return basedesc->setFieldValueAsString(object,field,i,value);
714  field -= basedesc->getFieldCount();
715  }
716  DTCPRxExpiryTimer *pp = (DTCPRxExpiryTimer *)object; (void)pp;
717  switch (field) {
718  case 1: pp->setExpiryCount(string2ulong(value)); return true;
719  case 2: pp->setSent(string2double(value)); return true;
720  default: return false;
721  }
722 }
723 
725 {
726  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
727  if (basedesc) {
728  if (field < basedesc->getFieldCount())
729  return basedesc->getFieldStructName(field);
730  field -= basedesc->getFieldCount();
731  }
732  switch (field) {
733  case 0: return omnetpp::opp_typename(typeid(DTPDU_p));
734  default: return nullptr;
735  };
736 }
737 
738 void *DTCPRxExpiryTimerDescriptor::getFieldStructValuePointer(void *object, int field, int i) const
739 {
740  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
741  if (basedesc) {
742  if (field < basedesc->getFieldCount())
743  return basedesc->getFieldStructValuePointer(object, field, i);
744  field -= basedesc->getFieldCount();
745  }
746  DTCPRxExpiryTimer *pp = (DTCPRxExpiryTimer *)object; (void)pp;
747  switch (field) {
748  case 0: return (void *)(&pp->getPdu()); break;
749  default: return nullptr;
750  }
751 }
752 
754 
755 DTCPSendingRateTimer::DTCPSendingRateTimer(const char *name, int kind) : ::DTCPTimers(name,kind)
756 {
758 }
759 
761 {
762  copy(other);
763 }
764 
766 {
767 }
768 
770 {
771  if (this==&other) return *this;
772  ::DTCPTimers::operator=(other);
773  copy(other);
774  return *this;
775 }
776 
778 {
779 }
780 
781 void DTCPSendingRateTimer::parsimPack(omnetpp::cCommBuffer *b) const
782 {
784 }
785 
786 void DTCPSendingRateTimer::parsimUnpack(omnetpp::cCommBuffer *b)
787 {
789 }
790 
791 class DTCPSendingRateTimerDescriptor : public omnetpp::cClassDescriptor
792 {
793  private:
794  mutable const char **propertynames;
795  public:
798 
799  virtual bool doesSupport(omnetpp::cObject *obj) const override;
800  virtual const char **getPropertyNames() const override;
801  virtual const char *getProperty(const char *propertyname) const override;
802  virtual int getFieldCount() const override;
803  virtual const char *getFieldName(int field) const override;
804  virtual int findField(const char *fieldName) const override;
805  virtual unsigned int getFieldTypeFlags(int field) const override;
806  virtual const char *getFieldTypeString(int field) const override;
807  virtual const char **getFieldPropertyNames(int field) const override;
808  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
809  virtual int getFieldArraySize(void *object, int field) const override;
810 
811  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
812  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
813 
814  virtual const char *getFieldStructName(int field) const override;
815  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
816 };
817 
819 
820 DTCPSendingRateTimerDescriptor::DTCPSendingRateTimerDescriptor() : omnetpp::cClassDescriptor("DTCPSendingRateTimer", "DTCPTimers")
821 {
822  propertynames = nullptr;
823 }
824 
826 {
827  delete[] propertynames;
828 }
829 
830 bool DTCPSendingRateTimerDescriptor::doesSupport(omnetpp::cObject *obj) const
831 {
832  return dynamic_cast<DTCPSendingRateTimer *>(obj)!=nullptr;
833 }
834 
836 {
837  if (!propertynames) {
838  static const char *names[] = { nullptr };
839  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
840  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
841  propertynames = mergeLists(basenames, names);
842  }
843  return propertynames;
844 }
845 
846 const char *DTCPSendingRateTimerDescriptor::getProperty(const char *propertyname) const
847 {
848  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
849  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
850 }
851 
853 {
854  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
855  return basedesc ? 0+basedesc->getFieldCount() : 0;
856 }
857 
859 {
860  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
861  if (basedesc) {
862  if (field < basedesc->getFieldCount())
863  return basedesc->getFieldTypeFlags(field);
864  field -= basedesc->getFieldCount();
865  }
866  return 0;
867 }
868 
870 {
871  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
872  if (basedesc) {
873  if (field < basedesc->getFieldCount())
874  return basedesc->getFieldName(field);
875  field -= basedesc->getFieldCount();
876  }
877  return nullptr;
878 }
879 
880 int DTCPSendingRateTimerDescriptor::findField(const char *fieldName) const
881 {
882  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
883  return basedesc ? basedesc->findField(fieldName) : -1;
884 }
885 
887 {
888  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
889  if (basedesc) {
890  if (field < basedesc->getFieldCount())
891  return basedesc->getFieldTypeString(field);
892  field -= basedesc->getFieldCount();
893  }
894  return nullptr;
895 }
896 
898 {
899  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
900  if (basedesc) {
901  if (field < basedesc->getFieldCount())
902  return basedesc->getFieldPropertyNames(field);
903  field -= basedesc->getFieldCount();
904  }
905  switch (field) {
906  default: return nullptr;
907  }
908 }
909 
910 const char *DTCPSendingRateTimerDescriptor::getFieldProperty(int field, const char *propertyname) const
911 {
912  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
913  if (basedesc) {
914  if (field < basedesc->getFieldCount())
915  return basedesc->getFieldProperty(field, propertyname);
916  field -= basedesc->getFieldCount();
917  }
918  switch (field) {
919  default: return nullptr;
920  }
921 }
922 
923 int DTCPSendingRateTimerDescriptor::getFieldArraySize(void *object, int field) const
924 {
925  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
926  if (basedesc) {
927  if (field < basedesc->getFieldCount())
928  return basedesc->getFieldArraySize(object, field);
929  field -= basedesc->getFieldCount();
930  }
931  DTCPSendingRateTimer *pp = (DTCPSendingRateTimer *)object; (void)pp;
932  switch (field) {
933  default: return 0;
934  }
935 }
936 
937 std::string DTCPSendingRateTimerDescriptor::getFieldValueAsString(void *object, int field, int i) const
938 {
939  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
940  if (basedesc) {
941  if (field < basedesc->getFieldCount())
942  return basedesc->getFieldValueAsString(object,field,i);
943  field -= basedesc->getFieldCount();
944  }
945  DTCPSendingRateTimer *pp = (DTCPSendingRateTimer *)object; (void)pp;
946  switch (field) {
947  default: return "";
948  }
949 }
950 
951 bool DTCPSendingRateTimerDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
952 {
953  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
954  if (basedesc) {
955  if (field < basedesc->getFieldCount())
956  return basedesc->setFieldValueAsString(object,field,i,value);
957  field -= basedesc->getFieldCount();
958  }
959  DTCPSendingRateTimer *pp = (DTCPSendingRateTimer *)object; (void)pp;
960  switch (field) {
961  default: return false;
962  }
963 }
964 
966 {
967  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
968  if (basedesc) {
969  if (field < basedesc->getFieldCount())
970  return basedesc->getFieldStructName(field);
971  field -= basedesc->getFieldCount();
972  }
973  return nullptr;
974 }
975 
976 void *DTCPSendingRateTimerDescriptor::getFieldStructValuePointer(void *object, int field, int i) const
977 {
978  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
979  if (basedesc) {
980  if (field < basedesc->getFieldCount())
981  return basedesc->getFieldStructValuePointer(object, field, i);
982  field -= basedesc->getFieldCount();
983  }
984  DTCPSendingRateTimer *pp = (DTCPSendingRateTimer *)object; (void)pp;
985  switch (field) {
986  default: return nullptr;
987  }
988 }
989 
991 
992 DTCPRendezvousTimer::DTCPRendezvousTimer(const char *name, int kind) : ::DTCPTimers(name,kind)
993 {
995 
996  this->seqNum = 0;
997  this->counter = 0;
998 }
999 
1001 {
1002  copy(other);
1003 }
1004 
1006 {
1007 }
1008 
1010 {
1011  if (this==&other) return *this;
1012  ::DTCPTimers::operator=(other);
1013  copy(other);
1014  return *this;
1015 }
1016 
1018 {
1019  this->seqNum = other.seqNum;
1020  this->counter = other.counter;
1021 }
1022 
1023 void DTCPRendezvousTimer::parsimPack(omnetpp::cCommBuffer *b) const
1024 {
1026  doParsimPacking(b,this->seqNum);
1027  doParsimPacking(b,this->counter);
1028 }
1029 
1030 void DTCPRendezvousTimer::parsimUnpack(omnetpp::cCommBuffer *b)
1031 {
1033  doParsimUnpacking(b,this->seqNum);
1034  doParsimUnpacking(b,this->counter);
1035 }
1036 
1038 {
1039  return this->seqNum;
1040 }
1041 
1042 void DTCPRendezvousTimer::setSeqNum(unsigned int seqNum)
1043 {
1044  this->seqNum = seqNum;
1045 }
1046 
1048 {
1049  return this->counter;
1050 }
1051 
1052 void DTCPRendezvousTimer::setCounter(unsigned int counter)
1053 {
1054  this->counter = counter;
1055 }
1056 
1057 class DTCPRendezvousTimerDescriptor : public omnetpp::cClassDescriptor
1058 {
1059  private:
1060  mutable const char **propertynames;
1061  public:
1064 
1065  virtual bool doesSupport(omnetpp::cObject *obj) const override;
1066  virtual const char **getPropertyNames() const override;
1067  virtual const char *getProperty(const char *propertyname) const override;
1068  virtual int getFieldCount() const override;
1069  virtual const char *getFieldName(int field) const override;
1070  virtual int findField(const char *fieldName) const override;
1071  virtual unsigned int getFieldTypeFlags(int field) const override;
1072  virtual const char *getFieldTypeString(int field) const override;
1073  virtual const char **getFieldPropertyNames(int field) const override;
1074  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
1075  virtual int getFieldArraySize(void *object, int field) const override;
1076 
1077  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
1078  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
1079 
1080  virtual const char *getFieldStructName(int field) const override;
1081  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
1082 };
1083 
1085 
1086 DTCPRendezvousTimerDescriptor::DTCPRendezvousTimerDescriptor() : omnetpp::cClassDescriptor("DTCPRendezvousTimer", "DTCPTimers")
1087 {
1088  propertynames = nullptr;
1089 }
1090 
1092 {
1093  delete[] propertynames;
1094 }
1095 
1096 bool DTCPRendezvousTimerDescriptor::doesSupport(omnetpp::cObject *obj) const
1097 {
1098  return dynamic_cast<DTCPRendezvousTimer *>(obj)!=nullptr;
1099 }
1100 
1102 {
1103  if (!propertynames) {
1104  static const char *names[] = { nullptr };
1105  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1106  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
1107  propertynames = mergeLists(basenames, names);
1108  }
1109  return propertynames;
1110 }
1111 
1112 const char *DTCPRendezvousTimerDescriptor::getProperty(const char *propertyname) const
1113 {
1114  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1115  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
1116 }
1117 
1119 {
1120  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1121  return basedesc ? 2+basedesc->getFieldCount() : 2;
1122 }
1123 
1125 {
1126  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1127  if (basedesc) {
1128  if (field < basedesc->getFieldCount())
1129  return basedesc->getFieldTypeFlags(field);
1130  field -= basedesc->getFieldCount();
1131  }
1132  static unsigned int fieldTypeFlags[] = {
1133  FD_ISEDITABLE,
1134  FD_ISEDITABLE,
1135  };
1136  return (field>=0 && field<2) ? fieldTypeFlags[field] : 0;
1137 }
1138 
1140 {
1141  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1142  if (basedesc) {
1143  if (field < basedesc->getFieldCount())
1144  return basedesc->getFieldName(field);
1145  field -= basedesc->getFieldCount();
1146  }
1147  static const char *fieldNames[] = {
1148  "seqNum",
1149  "counter",
1150  };
1151  return (field>=0 && field<2) ? fieldNames[field] : nullptr;
1152 }
1153 
1154 int DTCPRendezvousTimerDescriptor::findField(const char *fieldName) const
1155 {
1156  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1157  int base = basedesc ? basedesc->getFieldCount() : 0;
1158  if (fieldName[0]=='s' && strcmp(fieldName, "seqNum")==0) return base+0;
1159  if (fieldName[0]=='c' && strcmp(fieldName, "counter")==0) return base+1;
1160  return basedesc ? basedesc->findField(fieldName) : -1;
1161 }
1162 
1164 {
1165  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1166  if (basedesc) {
1167  if (field < basedesc->getFieldCount())
1168  return basedesc->getFieldTypeString(field);
1169  field -= basedesc->getFieldCount();
1170  }
1171  static const char *fieldTypeStrings[] = {
1172  "unsigned int",
1173  "unsigned int",
1174  };
1175  return (field>=0 && field<2) ? fieldTypeStrings[field] : nullptr;
1176 }
1177 
1179 {
1180  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1181  if (basedesc) {
1182  if (field < basedesc->getFieldCount())
1183  return basedesc->getFieldPropertyNames(field);
1184  field -= basedesc->getFieldCount();
1185  }
1186  switch (field) {
1187  default: return nullptr;
1188  }
1189 }
1190 
1191 const char *DTCPRendezvousTimerDescriptor::getFieldProperty(int field, const char *propertyname) const
1192 {
1193  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1194  if (basedesc) {
1195  if (field < basedesc->getFieldCount())
1196  return basedesc->getFieldProperty(field, propertyname);
1197  field -= basedesc->getFieldCount();
1198  }
1199  switch (field) {
1200  default: return nullptr;
1201  }
1202 }
1203 
1204 int DTCPRendezvousTimerDescriptor::getFieldArraySize(void *object, int field) const
1205 {
1206  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1207  if (basedesc) {
1208  if (field < basedesc->getFieldCount())
1209  return basedesc->getFieldArraySize(object, field);
1210  field -= basedesc->getFieldCount();
1211  }
1212  DTCPRendezvousTimer *pp = (DTCPRendezvousTimer *)object; (void)pp;
1213  switch (field) {
1214  default: return 0;
1215  }
1216 }
1217 
1218 std::string DTCPRendezvousTimerDescriptor::getFieldValueAsString(void *object, int field, int i) const
1219 {
1220  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1221  if (basedesc) {
1222  if (field < basedesc->getFieldCount())
1223  return basedesc->getFieldValueAsString(object,field,i);
1224  field -= basedesc->getFieldCount();
1225  }
1226  DTCPRendezvousTimer *pp = (DTCPRendezvousTimer *)object; (void)pp;
1227  switch (field) {
1228  case 0: return ulong2string(pp->getSeqNum());
1229  case 1: return ulong2string(pp->getCounter());
1230  default: return "";
1231  }
1232 }
1233 
1234 bool DTCPRendezvousTimerDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
1235 {
1236  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1237  if (basedesc) {
1238  if (field < basedesc->getFieldCount())
1239  return basedesc->setFieldValueAsString(object,field,i,value);
1240  field -= basedesc->getFieldCount();
1241  }
1242  DTCPRendezvousTimer *pp = (DTCPRendezvousTimer *)object; (void)pp;
1243  switch (field) {
1244  case 0: pp->setSeqNum(string2ulong(value)); return true;
1245  case 1: pp->setCounter(string2ulong(value)); return true;
1246  default: return false;
1247  }
1248 }
1249 
1251 {
1252  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1253  if (basedesc) {
1254  if (field < basedesc->getFieldCount())
1255  return basedesc->getFieldStructName(field);
1256  field -= basedesc->getFieldCount();
1257  }
1258  switch (field) {
1259  default: return nullptr;
1260  };
1261 }
1262 
1263 void *DTCPRendezvousTimerDescriptor::getFieldStructValuePointer(void *object, int field, int i) const
1264 {
1265  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1266  if (basedesc) {
1267  if (field < basedesc->getFieldCount())
1268  return basedesc->getFieldStructValuePointer(object, field, i);
1269  field -= basedesc->getFieldCount();
1270  }
1271  DTCPRendezvousTimer *pp = (DTCPRendezvousTimer *)object; (void)pp;
1272  switch (field) {
1273  default: return nullptr;
1274  }
1275 }
1276 
1278 
1280 {
1282 }
1283 
1285 {
1286  copy(other);
1287 }
1288 
1290 {
1291 }
1292 
1294 {
1295  if (this==&other) return *this;
1296  ::DTCPTimers::operator=(other);
1297  copy(other);
1298  return *this;
1299 }
1300 
1302 {
1303 }
1304 
1305 void DTCPReliableControlPDUTimer::parsimPack(omnetpp::cCommBuffer *b) const
1306 {
1308 }
1309 
1310 void DTCPReliableControlPDUTimer::parsimUnpack(omnetpp::cCommBuffer *b)
1311 {
1313 }
1314 
1315 class DTCPReliableControlPDUTimerDescriptor : public omnetpp::cClassDescriptor
1316 {
1317  private:
1318  mutable const char **propertynames;
1319  public:
1322 
1323  virtual bool doesSupport(omnetpp::cObject *obj) const override;
1324  virtual const char **getPropertyNames() const override;
1325  virtual const char *getProperty(const char *propertyname) const override;
1326  virtual int getFieldCount() const override;
1327  virtual const char *getFieldName(int field) const override;
1328  virtual int findField(const char *fieldName) const override;
1329  virtual unsigned int getFieldTypeFlags(int field) const override;
1330  virtual const char *getFieldTypeString(int field) const override;
1331  virtual const char **getFieldPropertyNames(int field) const override;
1332  virtual const char *getFieldProperty(int field, const char *propertyname) const override;
1333  virtual int getFieldArraySize(void *object, int field) const override;
1334 
1335  virtual std::string getFieldValueAsString(void *object, int field, int i) const override;
1336  virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override;
1337 
1338  virtual const char *getFieldStructName(int field) const override;
1339  virtual void *getFieldStructValuePointer(void *object, int field, int i) const override;
1340 };
1341 
1343 
1344 DTCPReliableControlPDUTimerDescriptor::DTCPReliableControlPDUTimerDescriptor() : omnetpp::cClassDescriptor("DTCPReliableControlPDUTimer", "DTCPTimers")
1345 {
1346  propertynames = nullptr;
1347 }
1348 
1350 {
1351  delete[] propertynames;
1352 }
1353 
1355 {
1356  return dynamic_cast<DTCPReliableControlPDUTimer *>(obj)!=nullptr;
1357 }
1358 
1360 {
1361  if (!propertynames) {
1362  static const char *names[] = { nullptr };
1363  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1364  const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr;
1365  propertynames = mergeLists(basenames, names);
1366  }
1367  return propertynames;
1368 }
1369 
1370 const char *DTCPReliableControlPDUTimerDescriptor::getProperty(const char *propertyname) const
1371 {
1372  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1373  return basedesc ? basedesc->getProperty(propertyname) : nullptr;
1374 }
1375 
1377 {
1378  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1379  return basedesc ? 0+basedesc->getFieldCount() : 0;
1380 }
1381 
1383 {
1384  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1385  if (basedesc) {
1386  if (field < basedesc->getFieldCount())
1387  return basedesc->getFieldTypeFlags(field);
1388  field -= basedesc->getFieldCount();
1389  }
1390  return 0;
1391 }
1392 
1394 {
1395  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1396  if (basedesc) {
1397  if (field < basedesc->getFieldCount())
1398  return basedesc->getFieldName(field);
1399  field -= basedesc->getFieldCount();
1400  }
1401  return nullptr;
1402 }
1403 
1405 {
1406  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1407  return basedesc ? basedesc->findField(fieldName) : -1;
1408 }
1409 
1411 {
1412  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1413  if (basedesc) {
1414  if (field < basedesc->getFieldCount())
1415  return basedesc->getFieldTypeString(field);
1416  field -= basedesc->getFieldCount();
1417  }
1418  return nullptr;
1419 }
1420 
1422 {
1423  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1424  if (basedesc) {
1425  if (field < basedesc->getFieldCount())
1426  return basedesc->getFieldPropertyNames(field);
1427  field -= basedesc->getFieldCount();
1428  }
1429  switch (field) {
1430  default: return nullptr;
1431  }
1432 }
1433 
1434 const char *DTCPReliableControlPDUTimerDescriptor::getFieldProperty(int field, const char *propertyname) const
1435 {
1436  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1437  if (basedesc) {
1438  if (field < basedesc->getFieldCount())
1439  return basedesc->getFieldProperty(field, propertyname);
1440  field -= basedesc->getFieldCount();
1441  }
1442  switch (field) {
1443  default: return nullptr;
1444  }
1445 }
1446 
1448 {
1449  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1450  if (basedesc) {
1451  if (field < basedesc->getFieldCount())
1452  return basedesc->getFieldArraySize(object, field);
1453  field -= basedesc->getFieldCount();
1454  }
1455  DTCPReliableControlPDUTimer *pp = (DTCPReliableControlPDUTimer *)object; (void)pp;
1456  switch (field) {
1457  default: return 0;
1458  }
1459 }
1460 
1461 std::string DTCPReliableControlPDUTimerDescriptor::getFieldValueAsString(void *object, int field, int i) const
1462 {
1463  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1464  if (basedesc) {
1465  if (field < basedesc->getFieldCount())
1466  return basedesc->getFieldValueAsString(object,field,i);
1467  field -= basedesc->getFieldCount();
1468  }
1469  DTCPReliableControlPDUTimer *pp = (DTCPReliableControlPDUTimer *)object; (void)pp;
1470  switch (field) {
1471  default: return "";
1472  }
1473 }
1474 
1475 bool DTCPReliableControlPDUTimerDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const
1476 {
1477  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1478  if (basedesc) {
1479  if (field < basedesc->getFieldCount())
1480  return basedesc->setFieldValueAsString(object,field,i,value);
1481  field -= basedesc->getFieldCount();
1482  }
1483  DTCPReliableControlPDUTimer *pp = (DTCPReliableControlPDUTimer *)object; (void)pp;
1484  switch (field) {
1485  default: return false;
1486  }
1487 }
1488 
1490 {
1491  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1492  if (basedesc) {
1493  if (field < basedesc->getFieldCount())
1494  return basedesc->getFieldStructName(field);
1495  field -= basedesc->getFieldCount();
1496  }
1497  return nullptr;
1498 }
1499 
1501 {
1502  omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor();
1503  if (basedesc) {
1504  if (field < basedesc->getFieldCount())
1505  return basedesc->getFieldStructValuePointer(object, field, i);
1506  field -= basedesc->getFieldCount();
1507  }
1508  DTCPReliableControlPDUTimer *pp = (DTCPReliableControlPDUTimer *)object; (void)pp;
1509  switch (field) {
1510  default: return nullptr;
1511  }
1512 }
1513 
1514 
virtual const char * getFieldTypeString(int field) const override
virtual const char * getFieldTypeString(int field) const override
virtual const char ** getFieldPropertyNames(int field) const override
virtual int getFieldCount() const override
Register_ClassDescriptor(DTCPTimersDescriptor)
virtual const char * getFieldName(int field) const override
virtual int getFieldArraySize(void *object, int field) const override
virtual ~DTCPRxExpiryTimer()
virtual const char ** getFieldPropertyNames(int field) const override
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
virtual void parsimPack(omnetpp::cCommBuffer *b) const
virtual int getType() const
virtual unsigned int getFieldTypeFlags(int field) const override
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
virtual void parsimPack(omnetpp::cCommBuffer *b) const
virtual const char * getFieldTypeString(int field) const override
virtual ~DTCPRendezvousTimer()
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
virtual const char ** getPropertyNames() const override
DTCPTimerType
Definition: DTCPTimers_m.h:37
virtual unsigned int getSeqNum() const
DTCPTimers(const char *name=nullptr, int kind=0)
virtual const char ** getPropertyNames() const override
virtual const char * getProperty(const char *propertyname) const override
virtual const char * getFieldName(int field) const override
EXECUTE_ON_STARTUP(omnetpp::cEnum *e=omnetpp::cEnum::find("DTCPTimerType");if(!e) omnetpp::enums.getInstance() ->add(e=new omnetpp::cEnum("DTCPTimerType"));e->insert(DTCP_RX_EXPIRY_TIMER,"DTCP_RX_EXPIRY_TIMER");e->insert(DTCP_SENDING_RATE_TIMER,"DTCP_SENDING_RATE_TIMER");e->insert(DTCP_RENDEZVOUS_TIMER,"DTCP_RENDEZVOUS_TIMER");e->insert(DTCP_REL_C_PDU_TIMER,"DTCP_REL_C_PDU_TIMER");)
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
void copy(const DTCPRendezvousTimer &other)
virtual const char * getFieldStructName(int field) const override
DTCPSendingRateTimer(const char *name=nullptr, int kind=0)
unsigned int expiryCount
Definition: DTCPTimers_m.h:102
virtual const char * getFieldProperty(int field, const char *propertyname) const override
virtual int getFieldArraySize(void *object, int field) const override
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
virtual int getFieldArraySize(void *object, int field) const override
void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::vector< T, A > &v)
Definition: PDU_m.cc:22
virtual double getSent() const
virtual const char * getFieldTypeString(int field) const override
virtual int getFieldArraySize(void *object, int field) const override
virtual unsigned int getFieldTypeFlags(int field) const override
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
virtual const char * getFieldName(int field) const override
virtual int getFieldCount() const override
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
virtual void setPdu(const DTPDU_p &pdu)
virtual const char * getProperty(const char *propertyname) const override
virtual DTPDU_p & getPdu()
virtual void setSent(double sent)
DTCPReliableControlPDUTimer & operator=(const DTCPReliableControlPDUTimer &other)
virtual int findField(const char *fieldName) const override
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::vector< T, A > &v)
Definition: PDU_m.cc:31
virtual const char ** getPropertyNames() const override
virtual bool doesSupport(omnetpp::cObject *obj) const override
void copy(const DTCPTimers &other)
virtual unsigned int getFieldTypeFlags(int field) const override
virtual const char * getFieldProperty(int field, const char *propertyname) const override
DTCPSendingRateTimer & operator=(const DTCPSendingRateTimer &other)
void doParsimArrayUnpacking(omnetpp::cCommBuffer *b, T *t, int n)
Definition: PDU_m.cc:114
virtual void parsimPack(omnetpp::cCommBuffer *b) const
virtual int findField(const char *fieldName) const override
void copy(const DTCPReliableControlPDUTimer &other)
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
virtual const char * getFieldProperty(int field, const char *propertyname) const override
virtual const char ** getFieldPropertyNames(int field) const override
virtual const char * getFieldStructName(int field) const override
virtual const char * getFieldName(int field) const override
virtual unsigned int getFieldTypeFlags(int field) const override
virtual void setType(int type)
DTCPRxExpiryTimer(const char *name=nullptr, int kind=0)
virtual int getFieldArraySize(void *object, int field) const override
virtual const char ** getFieldPropertyNames(int field) const override
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
virtual unsigned int getFieldTypeFlags(int field) const override
DTCPTimers & operator=(const DTCPTimers &other)
virtual int getFieldCount() const override
virtual int getFieldCount() const override
virtual ~DTCPTimers()
virtual const char * getFieldStructName(int field) const override
virtual const char * getFieldProperty(int field, const char *propertyname) const override
DTCPRendezvousTimer(const char *name=nullptr, int kind=0)
virtual void setCounter(unsigned int counter)
virtual unsigned int getCounter() const
virtual const char ** getPropertyNames() const override
virtual bool doesSupport(omnetpp::cObject *obj) const override
virtual const char * getFieldProperty(int field, const char *propertyname) const override
const char ** propertynames
Definition: PDU_m.cc:15
virtual ~DTCPTimersDescriptor()
virtual const char * getFieldTypeString(int field) const override
void copy(const DTCPRxExpiryTimer &other)
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
unsigned int seqNum
Definition: DTCPTimers_m.h:184
virtual bool doesSupport(omnetpp::cObject *obj) const override
virtual ~DTCPSendingRateTimer()
virtual unsigned int getExpiryCount() const
DTCPReliableControlPDUTimer(const char *name=nullptr, int kind=0)
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
unsigned int counter
Definition: DTCPTimers_m.h:185
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
virtual const char ** getFieldPropertyNames(int field) const override
virtual void setExpiryCount(unsigned int expiryCount)
virtual int findField(const char *fieldName) const override
virtual const char * getFieldStructName(int field) const override
DTCPRxExpiryTimer & operator=(const DTCPRxExpiryTimer &other)
virtual int getFieldCount() const override
virtual bool doesSupport(omnetpp::cObject *obj) const override
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
virtual const char * getProperty(const char *propertyname) const override
virtual const char ** getPropertyNames() const override
virtual const char * getFieldStructName(int field) const override
virtual void parsimPack(omnetpp::cCommBuffer *b) const
std::ostream & operator<<(std::ostream &out, const std::vector< T, A > &vec)
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
virtual void parsimPack(omnetpp::cCommBuffer *b) const
virtual void setSeqNum(unsigned int seqNum)
virtual const char * getProperty(const char *propertyname) const override
virtual const char * getFieldName(int field) const override
virtual void * getFieldStructValuePointer(void *object, int field, int i) const override
virtual void parsimUnpack(omnetpp::cCommBuffer *b)
virtual int findField(const char *fieldName) const override
Register_Class(DTCPTimers)
virtual int findField(const char *fieldName) const override
virtual bool doesSupport(omnetpp::cObject *obj) const override
virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override
virtual std::string getFieldValueAsString(void *object, int field, int i) const override
virtual const char * getProperty(const char *propertyname) const override
void copy(const DTCPSendingRateTimer &other)
DTCPRendezvousTimer & operator=(const DTCPRendezvousTimer &other)
void doParsimArrayPacking(omnetpp::cCommBuffer *b, const T *t, int n)
Definition: PDU_m.cc:107