VR-Link API Documentation for HLA 1.3
intercmCtlPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00009 
00010 #ifndef DtIntercomControlPdu_H_
00011 #define DtIntercomControlPdu_H_
00012 
00013 #if DtDIS
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "hostStructs.h"
00017 #include "dInteraction.h"
00018 #include "exerciseConn.h"
00019 
00020 #include "packets/intercmCtlP.h"
00021 
00022 #include "intercmParRec.h"
00023 #include "intercmEntDst.h"
00024 #include "intercmGrpAsg.h"
00025 #include "intercmGrpDst.h"
00026 
00027 
00028 
00029 class DT_DLL_VL DtIntercomControlPdu;
00030 
00032 typedef void (*DtIntercomControlPduCb)(DtIntercomControlPdu* pdu, void* usr);
00033 
00034 
00038 class DT_DLL_VL DtIntercomControlPdu : public DtInteraction
00039 {
00040 
00041 public:
00042 
00044    DtIntercomControlPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00045    DtIntercomControlPdu(const DtNetIntercomControlPdu* initial,
00046       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00047    DtIntercomControlPdu(const DtIntercomControlPdu& orig);
00048 
00050    virtual ~DtIntercomControlPdu();
00051 
00053    DtIntercomControlPdu& operator=(const DtIntercomControlPdu& orig);
00054 
00056    virtual void setControlType(DtIntercomCtlType controlType);
00057    virtual DtIntercomCtlType controlType() const;
00058 
00060    virtual void setCommClass(DtIntercomCommClass commClass);
00061    virtual DtIntercomCommClass commClass() const;
00062 
00064    virtual void setCommType(DtIntercomCommType commType);
00065    virtual DtIntercomCommType commType() const;
00066 
00068    virtual void setSourceEntityID(const DtEntityIdentifier& entity);
00069    virtual const DtEntityIdentifier& sourceEntityID() const;
00070 
00072    virtual void setSourceDeviceID(DtU16 deviceID);
00073    virtual DtU16 sourceDeviceID() const;
00074 
00076    virtual void setSourceLineID(DtU8 lineID);
00077    virtual DtU8 sourceLineID() const;
00078 
00080    virtual void setTransmitPriority(DtU8 transmitPriority);
00081    virtual DtU8 transmitPriority() const; 
00082 
00084    virtual void setTransmitLineState(DtIntercomTransLineState lineState);
00085    virtual DtIntercomTransLineState transmitLineState() const;
00086 
00088    virtual void setCmdType(DtIntercomCmdType cmdType);
00089    virtual DtIntercomCmdType cmdType() const;
00090 
00092    virtual void setMasterEntityID(const DtEntityIdentifier& entity);
00093    virtual const DtEntityIdentifier& masterEntityID() const;
00094 
00096    virtual void setMasterDeviceID(DtU16 deviceID);
00097    virtual DtU16 masterDeviceID() const;
00098 
00100    virtual void setMasterChannelID(DtU16 channelID);
00101    virtual DtU16 masterChannelID() const;
00102 
00105    virtual DtU32 parmRecordsLength() const;
00106 
00110    virtual bool setNumParmRecords(int numRecords);
00111    virtual int numParmRecords() const;
00112 
00115    virtual bool getRecordType(int parmIndex,
00116       DtIntercomCtlRecType& recordType) const;
00117 
00124    virtual bool setParmRecord(int parmIndex,
00125       const DtIntercomEntityDestRec& init);
00126    virtual bool getParmRecord(int parmIndex,
00127       DtIntercomEntityDestRec& record) const;
00128    virtual bool setParmRecord(int parmIndex,
00129       const DtIntercomGroupDestRec& init);
00130    virtual bool getParmRecord(int parmIndex,
00131       DtIntercomGroupDestRec& record) const;
00132    virtual bool setParmRecord(int parmIndex,
00133       const DtIntercomGroupAsgmtRec& init);
00134    virtual bool getParmRecord(int parmIndex,
00135       DtIntercomGroupAsgmtRec& record) const;
00136 
00138    virtual void printData() const;
00139 
00141    virtual void printDataToStream(std::ostream& stream) const;
00142 
00143 public:
00144 
00147    static DtPdu* create(const DtNetPacket* initial,
00148       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00149 
00152    static void addCallback(DtExerciseConn* conn,
00153       DtIntercomControlPduCb cb, void* usr);
00154    static void removeCallback(DtExerciseConn* conn,
00155       DtIntercomControlPduCb cb, void* usr);
00156 
00157 protected:
00158 
00160    virtual DtPduKind internalGetPduKind() const;
00161 
00163    virtual DtNetIntercomControlPdu* netPduStruct()  const; 
00164 
00167    DtIntercomControlPdu* self() const; 
00168 
00170    virtual char* var() const;
00171 
00173    virtual int recordOffset(int recordIndex) const;
00174 
00176    virtual void resizeRecord(DtNetIntercomParmRec* rec, int newSize);
00177 
00178 protected:
00179 
00181    static const int theStaticSize;
00182 
00183 protected:
00184 
00186    int myNumParmRecords;
00187 
00189    DtEntityIdentifier myEntityID;
00190 
00191 };
00192 
00193 #endif
00194 #endif
00195 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)