![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef DtReflectedIffList_H_ 00008 #define DtReflectedIffList_H_ 00009 00013 00014 #if DtDIS 00015 00016 00017 #include "dRefObjList.h" 00018 #include "dReflIff.h" 00019 #include "globalObjDes.h" 00020 00021 00022 class DT_DLL_VL DtIffAtcNavaidsPdu; 00023 00024 00028 class DT_DLL_VL DtReflectedIffList : public DtReflectedObjectList 00029 { 00030 00031 public: 00032 00034 DtReflectedIffList(DtExerciseConn* exConn); 00035 00037 virtual ~DtReflectedIffList(); 00038 00040 virtual DtReflectedIff* lookup( 00041 const DtGlobalObjectDesignator& emittingEntity) const; 00042 00044 virtual DtReflectedIff* first() const; 00045 virtual DtReflectedIff* last() const; 00046 00048 virtual void addIffAdditionCallback( 00049 DtIffCallbackFunction cb, void* userData); 00050 virtual void removeIffAdditionCallback( 00051 DtIffCallbackFunction cb, void* userData); 00052 00054 virtual void addEmitterAdditionCallback( 00055 DtIffCallbackFunction cb, void* userData); 00057 virtual void removeEmitterAdditionCallback( 00058 DtIffCallbackFunction cb, void* userData); 00059 00061 virtual void addIffRemovalCallback( 00062 DtIffCallbackFunction cb, void* userData); 00063 virtual void removeIffRemovalCallback( 00064 DtIffCallbackFunction cb, void* userData); 00065 00067 virtual void addEmitterRemovalCallback( 00068 DtIffCallbackFunction cb, void* userData); 00070 virtual void removeEmitterRemovalCallback( 00071 DtIffCallbackFunction cb, void* userData); 00072 00074 virtual void print(); 00075 00076 protected: 00077 00079 DtReflectedIffList& operator=( 00080 const DtReflectedIffList& orig); 00081 00083 DtReflectedIffList(const DtReflectedIffList& orig); 00084 00085 protected: 00086 00088 virtual DtReflectedIff* newReflectedIff( 00089 const DtGlobalObjectDesignator& emittingEntity); 00090 00092 virtual DtReflectedObject* newReflectedObj(const DtStateMsg& msg); 00093 00095 virtual DtReflectedObject* processStateMessage(const DtStateMsg& msg); 00096 00099 virtual void objectAdded(DtReflectedObject* obj); 00100 00102 virtual const DtBaseHashKey& 00103 hashKeyFromStateMessage(const DtStateMsg* msg); 00104 00105 protected: 00106 00108 static void emIffCb(DtIffAtcNavaidsPdu* pdu, void* usr); 00109 00110 DtObjectIdHashKey *myHashKey; 00111 00112 }; 00113 00114 00115 #endif 00116 #endif 00117 00118