VR-Link API Documentation for DIS
hDataQInter.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00007 #ifndef hDataQInter_H_
00008 #define hDataQInter_H_
00009 
00010 #if DtHLA
00011 
00012 #include "hostStructs.h"
00013 #include <matrix/vlMath.h>
00014 #include "hIntWEncDec.h"
00015 
00016 
00017 
00021 
00022 class DT_DLL_VL DtExerciseConn;
00023 class DT_DLL_VL DtDataQueryInteraction;
00024 
00025 
00027 typedef void (*DtDataQueryInteractionCb) 
00028    (DtDataQueryInteraction* inter, void* usr);
00029 
00030 
00035 
00036 class DT_DLL_VL DtDataQueryInteraction: public DtInteractionWithEncDec
00037 {
00038 public:
00039 
00041    DtDataQueryInteraction();
00042 
00044    virtual ~DtDataQueryInteraction();
00045 
00047    DtDataQueryInteraction(const DtDataQueryInteraction& orig);
00048 
00050    DtDataQueryInteraction& operator=(
00051       const DtDataQueryInteraction& orig);
00052 
00054    virtual void printData() const;
00055 
00057    virtual void printDataToStream(std::ostream& stream) const;
00058 
00060    virtual void setSenderId(const DtEntityIdentifier& id);
00061    virtual const DtEntityIdentifier& senderId() const;
00062 
00064    virtual void setReceiverId(const DtEntityIdentifier& id);
00065    virtual const DtEntityIdentifier& receiverId() const;
00066 
00068    virtual void setRequestId(unsigned long id);
00069    virtual unsigned long requestId() const;
00070 
00072    virtual void setTimeInterval(DtTime seconds);   
00073    virtual DtTime timeInterval() const;
00074 
00076    virtual void initDatumIds(unsigned long numFixedFields, 
00077                              unsigned long numVarFields);
00078 
00080    virtual void setNumFixedFields(unsigned long numFixedFields);
00081    virtual unsigned long numFixedFields() const;
00082 
00083    virtual int setFixedDatumId(DtU32 index, DtDatumParam id);
00084    virtual DtDatumParam fixedDatumId(DtU32 index) const;
00085 
00087    virtual void setNumVarFields(unsigned long numVarFields);
00088    virtual unsigned long numVarFields() const;
00089 
00090    virtual int setVarDatumId(DtU32 index, DtDatumParam id); 
00091    virtual DtDatumParam varDatumId(DtU32 index) const;
00092 
00094    virtual void setFixedDatumIDs(const void* data, DtInt32 numBytes);
00095    virtual const void* fixedDatumIDs() const;
00096 
00098    virtual void setVariableDatumIDs(const void* data, DtInt32 numBytes);
00099    virtual const void* variableDatumIDs() const;
00100 
00102    virtual void changeFixedSize(DtU32 newSize);
00103    virtual void changeVariableSize(DtU32 newSize);
00104 
00106    virtual const char* name() const;
00107 
00108 public:
00109 
00112    static DtInteraction* create();
00113 
00116    static void addCallback(DtExerciseConn* conn,
00117                            DtDataQueryInteractionCb cb, void* usr,
00118                            DtDDMRegionSP region = DtDDMRegionSP());
00119    static void removeCallback(DtExerciseConn* conn,
00120                               DtDataQueryInteractionCb cb, void* usr,
00121                               DtDDMRegionSP region = DtDDMRegionSP());
00122 
00123 protected:
00124 
00125    DtEntityIdentifier myOrigEnt;
00126    DtEntityIdentifier myReceiveEnt;
00127    DtU32 myRequestId;
00128    DtNetTimeStamp myTimeInterval;
00129    DtNetU32* myFixedDatumIDs;
00130    DtNetU32* myVariableDatumIDs;
00131    DtU32 myNumFixed;
00132    DtU32 myNumVar;
00133 };
00134 
00135 #endif
00136 #endif
00137 

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)