//
// Generated file, do not edit! Created by opp_msgc 4.1 from src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg.
//

#ifndef _BASELINEMACPACKET_M_H_
#define _BASELINEMACPACKET_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

// cplusplus {{
#include "MacPacket_m.h"

#define BASELINEBAN_HEADER_SIZE 7
#define BASELINEBAN_BEACON_SIZE 17 + 7
#define BASELINEBAN_CONNECTION_REQUEST_SIZE 28 + 7
#define BASELINEBAN_CONNECTION_ASSIGNMENT_SIZE 29 + 7

#define BROADCAST_NID 255
#define UNCONNECTED_BROADCAST_NID 0
// }}



/**
 * Enum generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * enum SecurityLevel_type {
 *     NOT_SECURED	= 1;
 *     AUTHENTICATED_NOT_ENCRYPTED = 2;
 *     AUTHENTICATED_AND_ENCRYPTED = 3;
 *     
 * }
 * </pre>
 */
enum SecurityLevel_type {
    NOT_SECURED = 1,
    AUTHENTICATED_NOT_ENCRYPTED = 2,
    AUTHENTICATED_AND_ENCRYPTED = 3
};

/**
 * Enum generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * enum AcknowledgementPolicy_type {
 *     N_ACK_POLICY = 1;
 *     I_ACK_POLICY = 2;
 *     L_ACK_POLICY = 3;
 *     B_ACK_POLICY = 4;
 * }
 * </pre>
 */
enum AcknowledgementPolicy_type {
    N_ACK_POLICY = 1,
    I_ACK_POLICY = 2,
    L_ACK_POLICY = 3,
    B_ACK_POLICY = 4
};

/**
 * Enum generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * enum Frame_type {
 *     MANAGEMENT = 1;
 *     CONTROL = 2;
 *     DATA = 3;
 * }
 * </pre>
 */
enum Frame_type {
    MANAGEMENT = 1,
    CONTROL = 2,
    DATA = 3
};

/**
 * Enum generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * enum Frame_subtype {
 *     RESERVED = 0;
 *     BEACON = 1;
 *     ASSOCIATION = 2;
 *     DISASSOCIATION = 3;
 *     PTK = 4;
 *     GTK = 5;
 *     CONNECTION_REQUEST = 6;
 *     CONNECTION_ASSIGNMENT = 7;
 *     DISCONNECTION = 8;
 *     I_ACK = 9;
 *     B_ACK = 10;
 *     I_ACK_POLL = 11;
 *     B_ACK_POLL = 12;
 *     POLL = 13;
 *     T_POLL = 14;
 * }
 * </pre>
 */
enum Frame_subtype {
    RESERVED = 0,
    BEACON = 1,
    ASSOCIATION = 2,
    DISASSOCIATION = 3,
    PTK = 4,
    GTK = 5,
    CONNECTION_REQUEST = 6,
    CONNECTION_ASSIGNMENT = 7,
    DISCONNECTION = 8,
    I_ACK = 9,
    B_ACK = 10,
    I_ACK_POLL = 11,
    B_ACK_POLL = 12,
    POLL = 13,
    T_POLL = 14
};

/**
 * Enum generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * enum statusCode_type {
 *     ACCEPTED = 0;
 *     REJ_NO_BANDWIDTH = 1;
 *     REJ_NO_NID = 2;
 *     REJ_NO_RESOURCES = 3;
 *     REJ_NO_HIGH_SECURITY = 4;
 *     REJ_NO_LOW_SECURITY = 5;
 *     REJ_NO_REASON = 6;
 *     MODIFIED = 7;
 * }
 * </pre>
 */
enum statusCode_type {
    ACCEPTED = 0,
    REJ_NO_BANDWIDTH = 1,
    REJ_NO_NID = 2,
    REJ_NO_RESOURCES = 3,
    REJ_NO_HIGH_SECURITY = 4,
    REJ_NO_LOW_SECURITY = 5,
    REJ_NO_REASON = 6,
    MODIFIED = 7
};

/**
 * Class generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet BaselineMacPacket extends MacPacket {
 *     
 *     int HID;										
 *     int NID;										
 *     
 *     int protocolVersion;							
 *     int securityLevel enum(SecurityLevel_type);		
 *     int TKindex;									
 *     int retry;										
 *     int ackPolicy enum(AcknowledgementPolicy_type);	
 *     int frameType enum(Frame_type);					
 *     int frameSubtype enum(Frame_subtype);			
 *     int moreData;									
 *     int firstFrame;									
 *     int sequenceNum;								
 *     int fragmentNumber; 							
 *     
 * 													
 * }
 * </pre>
 */
class BaselineMacPacket : public ::MacPacket
{
  protected:
    int HID_var;
    int NID_var;
    int protocolVersion_var;
    int securityLevel_var;
    int TKindex_var;
    int retry_var;
    int ackPolicy_var;
    int frameType_var;
    int frameSubtype_var;
    int moreData_var;
    int firstFrame_var;
    int sequenceNum_var;
    int fragmentNumber_var;

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

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

