![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtDataQueryPdu_H_ 00011 #define DtDataQueryPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include "hostStructs.h" 00016 #include "simanPdu.h" 00017 00018 00019 class DT_DLL_VL DtExerciseConn; 00020 class DT_DLL_VL DtDataQueryPdu; 00021 00022 typedef DtDataQueryPdu DtDataQueryInteraction; 00023 00025 typedef void (*DtDataQueryPduCb)(DtDataQueryPdu *pdu, void *usr); 00026 00030 class DT_DLL_VL DtDataQueryPdu : public DtSimanPdu 00031 { 00032 public: 00033 00034 enum {PduStaticSize=40 }; 00035 00036 public: 00038 DtDataQueryPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 DtDataQueryPdu(const DtNetDataQueryPdu *initial, 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 00043 unsigned long requestId() const; 00044 void setRequestId(unsigned long id); 00045 00047 DtTime timeInterval() const; 00048 void setTimeInterval(DtTime seconds); 00049 00051 unsigned long numFixedFields() const; 00052 00054 unsigned long numVarFields() const; 00055 00057 DtDatumParam fixedDatumId(int index) const; 00058 int setFixedDatumId(int index, DtDatumParam id); 00059 00061 DtDatumParam varDatumId(int index) const; 00062 int setVarDatumId(int index, DtDatumParam id); 00063 00065 void initDatumIds(unsigned long numFixedFields, 00066 unsigned long numVarFields); 00067 00069 virtual void printData() const; 00070 00072 virtual void printDataToStream(std::ostream& stream) const; 00073 00074 public: 00077 static DtPdu *create(const DtNetPacket *initial, 00078 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00079 00082 static void addCallback(DtExerciseConn *conn, 00083 DtDataQueryPduCb cb, void *usr); 00084 static void removeCallback(DtExerciseConn *conn, 00085 DtDataQueryPduCb cb, void *usr); 00086 00087 00088 protected: 00089 DtPduKind internalGetPduKind() const {return DtDataQueryPduKind;} 00090 }; 00091 00092 #endif 00093 #endif 00094