VR-Link API Documentation for HLA 1.3
dReflAggList.h
Go to the documentation of this file.
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

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)