    // field getter/setter methods
    virtual int getHID() const;
    virtual void setHID(int HID_var);
    virtual int getNID() const;
    virtual void setNID(int NID_var);
    virtual int getProtocolVersion() const;
    virtual void setProtocolVersion(int protocolVersion_var);
    virtual int getSecurityLevel() const;
    virtual void setSecurityLevel(int securityLevel_var);
    virtual int getTKindex() const;
    virtual void setTKindex(int TKindex_var);
    virtual int getRetry() const;
    virtual void setRetry(int retry_var);
    virtual int getAckPolicy() const;
    virtual void setAckPolicy(int ackPolicy_var);
    virtual int getFrameType() const;
    virtual void setFrameType(int frameType_var);
    virtual int getFrameSubtype() const;
    virtual void setFrameSubtype(int frameSubtype_var);
    virtual int getMoreData() const;
    virtual void setMoreData(int moreData_var);
    virtual int getFirstFrame() const;
    virtual void setFirstFrame(int firstFrame_var);
    virtual int getSequenceNum() const;
    virtual void setSequenceNum(int sequenceNum_var);
    virtual int getFragmentNumber() const;
    virtual void setFragmentNumber(int fragmentNumber_var);
};

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

/**
 * Class generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet BaselineBeaconPacket extends BaselineMacPacket {
 *     
 *     int senderAddress;							
 *     int beaconShiftingSequenceIndex; 			
 *     int beaconShiftingSequencePhase;			
 *     int beaconPeriodLength;						
 *     int allocationSlotLength;					
 *     int RAP1Length;								
 *     int RAP2Length;								
 *     
 * 												
 * }
 * </pre>
 */
class BaselineBeaconPacket : public ::BaselineMacPacket
{
  protected:
    int senderAddress_var;
    int beaconShiftingSequenceIndex_var;
    int beaconShiftingSequencePhase_var;
    int beaconPeriodLength_var;
    int allocationSlotLength_var;
    int RAP1Length_var;
    int RAP2Length_var;

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

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

    // field getter/setter methods
    virtual int getSenderAddress() const;
    virtual void setSenderAddress(int senderAddress_var);
    virtual int getBeaconShiftingSequenceIndex() const;
    virtual void setBeaconShiftingSequenceIndex(int beaconShiftingSequenceIndex_var);
    virtual int getBeaconShiftingSequencePhase() const;
    virtual void setBeaconShiftingSequencePhase(int beaconShiftingSequencePhase_var);
    virtual int getBeaconPeriodLength() const;
    virtual void setBeaconPeriodLength(int beaconPeriodLength_var);
    virtual int getAllocationSlotLength() const;
    virtual void setAllocationSlotLength(int allocationSlotLength_var);
    virtual int getRAP1Length() const;
    virtual void setRAP1Length(int RAP1Length_var);
    virtual int getRAP2Length() const;
    virtual void setRAP2Length(int RAP2Length_var);
};

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

/**
 * Class generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet BaselineConnectionRequestPacket extends BaselineMacPacket {
 *     int recipientAddress;						
 *     int senderAddress;							
 *     int formerHubAddress;						
 *     
 *     int changeIndication;						
 *     int nextWakeup;								
 *     int wakeupInterval;							
 *     int uplinkRequest;							
 *     int downlinkRequest;						
 *     int bilinkRequest;							
 * 												
 * 												
 * }
 * </pre>
 */
class BaselineConnectionRequestPacket : public ::BaselineMacPacket
{
  protected:
    int recipientAddress_var;
    int senderAddress_var;
    int formerHubAddress_var;
    int changeIndication_var;
    int nextWakeup_var;
    int wakeupInterval_var;
    int uplinkRequest_var;
    int downlinkRequest_var;
    int bilinkRequest_var;

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

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

    // field getter/setter methods
    virtual int getRecipientAddress() const;
    virtual void setRecipientAddress(int recipientAddress_var);
    virtual int getSenderAddress() const;
    virtual void setSenderAddress(int senderAddress_var);
    virtual int getFormerHubAddress() const;
    virtual void setFormerHubAddress(int formerHubAddress_var);
    virtual int getChangeIndication() const;
    virtual void setChangeIndication(int changeIndication_var);
    virtual int getNextWakeup() const;
    virtual void setNextWakeup(int nextWakeup_var);
    virtual int getWakeupInterval() const;
    virtual void setWakeupInterval(int wakeupInterval_var);
    virtual int getUplinkRequest() const;
    virtual void setUplinkRequest(int uplinkRequest_var);
    virtual int getDownlinkRequest() const;
    virtual void setDownlinkRequest(int downlinkRequest_var);
    virtual int getBilinkRequest() const;
    virtual void setBilinkRequest(int bilinkRequest_var);
};

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

/**
 * Class generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet BaselineConnectionAssignmentPacket extends BaselineMacPacket {
 *     int recipientAddress;                       
 *     int senderAddress;                          
 *     int channelDwellLength;						
 *     int channelDwellPhase;						
 *     int minRAPlength;							
 *     int statusCode enum(statusCode_type);		
 *     
 *     int assignedNID;							
 *     int changeIndication;                       
 *     int nextWakeup;								
 *     int wakeupinterval;							
 *     
 *     int uplinkRequestStart;						
 *     int uplinkRequestEnd;						
 *     int downlinkRequestStart;					
 *     int downlinkRequestEnd;
 *     int bilinkRequestStart;
 *     int bilinkRequestEnd;
 * 												
 * }
 * </pre>
 */
