INET Framework for OMNeT++/OMNEST
ICMPMessage_m.h
Go to the documentation of this file.
00001 //
00002 // Generated file, do not edit! Created by opp_msgc 4.2 from networklayer/ipv4/ICMPMessage.msg.
00003 //
00004 
00005 #ifndef _ICMPMESSAGE_M_H_
00006 #define _ICMPMESSAGE_M_H_
00007 
00008 #include <omnetpp.h>
00009 
00010 // opp_msgc version check
00011 #define MSGC_VERSION 0x0402
00012 #if (MSGC_VERSION!=OMNETPP_VERSION)
00013 #    error Version mismatch! Probably this file was generated by an earlier version of opp_msgc: 'make clean' should help.
00014 #endif
00015 
00016 // cplusplus {{
00017 #include "INETDefs.h"
00018 // }}
00019 
00020 // cplusplus {{
00021 typedef int ICMPCode;
00022 
00023 
00024 
00025 
00026 enum ICMPDestinationUnreachableCodes
00027 {
00028     ICMP_DU_NETWORK_UNREACHABLE =                      0,
00029     ICMP_DU_HOST_UNREACHABLE =                         1,
00030     ICMP_DU_PROTOCOL_UNREACHABLE =                     2,
00031     ICMP_DU_PORT_UNREACHABLE =                         3,
00032     ICMP_DU_FRAGMENTATION_NEEDED =                     4,
00033     ICMP_DU_SOURCE_ROUTE_FAILED =                      5,
00034     ICMP_DU_DESTINATION_NETWORK_UNKNOWN =              6,
00035     ICMP_DU_DESTINATION_HOST_UNKNOWN =                 7,
00036     ICMP_DU_SOURCE_HOST_ISOLATED =                     8,
00037     ICMP_DU_NETWORK_PROHIBITED =                       9,
00038     ICMP_DU_HOST_PROHIBITED =                         10,
00039     ICMP_DU_NETWORK_UNREACHABLE_FOR_TYPE_OF_SERVICE = 11,
00040     ICMP_DU_HOST_UNREACHABLE_FOR_TYPE_OF_SERVICE =    12,
00041     ICMP_DU_COMMUNICATION_PROHIBITED =                13,
00042     ICMP_DU_HOST_PRECEDENCE_VIOLATION =               14,
00043     ICMP_DU_PRECEDENCE_CUTOFF_IN_EFFECT =             15,
00044     ICMP_AODV_QUEUE_FULL =                            16
00045 };
00046 // }}
00047 
00048 
00049 
00068 enum ICMPType {
00069     ICMP_DESTINATION_UNREACHABLE = 13,
00070     ICMP_REDIRECT = 5,
00071     ICMP_TIME_EXCEEDED = 11,
00072     ICMP_PARAMETER_PROBLEM = 12,
00073     ICMP_ECHO_REQUEST = 128,
00074     ICMP_ECHO_REPLY = 129,
00075     ICMP_TIMESTAMP_REQUEST = 130,
00076     ICMP_TIMESTAMP_REPLY = 131
00077 };
00078 
00089 class ICMPMessage : public ::cPacket
00090 {
00091   protected:
00092     int type_var;
00093     int code_var;
00094 
00095   private:
00096     void copy(const ICMPMessage& other);
00097 
00098   protected:
00099     // protected and unimplemented operator==(), to prevent accidental usage
00100     bool operator==(const ICMPMessage&);
00101 
00102   public:
00103     ICMPMessage(const char *name=NULL, int kind=0);
00104     ICMPMessage(const ICMPMessage& other);
00105     virtual ~ICMPMessage();
00106     ICMPMessage& operator=(const ICMPMessage& other);
00107     virtual ICMPMessage *dup() const {return new ICMPMessage(*this);}
00108     virtual void parsimPack(cCommBuffer *b);
00109     virtual void parsimUnpack(cCommBuffer *b);
00110 
00111     // field getter/setter methods
00112     virtual int getType() const;
00113     virtual void setType(int type);
00114     virtual int getCode() const;
00115     virtual void setCode(int code);
00116 };
00117 
00118 inline void doPacking(cCommBuffer *b, ICMPMessage& obj) {obj.parsimPack(b);}
00119 inline void doUnpacking(cCommBuffer *b, ICMPMessage& obj) {obj.parsimUnpack(b);}
00120 
00121 
00122 #endif // _ICMPMESSAGE_M_H_