![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 #pragma once 00006 00007 00008 00009 #if DtDIS 00010 00011 #include "dRefObjList.h" 00012 #include "dReflectedAgg.h" 00013 00014 class DtEntityIdentifierHashKey; 00015 class DtRelativeLocationPdu; 00016 00020 class DT_DLL_VL DtReflectedAggregateList : public DtReflectedObjectList 00021 { 00022 00023 public: 00024 00026 DtReflectedAggregateList(DtExerciseConn* exConn, 00027 bool smoothCapable = false); 00028 00030 virtual ~DtReflectedAggregateList(); 00031 00032 private: 00033 00035 DtReflectedAggregateList& operator=( 00036 const DtReflectedAggregateList& orig); 00037 00039 DtReflectedAggregateList(const DtReflectedAggregateList& orig); 00040 00041 public: 00043 virtual DtReflectedAggregate* lookup(const DtObjectId& id) const; 00044 00046 virtual DtReflectedAggregate* first() const; 00047 virtual DtReflectedAggregate* last() const; 00048 00050 virtual void addAggregateAdditionCallback( 00051 DtAggregateCallbackFunction cb, void* userData); 00052 virtual void removeAggregateAdditionCallback( 00053 DtAggregateCallbackFunction cb, void* userData); 00054 00056 virtual void addAggregateRemovalCallback( 00057 DtAggregateCallbackFunction cb, void* userData); 00058 virtual void removeAggregateRemovalCallback( 00059 DtAggregateCallbackFunction cb, void* userData); 00060 00062 virtual void print(); 00063 00066 virtual DtReflectedAggregate* processAggregateState( 00067 const DtAggregateStatePdu& pdu); 00068 00070 virtual void processRelativeLocationPdu(const DtRelativeLocationPdu& pdu); 00071 00072 00073 protected: 00074 00076 virtual DtReflectedObject* newReflectedObj(const DtStateMsg& msg); 00077 00079 virtual DtReflectedObject* processStateMessage(const DtStateMsg& msg); 00080 00083 virtual void objectAdded(DtReflectedObject* obj); 00084 00086 virtual const DtBaseHashKey& 00087 hashKeyFromStateMessage(const DtStateMsg* msg); 00088 00090 virtual DtReflectedAggregate* newReflectedAggregate( 00091 const DtEntityIdentifier& id, const DtEntityType& type) const; 00092 00095 virtual void aggregateAdded(DtReflectedAggregate* agg); 00096 00097 00098 protected: 00099 00101 static void aggregateStateCb(DtAggregateStatePdu* pdu, void* usr); 00102 00104 static void relativeLocationCb( DtRelativeLocationPdu* pdu, void* usr ); 00105 00106 protected: 00107 00108 bool mySmoothCapable; 00109 DtEntityIdentifierHashKey* myHashKey; 00110 }; 00111 00112 #endif