![]() |
VR-Link API Documentation for DIS
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 00009 00010 #ifndef DtDisReflectedDesignator_H_ 00011 #define DtDisReflectedDesignator_H_ 00012 00013 #if DtDIS 00014 00015 00016 #include "designatorSR.h" 00017 #include "dDesignatrDec.h" 00018 #include "dReflectedObj.h" 00019 #include "sysHashKey.h" 00020 00021 00022 class DT_DLL_VL DtReflectedDesignator; 00023 00026 typedef void (*DtDesignatorCallbackFunction)( DtReflectedDesignator*, void* ); 00027 00031 class DT_DLL_VL DtReflectedDesignator : public DtReflectedObject 00032 { 00033 public: 00034 00036 typedef DtDesignatorRepository* (*DtStateRepCreator)(); 00037 00038 public: 00039 00041 DtReflectedDesignator( DtExerciseConn* conn, 00042 const DtGlobalObjectDesignator& designatingEntity, int designatorCode ); 00043 00045 virtual ~DtReflectedDesignator(); 00046 00047 00048 public: 00050 virtual inline DtDesignatorRepository* designatorRep() const { return myStateRepository; } 00051 00053 virtual inline DtDesignatorRepository* dsr() const { return myStateRepository; } 00054 00057 virtual inline DtStateRepository* stateRep() const { return myStateRepository; } 00058 00060 virtual inline DtDesignatorDecoder* decoder() { return &myDecoder; } 00061 00064 virtual void processStateMessage( const DtStateMsg& msg ); 00065 00067 virtual DtReflectedDesignator* next() const; 00068 00070 virtual DtReflectedDesignator* prev() const; 00071 00074 virtual DtReflectedDesignator* wrapNext() const; 00075 00078 virtual DtReflectedDesignator* wrapPrev() const; 00079 00081 virtual void addPostUpdateCallback( 00082 DtDesignatorCallbackFunction cb, void* userData ); 00083 00084 virtual void removePostUpdateCallback( 00085 DtDesignatorCallbackFunction cb, void* userData ); 00086 00088 virtual inline const DtBaseHashKey& hashKey() const { return myHashKey; } 00089 00091 virtual inline DtString idString() const { return myIdString; } 00092 00095 virtual const DtGlobalObjectDesignator& globalId() const; 00096 00097 public: 00099 static void setStateRepCreator(DtStateRepCreator creator); 00100 static DtStateRepCreator stateRepCreator(void); 00101 00102 protected: 00103 00105 DtReflectedDesignator( const DtReflectedDesignator& ); 00106 00108 DtReflectedDesignator& operator=( const DtReflectedDesignator& ); 00109 00110 protected: 00111 00112 static DtStateRepCreator theStateRepCreator; 00113 00114 protected: 00115 00116 DtSystemHashKey myHashKey; 00117 DtString myIdString; 00118 DtDesignatorRepository *myStateRepository; 00119 DtDesignatorDecoder myDecoder; 00120 }; 00121 00122 00123 #endif //! DtDIS 00124 00125 #endif //! DtDisReflectedDesignator_H_ 00126