class BaselineConnectionAssignmentPacket : public ::BaselineMacPacket
{
  protected:
    int recipientAddress_var;
    int senderAddress_var;
    int channelDwellLength_var;
    int channelDwellPhase_var;
    int minRAPlength_var;
    int statusCode_var;
    int assignedNID_var;
    int changeIndication_var;
    int nextWakeup_var;
    int wakeupinterval_var;
    int uplinkRequestStart_var;
    int uplinkRequestEnd_var;
    int downlinkRequestStart_var;
    int downlinkRequestEnd_var;
    int bilinkRequestStart_var;
    int bilinkRequestEnd_var;

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

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

    // field getter/setter methods
    virtual int getRecipientAddress() const;
    virtual void setRecipientAddress(int recipientAddress_var);
    virtual int getSenderAddress() const;
    virtual void setSenderAddress(int senderAddress_var);
    virtual int getChannelDwellLength() const;
    virtual void setChannelDwellLength(int channelDwellLength_var);
    virtual int getChannelDwellPhase() const;
    virtual void setChannelDwellPhase(int channelDwellPhase_var);
    virtual int getMinRAPlength() const;
    virtual void setMinRAPlength(int minRAPlength_var);
    virtual int getStatusCode() const;
    virtual void setStatusCode(int statusCode_var);
    virtual int getAssignedNID() const;
    virtual void setAssignedNID(int assignedNID_var);
    virtual int getChangeIndication() const;
    virtual void setChangeIndication(int changeIndication_var);
    virtual int getNextWakeup() const;
    virtual void setNextWakeup(int nextWakeup_var);
    virtual int getWakeupinterval() const;
    virtual void setWakeupinterval(int wakeupinterval_var);
    virtual int getUplinkRequestStart() const;
    virtual void setUplinkRequestStart(int uplinkRequestStart_var);
    virtual int getUplinkRequestEnd() const;
    virtual void setUplinkRequestEnd(int uplinkRequestEnd_var);
    virtual int getDownlinkRequestStart() const;
    virtual void setDownlinkRequestStart(int downlinkRequestStart_var);
    virtual int getDownlinkRequestEnd() const;
    virtual void setDownlinkRequestEnd(int downlinkRequestEnd_var);
    virtual int getBilinkRequestStart() const;
    virtual void setBilinkRequestStart(int bilinkRequestStart_var);
    virtual int getBilinkRequestEnd() const;
    virtual void setBilinkRequestEnd(int bilinkRequestEnd_var);
};

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

/**
 * Class generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet BaselineBAckPacket extends BaselineMacPacket {
 *     int nextBlockSize;							
 *     int oldestFrameExpected;					
 *     int frameStatusBitmap;						
 * 												
 * }
 * </pre>
 */
class BaselineBAckPacket : public ::BaselineMacPacket
{
  protected:
    int nextBlockSize_var;
    int oldestFrameExpected_var;
    int frameStatusBitmap_var;

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

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

    // field getter/setter methods
    virtual int getNextBlockSize() const;
    virtual void setNextBlockSize(int nextBlockSize_var);
    virtual int getOldestFrameExpected() const;
    virtual void setOldestFrameExpected(int oldestFrameExpected_var);
    virtual int getFrameStatusBitmap() const;
    virtual void setFrameStatusBitmap(int frameStatusBitmap_var);
};

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

/**
 * Class generated from <tt>src/node/communication/mac/baselineBanMac/BaselineMacPacket.msg</tt> by opp_msgc.
 * <pre>
 * packet BaselineTPollPacket extends BaselineMacPacket {
 *     int currentBeaconPeriod;				
 *     int currentAllocationSlot;				
 *     int currentSlotOffset;					
 *     
 *     int beaconPeriodLength;					
 *     int allocationSlotLength;				
 * 											
 * 											
 * }
 * </pre>
 */
class BaselineTPollPacket : public ::BaselineMacPacket
{
  protected:
    int currentBeaconPeriod_var;
    int currentAllocationSlot_var;
    int currentSlotOffset_var;
    int beaconPeriodLength_var;
    int allocationSlotLength_var;

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

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

    // field getter/setter methods
    virtual int getCurrentBeaconPeriod() const;
    virtual void setCurrentBeaconPeriod(int currentBeaconPeriod_var);
    virtual int getCurrentAllocationSlot() const;
    virtual void setCurrentAllocationSlot(int currentAllocationSlot_var);
    virtual int getCurrentSlotOffset() const;
    virtual void setCurrentSlotOffset(int currentSlotOffset_var);
    virtual int getBeaconPeriodLength() const;
    virtual void setBeaconPeriodLength(int beaconPeriodLength_var);
    virtual int getAllocationSlotLength() const;
    virtual void setAllocationSlotLength(int allocationSlotLength_var);
};

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


#endif // _BASELINEMACPACKET_M_H_
