//
// Generated file, do not edit! Created by opp_msgc 3.3 from MessageType.msg.
//

#ifndef _MESSAGETYPE_M_H_
#define _MESSAGETYPE_M_H_

#include <omnetpp.h>

// opp_msgc version check
#define MSGC_VERSION 0x0303
#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


/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message ClusterMessage
 * {
 *     fields:
 *         int proto;
 *         int srcAddress;
 *         int destAddress;
 * }
 * </pre>
 */
class ClusterMessage : public cMessage
{
  protected:
    int proto_var;
    int srcAddress_var;
    int destAddress_var;

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

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

    // field getter/setter methods
    virtual int getProto() const;
    virtual void setProto(int proto_var);
    virtual int getSrcAddress() const;
    virtual void setSrcAddress(int srcAddress_var);
    virtual int getDestAddress() const;
    virtual void setDestAddress(int destAddress_var);
};

inline void doPacking(cCommBuffer *b, ClusterMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, ClusterMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message Status2BSMessage extends ClusterMessage
 * {
 *     fields:
 *         int energy;
 *         int status;
 *         int cluster;
 *         int xpos;
 *         int ypos;
 * }
 * </pre>
 */
class Status2BSMessage : public ClusterMessage
{
  protected:
    int energy_var;
    int status_var;
    int cluster_var;
    int xpos_var;
    int ypos_var;

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

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

    // field getter/setter methods
    virtual int getEnergy() const;
    virtual void setEnergy(int energy_var);
    virtual int getStatus() const;
    virtual void setStatus(int status_var);
    virtual int getCluster() const;
    virtual void setCluster(int cluster_var);
    virtual int getXpos() const;
    virtual void setXpos(int xpos_var);
    virtual int getYpos() const;
    virtual void setYpos(int ypos_var);
};

inline void doPacking(cCommBuffer *b, Status2BSMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, Status2BSMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message ClusterHeadMessage extends ClusterMessage
 * {
 *     fields:
 *         int cHead[];
 * }
 * </pre>
 */
class ClusterHeadMessage : public ClusterMessage
{
  protected:
    int *cHead_var; // array ptr
    unsigned int cHead_arraysize;

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

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

    // field getter/setter methods
    virtual void setCHeadArraySize(unsigned int size);
    virtual unsigned int getCHeadArraySize() const;
    virtual int getCHead(unsigned int k) const;
    virtual void setCHead(unsigned int k, int cHead_var);
};

inline void doPacking(cCommBuffer *b, ClusterHeadMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, ClusterHeadMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message TDMAMessage extends ClusterMessage
 * {
 *     fields:
 *         int frames;
 *         int frameTime;
 *         int tdma[];      
 * 
 * }
 * </pre>
 */
class TDMAMessage : public ClusterMessage
{
  protected:
    int frames_var;
    int frameTime_var;
    int *tdma_var; // array ptr
    unsigned int tdma_arraysize;

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

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

    // field getter/setter methods
    virtual int getFrames() const;
    virtual void setFrames(int frames_var);
    virtual int getFrameTime() const;
    virtual void setFrameTime(int frameTime_var);
    virtual void setTdmaArraySize(unsigned int size);
    virtual unsigned int getTdmaArraySize() const;
    virtual int getTdma(unsigned int k) const;
    virtual void setTdma(unsigned int k, int tdma_var);
};

inline void doPacking(cCommBuffer *b, TDMAMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, TDMAMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message DataToCHMessage extends ClusterMessage
 * {
 *     fields:
 *         int cluaterHead;
 *         int data;
 * }
 * </pre>
 */
class DataToCHMessage : public ClusterMessage
{
  protected:
    int cluaterHead_var;
    int data_var;

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

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

    // field getter/setter methods
    virtual int getCluaterHead() const;
    virtual void setCluaterHead(int cluaterHead_var);
    virtual int getData() const;
    virtual void setData(int data_var);
};

inline void doPacking(cCommBuffer *b, DataToCHMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, DataToCHMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message Data2BSMessage extends ClusterMessage
 * {
 *     fields:
 *         int data;
 * }
 * </pre>
 */
class Data2BSMessage : public ClusterMessage
{
  protected:
    int data_var;

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

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

    // field getter/setter methods
    virtual int getData() const;
    virtual void setData(int data_var);
};

inline void doPacking(cCommBuffer *b, Data2BSMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, Data2BSMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message Event2NodeMessage extends ClusterMessage
 * {
 *     fields:
 *     	int metadata;
 * 
 * }
 * </pre>
 */
class Event2NodeMessage : public ClusterMessage
{
  protected:
    int metadata_var;

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

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

    // field getter/setter methods
    virtual int getMetadata() const;
    virtual void setMetadata(int metadata_var);
};

inline void doPacking(cCommBuffer *b, Event2NodeMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, Event2NodeMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message RequestRNMessage extends ClusterMessage
 * {
 *     fields:
 *         int energy;
 *         int status;
 *         int xpos;
 *         int ypos;
 * }
 * </pre>
 */
class RequestRNMessage : public ClusterMessage
{
  protected:
    int energy_var;
    int status_var;
    int xpos_var;
    int ypos_var;

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

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

    // field getter/setter methods
    virtual int getEnergy() const;
    virtual void setEnergy(int energy_var);
    virtual int getStatus() const;
    virtual void setStatus(int status_var);
    virtual int getXpos() const;
    virtual void setXpos(int xpos_var);
    virtual int getYpos() const;
    virtual void setYpos(int ypos_var);
};

inline void doPacking(cCommBuffer *b, RequestRNMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, RequestRNMessage& obj) {obj.netUnpack(b);}

/**
 * Class generated from <tt>MessageType.msg</tt> by opp_msgc.
 * <pre>
 * message Data2RNMessage extends ClusterMessage
 * {
 *     fields:
 *         int data;
 * 		int relayNode;		
 * }
 * </pre>
 */
class Data2RNMessage : public ClusterMessage
{
  protected:
    int data_var;
    int relayNode_var;

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

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

    // field getter/setter methods
    virtual int getData() const;
    virtual void setData(int data_var);
    virtual int getRelayNode() const;
    virtual void setRelayNode(int relayNode_var);
};

inline void doPacking(cCommBuffer *b, Data2RNMessage& obj) {obj.netPack(b);}
inline void doUnpacking(cCommBuffer *b, Data2RNMessage& obj) {obj.netUnpack(b);}

#endif // _MESSAGETYPE_M_H_
