// // Generated file, do not edit! Created by nedtool 5.4 from DynaPacket.msg. // // Disable warnings about unused variables, empty switch stmts, etc: #ifdef _MSC_VER # pragma warning(disable:4101) # pragma warning(disable:4065) #endif #if defined(__clang__) # pragma clang diagnostic ignored "-Wshadow" # pragma clang diagnostic ignored "-Wconversion" # pragma clang diagnostic ignored "-Wunused-parameter" # pragma clang diagnostic ignored "-Wc++98-compat" # pragma clang diagnostic ignored "-Wunreachable-code-break" # pragma clang diagnostic ignored "-Wold-style-cast" #elif defined(__GNUC__) # pragma GCC diagnostic ignored "-Wshadow" # pragma GCC diagnostic ignored "-Wconversion" # pragma GCC diagnostic ignored "-Wunused-parameter" # pragma GCC diagnostic ignored "-Wold-style-cast" # pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn" # pragma GCC diagnostic ignored "-Wfloat-conversion" #endif #include #include #include #include "DynaPacket_m.h" namespace omnetpp { // Template pack/unpack rules. They are declared *after* a1l type-specific pack functions for multiple reasons. // They are in the omnetpp namespace, to allow them to be found by argument-dependent lookup via the cCommBuffer argument // Packing/unpacking an std::vector template void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::vector& v) { int n = v.size(); doParsimPacking(buffer, n); for (int i = 0; i < n; i++) doParsimPacking(buffer, v[i]); } template void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::vector& v) { int n; doParsimUnpacking(buffer, n); v.resize(n); for (int i = 0; i < n; i++) doParsimUnpacking(buffer, v[i]); } // Packing/unpacking an std::list template void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::list& l) { doParsimPacking(buffer, (int)l.size()); for (typename std::list::const_iterator it = l.begin(); it != l.end(); ++it) doParsimPacking(buffer, (T&)*it); } template void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::list& l) { int n; doParsimUnpacking(buffer, n); for (int i = 0; i < n; i++) { l.push_back(T()); doParsimUnpacking(buffer, l.back()); } } // Packing/unpacking an std::set template void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::set& s) { doParsimPacking(buffer, (int)s.size()); for (typename std::set::const_iterator it = s.begin(); it != s.end(); ++it) doParsimPacking(buffer, *it); } template void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::set& s) { int n; doParsimUnpacking(buffer, n); for (int i = 0; i < n; i++) { T x; doParsimUnpacking(buffer, x); s.insert(x); } } // Packing/unpacking an std::map template void doParsimPacking(omnetpp::cCommBuffer *buffer, const std::map& m) { doParsimPacking(buffer, (int)m.size()); for (typename std::map::const_iterator it = m.begin(); it != m.end(); ++it) { doParsimPacking(buffer, it->first); doParsimPacking(buffer, it->second); } } template void doParsimUnpacking(omnetpp::cCommBuffer *buffer, std::map& m) { int n; doParsimUnpacking(buffer, n); for (int i = 0; i < n; i++) { K k; V v; doParsimUnpacking(buffer, k); doParsimUnpacking(buffer, v); m[k] = v; } } // Default pack/unpack function for arrays template void doParsimArrayPacking(omnetpp::cCommBuffer *b, const T *t, int n) { for (int i = 0; i < n; i++) doParsimPacking(b, t[i]); } template void doParsimArrayUnpacking(omnetpp::cCommBuffer *b, T *t, int n) { for (int i = 0; i < n; i++) doParsimUnpacking(b, t[i]); } // Default rule to prevent compiler from choosing base class' doParsimPacking() function template void doParsimPacking(omnetpp::cCommBuffer *, const T& t) { throw omnetpp::cRuntimeError("Parsim error: No doParsimPacking() function for type %s", omnetpp::opp_typename(typeid(t))); } template void doParsimUnpacking(omnetpp::cCommBuffer *, T& t) { throw omnetpp::cRuntimeError("Parsim error: No doParsimUnpacking() function for type %s", omnetpp::opp_typename(typeid(t))); } } // namespace omnetpp namespace { template inline typename std::enable_if::value && std::is_base_of::value, void *>::type toVoidPtr(T* t) { return (void *)(static_cast(t)); } template inline typename std::enable_if::value && !std::is_base_of::value, void *>::type toVoidPtr(T* t) { return (void *)dynamic_cast(t); } template inline typename std::enable_if::value, void *>::type toVoidPtr(T* t) { return (void *)static_cast(t); } } // forward template std::ostream& operator<<(std::ostream& out, const std::vector& vec); // Template rule to generate operator<< for shared_ptr template inline std::ostream& operator<<(std::ostream& out,const std::shared_ptr& t) { return out << t.get(); } // Template rule which fires if a struct or class doesn't have operator<< template inline std::ostream& operator<<(std::ostream& out,const T&) {return out;} // operator<< for std::vector template inline std::ostream& operator<<(std::ostream& out, const std::vector& vec) { out.put('{'); for(typename std::vector::const_iterator it = vec.begin(); it != vec.end(); ++it) { if (it != vec.begin()) { out.put(','); out.put(' '); } out << *it; } out.put('}'); char buf[32]; sprintf(buf, " (size=%u)", (unsigned int)vec.size()); out.write(buf, strlen(buf)); return out; } EXECUTE_ON_STARTUP( omnetpp::cEnum *e = omnetpp::cEnum::find("DynaPacketType"); if (!e) omnetpp::enums.getInstance()->add(e = new omnetpp::cEnum("DynaPacketType")); e->insert(DYNA_CONN_REQ, "DYNA_CONN_REQ"); e->insert(DYNA_CONN_ACK, "DYNA_CONN_ACK"); e->insert(DYNA_DISC_REQ, "DYNA_DISC_REQ"); e->insert(DYNA_DISC_ACK, "DYNA_DISC_ACK"); e->insert(DYNA_DATA, "DYNA_DATA"); ) Register_Class(DynaPacket) DynaPacket::DynaPacket(const char *name, short kind) : ::omnetpp::cPacket(name, kind) { } DynaPacket::DynaPacket(const DynaPacket& other) : ::omnetpp::cPacket(other) { copy(other); } DynaPacket::~DynaPacket() { } DynaPacket& DynaPacket::operator=(const DynaPacket& other) { if (this == &other) return *this; ::omnetpp::cPacket::operator=(other); copy(other); return *this; } void DynaPacket::copy(const DynaPacket& other) { this->srcAddress = other.srcAddress; this->destAddress = other.destAddress; this->serverProcId = other.serverProcId; } void DynaPacket::parsimPack(omnetpp::cCommBuffer *b) const { ::omnetpp::cPacket::parsimPack(b); doParsimPacking(b,this->srcAddress); doParsimPacking(b,this->destAddress); doParsimPacking(b,this->serverProcId); } void DynaPacket::parsimUnpack(omnetpp::cCommBuffer *b) { ::omnetpp::cPacket::parsimUnpack(b); doParsimUnpacking(b,this->srcAddress); doParsimUnpacking(b,this->destAddress); doParsimUnpacking(b,this->serverProcId); } int DynaPacket::getSrcAddress() const { return this->srcAddress; } void DynaPacket::setSrcAddress(int srcAddress) { this->srcAddress = srcAddress; } int DynaPacket::getDestAddress() const { return this->destAddress; } void DynaPacket::setDestAddress(int destAddress) { this->destAddress = destAddress; } int DynaPacket::getServerProcId() const { return this->serverProcId; } void DynaPacket::setServerProcId(int serverProcId) { this->serverProcId = serverProcId; } class DynaPacketDescriptor : public omnetpp::cClassDescriptor { private: mutable const char **propertynames; enum FieldConstants { FIELD_srcAddress, FIELD_destAddress, FIELD_serverProcId, }; public: DynaPacketDescriptor(); virtual ~DynaPacketDescriptor(); virtual bool doesSupport(omnetpp::cObject *obj) const override; virtual const char **getPropertyNames() const override; virtual const char *getProperty(const char *propertyname) const override; virtual int getFieldCount() const override; virtual const char *getFieldName(int field) const override; virtual int findField(const char *fieldName) const override; virtual unsigned int getFieldTypeFlags(int field) const override; virtual const char *getFieldTypeString(int field) const override; virtual const char **getFieldPropertyNames(int field) const override; virtual const char *getFieldProperty(int field, const char *propertyname) const override; virtual int getFieldArraySize(void *object, int field) const override; virtual const char *getFieldDynamicTypeString(void *object, int field, int i) const override; virtual std::string getFieldValueAsString(void *object, int field, int i) const override; virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override; virtual const char *getFieldStructName(int field) const override; virtual void *getFieldStructValuePointer(void *object, int field, int i) const override; }; Register_ClassDescriptor(DynaPacketDescriptor) DynaPacketDescriptor::DynaPacketDescriptor() : omnetpp::cClassDescriptor(omnetpp::opp_typename(typeid(DynaPacket)), "omnetpp::cPacket") { propertynames = nullptr; } DynaPacketDescriptor::~DynaPacketDescriptor() { delete[] propertynames; } bool DynaPacketDescriptor::doesSupport(omnetpp::cObject *obj) const { return dynamic_cast(obj)!=nullptr; } const char **DynaPacketDescriptor::getPropertyNames() const { if (!propertynames) { static const char *names[] = { nullptr }; omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr; propertynames = mergeLists(basenames, names); } return propertynames; } const char *DynaPacketDescriptor::getProperty(const char *propertyname) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); return basedesc ? basedesc->getProperty(propertyname) : nullptr; } int DynaPacketDescriptor::getFieldCount() const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); return basedesc ? 3+basedesc->getFieldCount() : 3; } unsigned int DynaPacketDescriptor::getFieldTypeFlags(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldTypeFlags(field); field -= basedesc->getFieldCount(); } static unsigned int fieldTypeFlags[] = { FD_ISEDITABLE, // FIELD_srcAddress FD_ISEDITABLE, // FIELD_destAddress FD_ISEDITABLE, // FIELD_serverProcId }; return (field >= 0 && field < 3) ? fieldTypeFlags[field] : 0; } const char *DynaPacketDescriptor::getFieldName(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldName(field); field -= basedesc->getFieldCount(); } static const char *fieldNames[] = { "srcAddress", "destAddress", "serverProcId", }; return (field >= 0 && field < 3) ? fieldNames[field] : nullptr; } int DynaPacketDescriptor::findField(const char *fieldName) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); int base = basedesc ? basedesc->getFieldCount() : 0; if (fieldName[0] == 's' && strcmp(fieldName, "srcAddress") == 0) return base+0; if (fieldName[0] == 'd' && strcmp(fieldName, "destAddress") == 0) return base+1; if (fieldName[0] == 's' && strcmp(fieldName, "serverProcId") == 0) return base+2; return basedesc ? basedesc->findField(fieldName) : -1; } const char *DynaPacketDescriptor::getFieldTypeString(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldTypeString(field); field -= basedesc->getFieldCount(); } static const char *fieldTypeStrings[] = { "int", // FIELD_srcAddress "int", // FIELD_destAddress "int", // FIELD_serverProcId }; return (field >= 0 && field < 3) ? fieldTypeStrings[field] : nullptr; } const char **DynaPacketDescriptor::getFieldPropertyNames(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldPropertyNames(field); field -= basedesc->getFieldCount(); } switch (field) { default: return nullptr; } } const char *DynaPacketDescriptor::getFieldProperty(int field, const char *propertyname) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldProperty(field, propertyname); field -= basedesc->getFieldCount(); } switch (field) { default: return nullptr; } } int DynaPacketDescriptor::getFieldArraySize(void *object, int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldArraySize(object, field); field -= basedesc->getFieldCount(); } DynaPacket *pp = (DynaPacket *)object; (void)pp; switch (field) { default: return 0; } } const char *DynaPacketDescriptor::getFieldDynamicTypeString(void *object, int field, int i) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldDynamicTypeString(object,field,i); field -= basedesc->getFieldCount(); } DynaPacket *pp = (DynaPacket *)object; (void)pp; switch (field) { default: return nullptr; } } std::string DynaPacketDescriptor::getFieldValueAsString(void *object, int field, int i) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldValueAsString(object,field,i); field -= basedesc->getFieldCount(); } DynaPacket *pp = (DynaPacket *)object; (void)pp; switch (field) { case FIELD_srcAddress: return long2string(pp->getSrcAddress()); case FIELD_destAddress: return long2string(pp->getDestAddress()); case FIELD_serverProcId: return long2string(pp->getServerProcId()); default: return ""; } } bool DynaPacketDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->setFieldValueAsString(object,field,i,value); field -= basedesc->getFieldCount(); } DynaPacket *pp = (DynaPacket *)object; (void)pp; switch (field) { case FIELD_srcAddress: pp->setSrcAddress(string2long(value)); return true; case FIELD_destAddress: pp->setDestAddress(string2long(value)); return true; case FIELD_serverProcId: pp->setServerProcId(string2long(value)); return true; default: return false; } } const char *DynaPacketDescriptor::getFieldStructName(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldStructName(field); field -= basedesc->getFieldCount(); } switch (field) { default: return nullptr; }; } void *DynaPacketDescriptor::getFieldStructValuePointer(void *object, int field, int i) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldStructValuePointer(object, field, i); field -= basedesc->getFieldCount(); } DynaPacket *pp = (DynaPacket *)object; (void)pp; switch (field) { default: return nullptr; } } Register_Class(DynaDataPacket) DynaDataPacket::DynaDataPacket(const char *name, short kind) : ::DynaPacket(name, kind) { } DynaDataPacket::DynaDataPacket(const DynaDataPacket& other) : ::DynaPacket(other) { copy(other); } DynaDataPacket::~DynaDataPacket() { } DynaDataPacket& DynaDataPacket::operator=(const DynaDataPacket& other) { if (this == &other) return *this; ::DynaPacket::operator=(other); copy(other); return *this; } void DynaDataPacket::copy(const DynaDataPacket& other) { this->payload = other.payload; } void DynaDataPacket::parsimPack(omnetpp::cCommBuffer *b) const { ::DynaPacket::parsimPack(b); doParsimPacking(b,this->payload); } void DynaDataPacket::parsimUnpack(omnetpp::cCommBuffer *b) { ::DynaPacket::parsimUnpack(b); doParsimUnpacking(b,this->payload); } const char * DynaDataPacket::getPayload() const { return this->payload.c_str(); } void DynaDataPacket::setPayload(const char * payload) { this->payload = payload; } class DynaDataPacketDescriptor : public omnetpp::cClassDescriptor { private: mutable const char **propertynames; enum FieldConstants { FIELD_payload, }; public: DynaDataPacketDescriptor(); virtual ~DynaDataPacketDescriptor(); virtual bool doesSupport(omnetpp::cObject *obj) const override; virtual const char **getPropertyNames() const override; virtual const char *getProperty(const char *propertyname) const override; virtual int getFieldCount() const override; virtual const char *getFieldName(int field) const override; virtual int findField(const char *fieldName) const override; virtual unsigned int getFieldTypeFlags(int field) const override; virtual const char *getFieldTypeString(int field) const override; virtual const char **getFieldPropertyNames(int field) const override; virtual const char *getFieldProperty(int field, const char *propertyname) const override; virtual int getFieldArraySize(void *object, int field) const override; virtual const char *getFieldDynamicTypeString(void *object, int field, int i) const override; virtual std::string getFieldValueAsString(void *object, int field, int i) const override; virtual bool setFieldValueAsString(void *object, int field, int i, const char *value) const override; virtual const char *getFieldStructName(int field) const override; virtual void *getFieldStructValuePointer(void *object, int field, int i) const override; }; Register_ClassDescriptor(DynaDataPacketDescriptor) DynaDataPacketDescriptor::DynaDataPacketDescriptor() : omnetpp::cClassDescriptor(omnetpp::opp_typename(typeid(DynaDataPacket)), "DynaPacket") { propertynames = nullptr; } DynaDataPacketDescriptor::~DynaDataPacketDescriptor() { delete[] propertynames; } bool DynaDataPacketDescriptor::doesSupport(omnetpp::cObject *obj) const { return dynamic_cast(obj)!=nullptr; } const char **DynaDataPacketDescriptor::getPropertyNames() const { if (!propertynames) { static const char *names[] = { nullptr }; omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); const char **basenames = basedesc ? basedesc->getPropertyNames() : nullptr; propertynames = mergeLists(basenames, names); } return propertynames; } const char *DynaDataPacketDescriptor::getProperty(const char *propertyname) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); return basedesc ? basedesc->getProperty(propertyname) : nullptr; } int DynaDataPacketDescriptor::getFieldCount() const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); return basedesc ? 1+basedesc->getFieldCount() : 1; } unsigned int DynaDataPacketDescriptor::getFieldTypeFlags(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldTypeFlags(field); field -= basedesc->getFieldCount(); } static unsigned int fieldTypeFlags[] = { FD_ISEDITABLE, // FIELD_payload }; return (field >= 0 && field < 1) ? fieldTypeFlags[field] : 0; } const char *DynaDataPacketDescriptor::getFieldName(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldName(field); field -= basedesc->getFieldCount(); } static const char *fieldNames[] = { "payload", }; return (field >= 0 && field < 1) ? fieldNames[field] : nullptr; } int DynaDataPacketDescriptor::findField(const char *fieldName) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); int base = basedesc ? basedesc->getFieldCount() : 0; if (fieldName[0] == 'p' && strcmp(fieldName, "payload") == 0) return base+0; return basedesc ? basedesc->findField(fieldName) : -1; } const char *DynaDataPacketDescriptor::getFieldTypeString(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldTypeString(field); field -= basedesc->getFieldCount(); } static const char *fieldTypeStrings[] = { "string", // FIELD_payload }; return (field >= 0 && field < 1) ? fieldTypeStrings[field] : nullptr; } const char **DynaDataPacketDescriptor::getFieldPropertyNames(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldPropertyNames(field); field -= basedesc->getFieldCount(); } switch (field) { default: return nullptr; } } const char *DynaDataPacketDescriptor::getFieldProperty(int field, const char *propertyname) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldProperty(field, propertyname); field -= basedesc->getFieldCount(); } switch (field) { default: return nullptr; } } int DynaDataPacketDescriptor::getFieldArraySize(void *object, int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldArraySize(object, field); field -= basedesc->getFieldCount(); } DynaDataPacket *pp = (DynaDataPacket *)object; (void)pp; switch (field) { default: return 0; } } const char *DynaDataPacketDescriptor::getFieldDynamicTypeString(void *object, int field, int i) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldDynamicTypeString(object,field,i); field -= basedesc->getFieldCount(); } DynaDataPacket *pp = (DynaDataPacket *)object; (void)pp; switch (field) { default: return nullptr; } } std::string DynaDataPacketDescriptor::getFieldValueAsString(void *object, int field, int i) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldValueAsString(object,field,i); field -= basedesc->getFieldCount(); } DynaDataPacket *pp = (DynaDataPacket *)object; (void)pp; switch (field) { case FIELD_payload: return oppstring2string(pp->getPayload()); default: return ""; } } bool DynaDataPacketDescriptor::setFieldValueAsString(void *object, int field, int i, const char *value) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->setFieldValueAsString(object,field,i,value); field -= basedesc->getFieldCount(); } DynaDataPacket *pp = (DynaDataPacket *)object; (void)pp; switch (field) { case FIELD_payload: pp->setPayload((value)); return true; default: return false; } } const char *DynaDataPacketDescriptor::getFieldStructName(int field) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldStructName(field); field -= basedesc->getFieldCount(); } switch (field) { default: return nullptr; }; } void *DynaDataPacketDescriptor::getFieldStructValuePointer(void *object, int field, int i) const { omnetpp::cClassDescriptor *basedesc = getBaseClassDescriptor(); if (basedesc) { if (field < basedesc->getFieldCount()) return basedesc->getFieldStructValuePointer(object, field, i); field -= basedesc->getFieldCount(); } DynaDataPacket *pp = (DynaDataPacket *)object; (void)pp; switch (field) { default: return nullptr; } }