![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 3003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /******************************************************************** 00006 * hRefEnvList.h 00007 *********************************************************************/ 00008 00009 #ifndef REFEXTAGGLIST_H 00010 #define REFEXTAGGLIST_H 00011 00012 #include <vl/reflAggList.h> 00013 00014 #include <vrfExtObjects/reflExtAgg.h> 00015 #include <vl/dataInter.h> 00016 00017 // class DtReflectedExtAggregateList: 00018 // 00019 // Instances of DtReflectedExtAggregateList manage the list of 00020 // remote environmental processes in the exercise. 00021 00022 #include <vrfExtObjects/vrfExtObjectsDefines.h> 00023 class DT_DLL_vrfExtObjects DtReflectedExtAggregateList : public DtReflectedAggregateList 00024 { 00025 00026 public: 00027 00028 // Constructor - obtains the set of object classes to subscribe 00029 // to from the exConn's fomMapper. 00030 DtReflectedExtAggregateList(DtExerciseConn* exConn); 00031 DtReflectedExtAggregateList(DtExerciseConn* exConn, bool smoothCapable); 00032 00033 #if DtHLA 00034 00035 00036 DtReflectedExtAggregateList(DtExerciseConn* exConn, 00037 const DtDDMRegionSet* regionSetToUse); 00038 00041 DtReflectedExtAggregateList(DtExerciseConn* exConn, 00042 const DtList *handleList, const DtDDMRegionSet* regionSetToUse = 0); 00043 00044 #endif 00045 00046 // destructor 00047 virtual ~DtReflectedExtAggregateList(); 00048 00049 #if DtHLA 00050 #if DtHLA_1516 00051 virtual DtReflectedExtAggregate* lookupEA ( RTI::ObjectInstanceHandle id); 00052 #else 00053 virtual DtReflectedExtAggregate* lookupEA ( RTI::ObjectHandle id); 00054 #endif 00055 00056 // Look up environmental process by name. 00057 virtual DtReflectedExtAggregate* lookupEA ( 00058 const DtGlobalObjectDesignator& objName); 00059 #elif (DtDIS || DtTENA) 00060 // Look up environmental process by identifier. 00061 virtual DtReflectedExtAggregate* lookup(const DtObjectId& id); 00062 #endif 00063 00064 // Get the first/last environmental process in the list. 00065 virtual DtReflectedExtAggregate* firstEA() const; 00066 virtual DtReflectedExtAggregate* lastEA() const; 00067 00068 // Environmental process added callback registration/deregistration. 00069 virtual void addAggregateAdditionCallback 00070 ( 00071 DtExtAggregateCallbackFunction cb, void* userData 00072 ); 00073 virtual void removeAggregateAdditionCallback 00074 ( 00075 DtExtAggregateCallbackFunction cb, void* userData 00076 ); 00077 00078 // Environmental process removed callback registration/deregistration. 00079 virtual void addAggregateRemovalCallback 00080 ( 00081 DtExtAggregateCallbackFunction cb, void* userData 00082 ); 00083 virtual void removeAggregateRemovalCallback 00084 ( 00085 DtExtAggregateCallbackFunction cb, void* userData 00086 ); 00087 00088 private: 00089 00090 // copy constructor 00091 DtReflectedExtAggregateList 00092 ( 00093 const DtReflectedExtAggregateList& orig 00094 ); 00095 00096 // assignment operator 00097 DtReflectedExtAggregateList& operator= 00098 ( 00099 const DtReflectedExtAggregateList& rhs 00100 ); 00101 00102 protected: 00103 static void dataInteractionCallback(DtDataInteraction* i, void* usr); 00104 00105 virtual void processDataInteraction(DtDataInteraction* i); 00106 00107 #if DtHLA 00108 virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const; 00109 #elif DtDIS 00110 // Create a new reflected control object. 00111 virtual DtReflectedAggregate* newReflectedAggregate 00112 ( 00113 const DtEntityIdentifier& id, 00114 const DtEntityType& type 00115 ) const; 00116 virtual DtReflectedAggregate* processAggregateState(const DtAggregateStatePdu& pdu); 00117 virtual void finalPduIsSetAction(DtReflectedAggregate* aggregate); 00118 #elif DtTENA 00119 // Create a new reflected control object. 00120 virtual DtReflectedAggregate* newReflectedAggregate 00121 ( 00122 const DtEntityIdentifier& id, 00123 const DtEntityType& type 00124 ) const; 00125 #endif 00126 }; 00127 00128 #endif // REFEXTAGGLIST_H