VR-Link API Documentation for HLA 1.3
envProcPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00007 
00008 #pragma once
00009 
00010 #include "exerciseConn.h"
00011 #include <vlutil/vlMachineTypes.h>
00012 #include "hostStructs.h"
00013 #include "pdu.h"
00014 #include <vlpi/enviroTypeRec.h>
00015 #include "stateMsg.h"
00016 #include "envGeometry.h"
00017 
00018 #include "packets/envProcP.h"
00019 
00020 
00021 #include <vector>
00022 
00023 class DT_DLL_VL DtEnvironmentalProcessPdu;
00024 
00026 typedef void (*DtEnvironmentalProcessPduCb)(
00027    DtEnvironmentalProcessPdu* pdu, void* usr);
00028 
00029 
00032 #if (DtHLA || DtTENA)
00033 class DT_DLL_VL DtEnvironmentalProcessPdu : public DtPdu
00034 #else
00035 class DT_DLL_VL DtEnvironmentalProcessPdu : public DtStateMsg
00036 #endif
00037 {
00038 
00039 public:
00040 
00042    DtEnvironmentalProcessPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00043    DtEnvironmentalProcessPdu(const DtNetEnvironmentalProcessPdu* initial,
00044       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00045    DtEnvironmentalProcessPdu(const DtEnvironmentalProcessPdu& orig);
00046 
00048    virtual ~DtEnvironmentalProcessPdu();
00049 
00051    DtEnvironmentalProcessPdu& operator=(const DtEnvironmentalProcessPdu& orig);
00052 
00054    virtual void setEnvironmentalProcessID(const DtEntityIdentifier& entity);
00055    virtual const DtEntityIdentifier& environmentalProcessID() const;
00056 
00058    virtual void setEnvironmentType(const DtEnvironmentTypeRecord& type);
00059    virtual const DtEnvironmentTypeRecord& environmentType() const;
00060 
00062    virtual void setModelType(DtEnvironmentalModelType value);
00063    virtual DtEnvironmentalModelType modelType() const; 
00064 
00066    virtual void setEnvironmentalStatus(DtU8 value);
00067    virtual DtU8 environmentalStatus() const; 
00068 
00070    virtual void setEnvironmentalStatusBit(
00071       DtEnvironmentalStatusBit bit, bool value);
00072    virtual bool environmentalStatusBit(
00073       DtEnvironmentalStatusBit bit) const; 
00074 
00076    virtual bool setNumberOfEnvironmentalRecords(DtU16 newNumberOfRecords);
00077    virtual DtU16 numberOfEnvironmentalRecords() const; 
00078 
00080    virtual void setSequenceNumber(DtU16 value);
00081    virtual DtU16 sequenceNumber() const; 
00082 
00085    virtual bool setRecordBitSize(int recordIndex, int newRecordBitSize);
00086 
00089    virtual DtNetEnvironmentalRecord* recordPointer(int recordIndex) const;
00090 
00092    virtual void printData() const;
00093    virtual void printDataToStream(std::ostream& stream) const;
00094 
00095    //****
00098 
00099 
00104    virtual int numberOfGeometryRecords() const;
00105 
00107    virtual DtEnvironmentalRecordType geometryRecordType(int index) const;
00108 
00112    virtual DtEnvironmentalRecordType stateRecordType(int index) const;
00113 
00119    virtual bool getGeometryRecord(int index, 
00120       DtEnvironmentalGeometryRecord& geometryRecord) const;
00121 
00127    virtual bool getStateRecord(int index, 
00128       DtEnvironmentalRecord& stateRecord) const;
00129 
00131    virtual void setEnvironmentalRecord(int index,
00132       const DtEnvironmentalRecord& envRecord);
00133 
00134 public:
00135 
00138    static DtPdu* create(const DtNetPacket* initial,
00139       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00140 
00143    static void addCallback(DtExerciseConn* conn,
00144       DtEnvironmentalProcessPduCb cb, void* usr);
00145    static void removeCallback(DtExerciseConn* conn,
00146       DtEnvironmentalProcessPduCb cb, void* usr);
00147 
00158    static void setLengthIsWholeEnvRec(bool lengthMode);
00159    static bool lengthIsWholeEnvRec();
00160 
00161 protected:
00162 
00164    virtual DtPduKind internalGetPduKind() const;
00165 
00168    DtNetEnvironmentalProcessPdu* netPduStruct()  const; 
00169 
00172    DtEnvironmentalProcessPdu* self() const;
00173 
00175    virtual char* var() const;
00176 
00179    virtual int recordOffset(int recordIndex) const;
00180 
00181    virtual void invalidateCache();
00182 
00183 protected:
00189    void verifyRecDataSize();
00190 
00191 
00193    static const int theStaticSize;
00194    static bool theLengthIsWholeRec;
00195 
00196 protected:
00197 
00199    DtEntityIdentifier myEntityID;
00200    DtEnvironmentTypeRecord myEnvironmentType;
00201    mutable std::vector<int> myOffsetCache;
00202 };
00203 
00204 

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)