![]() |
VR-Link API Documentation for DIS
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00009 00010 #ifndef hReflectedFed_H_ 00011 #define hReflectedFed_H_ 00012 00013 #if DtHLA 00014 00015 #include "hReflectedObj.h" 00016 #include "federateSR.h" 00017 00018 class DtReflectedFederate; 00019 00020 typedef void (*DtFederateCallbackFunction)( 00021 DtReflectedFederate* obj, void* userData); 00022 00026 class DT_DLL_VL DtReflectedFederate : public DtReflectedObject 00027 { 00030 typedef DtFederateStateRepository* (*DtStateRepCreator)(); 00031 00032 public: 00034 DtReflectedFederate(DtHlaObject* obj, DtExerciseConn* exConn); 00035 00037 virtual ~DtReflectedFederate(); 00038 00040 virtual DtFederateStateRepository* federateRep() const; 00041 00043 virtual DtFederateStateRepository* fsr() const; 00044 00047 virtual DtReflectedFederate* next() const; 00048 00051 virtual DtReflectedFederate* prev() const; 00052 00055 virtual DtReflectedFederate* wrapNext() const; 00056 00059 virtual DtReflectedFederate* wrapPrev() const; 00060 00063 virtual void addPostUpdateCallback( 00064 DtFederateCallbackFunction cb, void* userData); 00065 00068 virtual void removePostUpdateCallback( 00069 DtFederateCallbackFunction cb, void* userData); 00070 00071 public: 00073 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00074 00075 protected: 00077 DtReflectedFederate(const DtReflectedFederate& orig); 00078 00080 DtReflectedFederate& operator=(const DtReflectedFederate& orig); 00081 00082 protected: 00084 static DtStateRepCreator theStateRepCreator; 00085 }; 00086 00087 inline DtFederateStateRepository* DtReflectedFederate::federateRep() const 00088 { 00089 return (DtFederateStateRepository*) myStateRep; 00090 } 00091 00092 inline DtFederateStateRepository* DtReflectedFederate::fsr() const 00093 { 00094 return (DtFederateStateRepository*) myStateRep; 00095 } 00096 00097 00098 #endif 00099 #endif 00100