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