![]() |
VR-Link API Documentation for HLA 1516
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 00009 00010 #ifndef DtDisReflectedDesignatorList_H_ 00011 #define DtDisReflectedDesignatorList_H_ 00012 00013 #if DtDIS 00014 00015 00016 #include "dRefObjList.h" 00017 #include "dReflDesigntr.h" 00018 #include "globalObjDes.h" 00019 00020 class DT_DLL_VL DtSystemHashKey; 00021 class DT_DLL_VL DtDesignatorPdu; 00022 00026 class DT_DLL_VL DtReflectedDesignatorList : public DtReflectedObjectList 00027 { 00028 public: 00030 DtReflectedDesignatorList( DtExerciseConn* exConn ); 00032 virtual ~DtReflectedDesignatorList(); 00033 00034 public: 00037 virtual DtReflectedDesignator* lookup( 00038 const DtGlobalObjectDesignator& designatingEntity, 00039 int designtrCode ) const; 00040 00042 virtual DtReflectedDesignator* first() const; 00043 virtual DtReflectedDesignator* last() const; 00044 00046 virtual void addDesignatorAdditionCallback( 00047 DtDesignatorCallbackFunction cb, void* userData ); 00048 virtual void removeDesignatorAdditionCallback( 00049 DtDesignatorCallbackFunction cb, void* userData ); 00050 00052 virtual void addDesignatorRemovalCallback( 00053 DtDesignatorCallbackFunction cb, void* userData ); 00054 virtual void removeDesignatorRemovalCallback( 00055 DtDesignatorCallbackFunction cb, void* userData ); 00056 00058 virtual void print() const; 00059 00061 virtual void printDataToStream(std::ostream& stream) const; 00062 00063 protected: 00065 virtual DtReflectedObject* newReflectedObj( const DtStateMsg& msg ); 00066 00069 virtual DtReflectedDesignator* newReflectedDesignator( 00070 const DtEntityIdentifier& designatingEntity, int designatorCode); 00071 00074 virtual int acceptPdu( const DtStateMsg& msg ) const; 00075 00077 virtual DtReflectedObject* processStateMessage( const DtStateMsg& msg ); 00078 00082 virtual void removeAndDelete( DtReflectedObject* obj, char* msg=0 ); 00083 00086 virtual void objectAdded( DtReflectedObject* obj ); 00087 00093 const DtBaseHashKey& hashKeyFromStateMessage( const DtStateMsg* ); 00094 00095 protected: 00097 static void designatorCb( DtDesignatorPdu* pdu, void* usr ); 00098 00099 protected: 00100 DtSystemHashKey* myHashKey; 00101 00102 protected: 00104 DtReflectedDesignatorList( const DtReflectedDesignatorList& ); 00105 00107 DtReflectedDesignatorList& operator=( const DtReflectedDesignatorList& ); 00108 }; 00109 00110 #endif //! DtDIS 00111 00112 #endif //! DtDisReflectedDesignatorList_H_ 00113