VR-Link API Documentation for HLA 1516
dReflectedAgg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00009 
00010 #ifndef DtReflectedAggregate_H_
00011 #define DtReflectedAggregate_H_
00012 
00013 #if DtDIS
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "dReflectedObj.h"
00017 #include "dAggDec.h"
00018 #include "aggStatePdu.h"
00019 #include "globalObjDes.h"
00020 #include "objIdHashKey.h"
00021 #include "relLocPdu.h"
00022 
00023 class DT_DLL_VL DtAggregateStateRepository;
00024 class DT_DLL_VL DtExerciseConn;
00025 class DT_DLL_VL DtReflectedAggregate;
00026 
00029 typedef void (*DtAggregateCallbackFunction)(
00030    DtReflectedAggregate* obj, void* userData);
00031 
00035 class DT_DLL_VL DtReflectedAggregate : public DtReflectedObject 
00036 {
00037 public:
00038 
00040    typedef DtAggregateStateRepository* (*DtStateRepCreator)();
00041 
00042 public:
00043 
00045    DtReflectedAggregate(DtExerciseConn* conn,
00046       const DtEntityIdentifier& id,
00047       const DtEntityType& type);
00048 
00050    virtual ~DtReflectedAggregate();
00051 
00054    virtual DtAggregateStateRepository* aggregateStateRep() const;
00055 
00057    virtual DtAggregateStateRepository* asr() const;
00058 
00062    virtual DtStateRepository* stateRep() const;
00063 
00066    virtual DtAggregateStateDecoder* decoder();
00067 
00069    virtual const DtEntityIdentifier& aggregateID() const;
00070 
00072    virtual const DtObjectId& id() const;
00073 
00076    virtual const DtGlobalObjectDesignator& globalId() const;
00077 
00080    virtual void processStateMessage(const DtStateMsg& msg);
00081 
00082    virtual void processRelativeLocation(const DtRelativeLocationPdu& pdu);
00083 
00085    virtual DtReflectedAggregate* next() const;
00086    virtual DtReflectedAggregate* prev() const;
00087 
00089    virtual DtReflectedAggregate* wrapNext() const;
00090    virtual DtReflectedAggregate* wrapPrev() const;
00091 
00093    virtual void addPostUpdateCallback(
00094       DtAggregateCallbackFunction cb, void* userData);
00095    virtual void removePostUpdateCallback(
00096       DtAggregateCallbackFunction cb, void* userData);
00097 
00099    virtual const DtBaseHashKey& hashKey() const;
00100 
00102    virtual DtString idString() const;
00103 
00106    virtual void processAggregateState(const DtAggregateStatePdu& pdu);
00107 
00108 public:
00109 
00111    static void setStateRepCreator(DtStateRepCreator creator);
00112    static DtStateRepCreator stateRepCreator(void);
00113 
00114 protected:
00115 
00117    DtReflectedAggregate(const DtReflectedAggregate& orig);
00118 
00120    DtReflectedAggregate& operator=(const DtReflectedAggregate& orig);
00121 
00122 protected:
00123 
00124    DtEntityIdentifier myId;
00125    DtAggregateStateRepository* myAggregateStateRep;
00126    DtAggregateStateDecoder* myAggregateDecoder;
00127    DtEntityIdentifierHashKey myHashKey;
00128 
00129 protected:
00130 
00131    static DtStateRepCreator theStateRepCreator;
00132 
00133 };
00134 
00135 #endif
00136 #endif
00137 

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)