VR-Link API Documentation for HLA Evolved
mineQueryPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00008 
00009 #ifndef DtMinefieldQueryPdu_H_
00010 #define DtMinefieldQueryPdu_H_
00011 
00012 #if DtDIS
00013 
00014 #include <vlutil/vlMachineTypes.h>
00015 #include "hostStructs.h"
00016 #include "dInteraction.h"
00017 #include "exerciseConn.h"
00018 
00019 #include "packets/mineQueryP.h"
00020 
00021 #include "minePerimeter.h"
00022 
00023 
00024 class DT_DLL_VL DtMinefieldQueryPdu;
00025 
00027 typedef void (*DtMinefieldQueryPduCb)(DtMinefieldQueryPdu* pdu, void* usr);
00028 
00029 
00033 class DT_DLL_VL DtMinefieldQueryPdu : public DtInteraction
00034 {
00035 
00036 public:
00037 
00039    DtMinefieldQueryPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00040    DtMinefieldQueryPdu(const DtNetMinefieldQueryPdu* initial,
00041       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00042    DtMinefieldQueryPdu(const DtMinefieldQueryPdu& orig);
00043 
00045    virtual ~DtMinefieldQueryPdu();
00046 
00048    DtMinefieldQueryPdu& operator=(const DtMinefieldQueryPdu& orig);
00049 
00051    virtual void setMinefieldID(const DtEntityIdentifier& id);
00052    virtual const DtEntityIdentifier& minefieldID() const;
00053 
00055    virtual void setRequestingEntityID(const DtEntityIdentifier& id);
00056    virtual const DtEntityIdentifier& requestingEntityID() const;
00057 
00059    virtual void setRequestID(DtU8 id);
00060    virtual DtU8 requestID() const;
00061 
00063    virtual bool setNumPerimeterPoints(DtU8 num);
00064    virtual DtU8 numPerimeterPoints() const;
00065 
00067    virtual bool setNumSensorTypes(DtU8 num);
00068    virtual DtU8 numSensorTypes() const;
00069 
00071    virtual void setDataFilter(DtU32 value);
00072    virtual DtU32 dataFilter() const;
00073 
00077    virtual void setDataFilterField(
00078       DtMinefieldDataFilterField field, bool value);
00079    virtual bool getDataFilterField(DtMinefieldDataFilterField field);
00080 
00082    virtual void setRequestedMineType(const DtEntityType& type);
00083    virtual const DtEntityType& requestedMineType() const;
00084 
00087    virtual bool setPerimeterPoint(int index,
00088       const DtMinefieldPerimeterRecord& init);
00089    virtual bool getPerimeterPoint(int index,
00090       DtMinefieldPerimeterRecord& record) const;
00091 
00094    virtual bool getSensorTypeCategory(int index,
00095       DtSensorTypeCategory& value);
00096 
00100    virtual bool setSensorTypeSubcategory(int index,
00101       DtOpticalSensorTypeSubcategory value);
00102    virtual bool setSensorTypeSubcategory(int index,
00103       DtFLIR_SensorTypeSubcategory value);
00104    virtual bool setSensorTypeSubcategory(int index,
00105       DtRADAR_SensorTypeSubcategory value);
00106    virtual bool setSensorTypeSubcategory(int index,
00107       DtMagneticSensorTypeSubcategory value);
00108    virtual bool setSensorTypeSubcategory(int index,
00109       DtLaserSensorTypeSubcategory value);
00110    virtual bool setSensorTypeSubcategory(int index,
00111       DtSONARSensorTypeSubcategory value);
00112    virtual bool setSensorTypeSubcategory(int index,
00113       DtPhysicalSensorTypeSubcategory value);
00114    virtual bool setSensorTypeSubcategory(int index,
00115       DtMultispectralSensorTypeSubcategory value);
00116 
00121    virtual bool getSensorTypeSubcategory(int index,
00122       DtOpticalSensorTypeSubcategory& value);
00123    virtual bool getSensorTypeSubcategory(int index,
00124       DtFLIR_SensorTypeSubcategory& value);
00125    virtual bool getSensorTypeSubcategory(int index,
00126       DtRADAR_SensorTypeSubcategory& value);
00127    virtual bool getSensorTypeSubcategory(int index,
00128       DtMagneticSensorTypeSubcategory& value);
00129    virtual bool getSensorTypeSubcategory(int index,
00130       DtLaserSensorTypeSubcategory& value);
00131    virtual bool getSensorTypeSubcategory(int index,
00132       DtSONARSensorTypeSubcategory& value);
00133    virtual bool getSensorTypeSubcategory(int index,
00134       DtPhysicalSensorTypeSubcategory& value);
00135    virtual bool getSensorTypeSubcategory(int index,
00136       DtMultispectralSensorTypeSubcategory& value);
00137 
00139    virtual void printData() const;
00140 
00142    virtual void printDataToStream(std::ostream &stream) const;
00143 
00144 public:
00145 
00148    static DtPdu* create(const DtNetPacket* initial,
00149       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00150 
00153    static void addCallback(DtExerciseConn* conn,
00154       DtMinefieldQueryPduCb cb, void* usr);
00155    static void removeCallback(DtExerciseConn* conn,
00156       DtMinefieldQueryPduCb cb, void* usr);
00157 
00158 protected:
00159 
00161    virtual DtPduKind internalGetPduKind() const;
00162 
00164    virtual DtNetMinefieldQueryPdu* netPduStruct()  const; 
00165 
00168    DtMinefieldQueryPdu* self() const; 
00169 
00171    virtual char* var() const;
00172 
00174    virtual int perimeterPointRecordOffset(int recordIndex) const;
00175 
00177    virtual int sensorTypeRecordOffset(int recordIndex) const;
00178 
00180    virtual void setSensorType(int index, DtU16 value);
00181    virtual DtU16 sensorType(int index) const;
00182 
00183 protected:
00184 
00186    static const int theStaticSize;
00187 
00188 protected:
00189 
00191    DtEntityIdentifier myEntityID;
00192    DtEntityType myEntityType;
00193    DtMinefieldPerimeterRecord myPerimeterRecord;
00194 
00195 };
00196 
00197 #endif
00198 #endif
00199 

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)