![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #if DtDIS 00008 00011 00012 #ifndef DtDisReflectedObject_H_ 00013 #define DtDisReflectedObject_H_ 00014 00015 00016 00017 #include "refObjCbInfo.h" 00018 #include "hostStructs.h" 00019 00020 #include <vlutil/vlList.h> 00021 #include <vlutil/vlTime.h> 00022 #include <vlutil/vlString.h> 00023 00024 class DT_DLL_VL DtStateRepository; 00025 class DT_DLL_VL DtExerciseConn; 00026 class DT_DLL_VL DtHlaStateDecoder; 00027 class DT_DLL_VL DtStateMsg; 00028 class DT_DLL_VL DtBaseHashKey; 00029 00034 class DT_DLL_VL DtReflectedObject : public DtListedObj 00035 { 00036 00037 public: 00038 00040 DtReflectedObject(DtExerciseConn* conn); 00041 00043 virtual ~DtReflectedObject(); 00044 00047 virtual DtStateRepository* stateRep() const = 0; 00048 00050 virtual DtStateRepository* sr() const; 00051 00054 virtual DtTime lastTimeUpdated() const; 00055 00058 virtual DtTime lastSimTimeUpdated() const; 00059 00062 virtual DtTime lastReceivedTimeStamp() const; 00063 00065 virtual void processStateMessage(const DtStateMsg& msg); 00066 00068 virtual void baseAddPostUpdateCallback( 00069 DtReflectedObjectCallbackFunction cb, void* userData); 00070 virtual void baseRemovePostUpdateCallback( 00071 DtReflectedObjectCallbackFunction cb, void* userData); 00072 00074 virtual DtReflectedObject* nextObj() const; 00075 00077 virtual DtReflectedObject* prevObj() const; 00078 00081 virtual DtReflectedObject* wrapNextObj() const; 00082 00085 virtual DtReflectedObject* wrapPrevObj() const; 00086 00088 virtual const DtBaseHashKey& hashKey() const = 0; 00089 00091 virtual DtString idString() const = 0; 00092 00094 virtual const DtGlobalObjectDesignator& globalId() const = 0; 00095 00096 protected: 00097 00099 DtReflectedObject(const DtReflectedObject& orig); 00100 00102 DtReflectedObject& operator=(const DtReflectedObject& orig); 00103 00105 virtual void processPostUpdateCallbacks(); 00106 00107 protected: 00108 00109 DtExerciseConn* myExConn; 00110 DtIntrusiveList myStateUpdateCallbacks; 00111 DtTime myLastTimeUpdated; 00112 DtTime myLastSimTimeUpdated; 00113 DtTime myLastReceivedTimeStamp; 00114 00115 }; 00116 00117 #endif 00118 #endif 00119