![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #pragma once 00007 00008 #include <vl/refEnvList.h> 00009 00010 #include <vrfExtObjects/reflCtrlObj.h> 00011 #include <vl/dataInter.h> 00012 00013 // class DtReflectedControlObjectList: 00014 // 00015 // Instances of DtReflectedControlObjectList manage the list of 00016 // remote environmental processes in the exercise. 00017 00018 #include <vrfExtObjects/vrfExtObjectsDefines.h> 00019 class DT_DLL_vrfExtObjects DtReflectedControlObjectList : public DtReflectedEnvironmentProcessList 00020 { 00021 00022 public: 00023 00024 // Constructor - obtains the set of object classes to subscribe 00025 // to from the exConn's fomMapper. 00026 DtReflectedControlObjectList(DtExerciseConn* exConn); 00027 00028 #if DtHLA 00029 // Constructor - obtains the set of object classes to subscribe 00030 // to from the exConn's fomMapper. 00031 DtReflectedControlObjectList(DtExerciseConn* exConn, 00032 const DtDDMRegionSet* regionSetToUse); 00033 00034 // Constructor - only subscribe to the RTI::ObjectClassHandles 00035 // in handleList. 00036 DtReflectedControlObjectList ( DtExerciseConn* exConn, const DtList *handleList, 00037 const DtDDMRegionSet* regionSetToUse = 0); 00038 #endif 00039 00040 // destructor 00041 virtual ~DtReflectedControlObjectList(); 00042 00043 #if DtHLA 00044 #if DtHLA_1516 00045 virtual DtReflectedControlObject* lookupCO(RTI::ObjectInstanceHandle id); 00046 #else 00047 virtual DtReflectedControlObject* lookupCO(RTI::ObjectHandle id); 00048 #endif 00049 #elif (DtDIS || DtTENA) 00050 // Look up environmental process by identifier. 00051 virtual DtReflectedControlObject* lookup(const DtObjectId& id); 00052 #else 00053 # pragma message ( "No protocol defined." ) 00054 #endif 00055 00056 // Get the first/last environmental process in the list. 00057 virtual DtReflectedControlObject* firstCO() const; 00058 virtual DtReflectedControlObject* lastCO() const; 00059 00060 // Look up an environmental process object by DtGlobalObjectDesignator. 00061 virtual DtReflectedControlObject* lookupCO( 00062 const DtGlobalObjectDesignator& designator); 00063 00064 // Environmental process added callback registration/deregistration. 00065 virtual void addControlObjectAdditionCallback 00066 ( 00067 DtControlObjectCallbackFunction cb, void* userData 00068 ); 00069 virtual void removeControlObjectAdditionCallback 00070 ( 00071 DtControlObjectCallbackFunction cb, void* userData\ 00072 ); 00073 00074 // Environmental process removed callback registration/deregistration. 00075 virtual void addControlObjectRemovalCallback 00076 ( 00077 DtControlObjectCallbackFunction cb, void* userData 00078 ); 00079 virtual void removeControlObjectRemovalCallback 00080 ( 00081 DtControlObjectCallbackFunction cb, void* userData 00082 ); 00083 00084 protected: 00085 00086 // copy constructor 00087 DtReflectedControlObjectList 00088 ( 00089 const DtReflectedControlObjectList& orig 00090 ); 00091 00092 // assignment operator 00093 DtReflectedControlObjectList& operator= 00094 ( 00095 const DtReflectedControlObjectList& rhs 00096 ); 00097 00098 static void dataInteractionCallback(DtDataInteraction* i, void* usr); 00099 00100 virtual void processDataInteraction(DtDataInteraction* i); 00101 00102 #if DtHLA 00103 virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const; 00104 #elif (DtDIS || DtTENA) 00105 // Create a new reflected control object. 00106 virtual DtReflectedEnvironmentProcess* newReflectedEnvironmentProcess 00107 ( 00108 const DtEntityIdentifier& id, 00109 const DtEntityType& type 00110 ) const; 00111 #else 00112 # pragma message ( "No protocol defined." ) 00113 #endif 00114 };