![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtReflectedIff_H_ 00011 #define DtReflectedIff_H_ 00012 00013 #if DtDIS 00014 00015 #include "hostStructs.h" 00016 #include "iffSR.h" 00017 #include "dReflectedObj.h" 00018 #include "objIdHashKey.h" 00019 00020 00021 class DT_DLL_VL DtReflectedIff; 00022 00025 typedef void (*DtIffCallbackFunction)( 00026 DtReflectedIff* obj, void* userData); 00027 00028 00033 class DT_DLL_VL DtReflectedIff : public DtReflectedObject 00034 { 00035 public: 00036 00038 typedef DtIffStateRepository* (*DtStateRepCreator)(); 00039 00040 public: 00041 00043 DtReflectedIff(DtExerciseConn* conn, 00044 const DtGlobalObjectDesignator& emittingEntity); 00045 00047 virtual ~DtReflectedIff(); 00048 00050 virtual DtIffStateRepository* iffRep() const; 00051 00053 virtual DtIffStateRepository* isr() const; 00054 00058 virtual DtStateRepository* stateRep() const; 00059 00062 virtual void processStateMessage(const DtStateMsg& msg); 00063 00065 virtual DtReflectedIff* next() const; 00066 00068 virtual DtReflectedIff* prev() const; 00069 00072 virtual DtReflectedIff* wrapNext() const; 00073 00076 virtual DtReflectedIff* wrapPrev() const; 00077 00079 virtual void addPostUpdateCallback( 00080 DtIffCallbackFunction cb, void* userData); 00081 00082 virtual void removePostUpdateCallback( 00083 DtIffCallbackFunction cb, void* userData); 00084 00086 virtual const DtBaseHashKey& hashKey() const; 00087 00090 virtual const DtGlobalObjectDesignator& globalId() const; 00091 00093 virtual DtString idString() const; 00094 00095 public: 00096 00098 static void setStateRepCreator(DtStateRepCreator creator); 00099 static DtStateRepCreator stateRepCreator(void); 00100 00101 protected: 00102 00104 DtReflectedIff(const DtReflectedIff& orig); 00105 00107 DtReflectedIff& operator=( 00108 const DtReflectedIff& orig); 00109 00110 protected: 00111 00112 DtIffStateRepository *myStateRepository; 00113 DtObjectIdHashKey myHashKey; 00114 DtString myIdString; 00115 00116 protected: 00117 00118 static DtStateRepCreator theStateRepCreator; 00119 00120 }; 00121 00122 00123 #endif 00124 #endif 00125