//
// Generated file, do not edit! Created by opp_msgc 4.1 from src/node/communication/routing/RoutingPacket.msg.
//

#ifndef _ROUTINGPACKET_M_H_
#define _ROUTINGPACKET_M_H_

#include <omnetpp.h>

// opp_msgc version check
#define MSGC_VERSION 0x0401
#if (MSGC_VERSION!=OMNETPP_VERSION)
#    error Version mismatch! Probably this file was generated by an earlier version of opp_msgc: 'make clean' should help.
#endif



/**
 * Struct generated from src/node/communication/routing/RoutingPacket.msg by opp_msgc.
 */
struct NetMacInfoExchange_type
{
    NetMacInfoExchange_type();
    double RSSI;
    double LQI;
    int nextHop;
    int lastHop;
};

void doPacking(cCommBuffer *b, NetMacInfoExchange_type& a);
void doUnpacking(cCommBuffer *b, NetMacInfoExchange_type& a);

/**
 * Class generated from <tt>src/node/communication/routing/RoutingPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet RoutingPacket {
 * 	NetMacInfoExchange_type netMacInfoExchange;
 * 	
 * 	string source;
 * 	string destination;
 * 	string primaryPath;
 * 	string alternativePath;
 * 	int hopCount;
 * 	int idVideo;
 * 	int round;
 * 	unsigned int sequenceNumber; 
 * }
 * </pre>
 */
class RoutingPacket : public ::cPacket
{
  protected:
    ::NetMacInfoExchange_type netMacInfoExchange_var;
    opp_string source_var;
    opp_string destination_var;
    opp_string primaryPath_var;
    opp_string alternativePath_var;
    int hopCount_var;
    int idVideo_var;
    int round_var;
    unsigned int sequenceNumber_var;

    // protected and unimplemented operator==(), to prevent accidental usage
    bool operator==(const RoutingPacket&);

  public:
    RoutingPacket(const char *name=NULL, int kind=0);
    RoutingPacket(const RoutingPacket& other);
    virtual ~RoutingPacket();
    RoutingPacket& operator=(const RoutingPacket& other);
    virtual RoutingPacket *dup() const {return new RoutingPacket(*this);}
    virtual void parsimPack(cCommBuffer *b);
    virtual void parsimUnpack(cCommBuffer *b);

    // field getter/setter methods
    virtual NetMacInfoExchange_type& getNetMacInfoExchange();
    virtual const NetMacInfoExchange_type& getNetMacInfoExchange() const {return const_cast<RoutingPacket*>(this)->getNetMacInfoExchange();}
    virtual void setNetMacInfoExchange(const NetMacInfoExchange_type& netMacInfoExchange_var);
    virtual const char * getSource() const;
    virtual void setSource(const char * source_var);
    virtual const char * getDestination() const;
    virtual void setDestination(const char * destination_var);
    virtual const char * getPrimaryPath() const;
    virtual void setPrimaryPath(const char * primaryPath_var);
    virtual const char * getAlternativePath() const;
    virtual void setAlternativePath(const char * alternativePath_var);
    virtual int getHopCount() const;
    virtual void setHopCount(int hopCount_var);
    virtual int getIdVideo() const;
    virtual void setIdVideo(int idVideo_var);
    virtual int getRound() const;
    virtual void setRound(int round_var);
    virtual unsigned int getSequenceNumber() const;
    virtual void setSequenceNumber(unsigned int sequenceNumber_var);
};

inline void doPacking(cCommBuffer *b, RoutingPacket& obj) {obj.parsimPack(b);}
inline void doUnpacking(cCommBuffer *b, RoutingPacket& obj) {obj.parsimUnpack(b);}


#endif // _ROUTINGPACKET_M_H_
