![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: echIdTable.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef DtEchelonIdTable_H_ 00016 #define DtEchelonIdTable_H_ 00017 00018 #include <vlutil/vlHashlist.h> 00019 #include <vl/hostStructs.h> 00020 #include "vrfobjcore/vrfObjPredEval.h" 00021 00022 class DtVrfObjectManager; 00023 class DtSimMessage; 00024 class DtVrfObject; 00025 00027 00031 00032 #include "vrfobjcore/vrfobjcoreDefines.h" 00033 class DT_DLL_vrfobjcore DtEchelonIdTable 00034 { 00035 private: 00037 DtEchelonIdTable(); 00039 DtEchelonIdTable(const DtEchelonIdTable& orig); 00041 DtEchelonIdTable& operator=(const DtEchelonIdTable& orig); 00042 00043 public: 00044 DtEchelonIdTable(DtVrfObjectManager* objectManager); 00045 virtual ~DtEchelonIdTable(); 00046 00049 void emptyHashList(); 00050 00052 virtual bool init(); 00053 00055 virtual const DtEntityIdentifier& lookupEchelonId(const DtString& echelonString) const; 00056 00058 virtual const DtString& lookupEntityId(const DtEntityIdentifier& entityId) const; 00059 00063 virtual void addEntry(const DtEntityIdentifier& entityId, const DtString& echelonId); 00064 00066 virtual bool removeEntry(const DtEntityIdentifier& entityId); 00067 00073 virtual void processVrfObjectAdded(DtVrfObject* vrfObject); 00074 00076 virtual bool removeEntry(const DtString& echelonId); 00077 00078 static void vrfObjectEchelonIdChanged(DtVrfObject * obj, DtVrfObjectPredicateEvaluator* predicateEval, 00079 void * usr); 00080 00081 static void vrfObjectAboutToBeRemovedCallback(DtVrfObject *vrfObject, void* usr); 00082 00083 static void vrfObjectAdded(DtVrfObject* vrfObject, void* usr); 00084 00085 protected: 00087 virtual void processVrfObjectEchelonIdChanged(DtVrfObject * obj); 00088 00089 virtual void processObjectAboutToBeRemoved(DtVrfObject *vrfObject); 00090 00093 virtual void localAddEntry(const DtEntityIdentifier& entityId, const DtString& echelonId); 00094 00095 protected: 00096 DtVrfObjectManager* myObjectManager; 00097 00099 DtHashlist myEchelonIdHashlist; 00101 DtHashlist myEntityIdHashlist; 00102 }; 00103 00104 #endif