![]() |
VR-Vantage 1.4.1 API Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: reflExtAgg.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 #ifndef REFLEXTAGG_H 00010 #define REFLEXTAGG_H 00011 00012 #if DtHLA 00013 #include <vl/hReflectedObj.h> 00014 #define DtAggReflectedObjectType DtReflectedObject 00015 #elif DtDIS 00016 #include <vl/dReflectedAgg.h> 00017 #define DtAggReflectedObjectType DtReflectedAggregate 00018 #elif DtTENA 00019 #include <vl/tReflectedAgg.h> 00020 #define DtAggReflectedObjectType DtReflectedAggregate 00021 #else 00022 # pragma message ( "No protocol defined." ) 00023 #endif 00024 00025 #include <vrfExtObjects/extAggSR.h> 00026 00027 // Callback function that takes a DtReflectedExtAggregate 00028 // and usr data. 00029 00030 class DtReflectedExtAggregate; 00031 00032 typedef void (*DtExtAggregateCallbackFunction) 00033 ( 00034 DtReflectedExtAggregate* obj, void* userData 00035 ); 00036 00037 class DtExerciseConn; 00038 00039 #include <vrfExtObjects/vrfExtObjectsDefines.h> 00040 class DT_DLL_vrfExtObjects DtReflectedExtAggregate : public DtAggReflectedObjectType 00041 { 00042 00043 public: 00044 00045 #if DtHLA 00046 DtReflectedExtAggregate 00047 ( 00048 DtHlaObject* obj, 00049 DtExerciseConn* conn 00050 ); 00051 DtReflectedExtAggregate(DtExerciseConn* conn, DtAggregateStateRepository* esrToUse); 00052 #elif (DtDIS || DtTENA) 00053 // constructor 00054 DtReflectedExtAggregate 00055 ( 00056 DtExerciseConn* conn, 00057 const DtEntityIdentifier& id, 00058 const DtEntityType& type 00059 ); 00060 #else 00061 # pragma message ( "No protocol defined." ) 00062 #endif 00063 00064 // destructor 00065 virtual ~DtReflectedExtAggregate(); 00066 00067 // Returns a pointer to an aggregate state repository through which you can 00068 // inspect current state info. 00069 virtual DtExtAggregateStateRepository* extAggregateStateRep() const; 00070 00071 // Synonym for extAggregateStateRep. 00072 virtual DtExtAggregateStateRepository* easr() const; 00073 00074 // Implementation for abstract base class. Calls cosr(). 00075 virtual DtStateRepository* stateRep() const; 00076 00077 #if DtDIS 00078 // Process an aggregate state PDU. 00079 // Calls DtReflectedAggregate::processStateMessage(). 00080 virtual void processStateMessage(const DtStateMsg& msg); 00081 #endif 00082 00083 // Get the next and previous elements in the reflected aggregate list. 00084 virtual DtReflectedExtAggregate* nextEA() const; 00085 virtual DtReflectedExtAggregate* prevEA() const; 00086 00087 // Get the next and previous elements, wrap at the ends of the list. 00088 virtual DtReflectedExtAggregate* wrapNextEA() const; 00089 virtual DtReflectedExtAggregate* wrapPrevEA() const; 00090 00091 // Aggregate callback registration/deregistration. 00092 virtual void addPostUpdateCallback 00093 ( 00094 DtExtAggregateCallbackFunction cb, void* userData 00095 ); 00096 virtual void removePostUpdateCallback 00097 ( 00098 DtExtAggregateCallbackFunction cb, void* userData 00099 ); 00100 00101 static void postUpdateCallback 00102 ( 00103 DtReflectedExtAggregate* agg, void* userData 00104 ); 00105 00106 virtual void processPostUpdateCallback(DtReflectedExtAggregate* agg); 00107 00108 virtual void updateExtensions(); 00109 00110 // Overridden from bast class to make public. 00111 virtual void processPostUpdateCallbacks(); 00112 00113 private: 00114 00115 // copy constructor 00116 DtReflectedExtAggregate(const DtReflectedExtAggregate& orig); 00117 00118 // assignment operator 00119 DtReflectedExtAggregate& operator=(const DtReflectedExtAggregate& orig); 00120 00121 }; 00122 00123 #endif