VR-Link API Documentation for DIS
dReflectedEnt.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00008 
00009 #ifndef dReflectedEnt_H_
00010 #define dReflectedEnt_H_
00011 
00012 #if DtDIS
00013 
00014 #include "dReflectedObj.h"
00015 #include "dEntityDec.h"
00016 #include "esPdu.h"
00017 #include "globalObjDes.h"
00018 #include "objIdHashKey.h"
00019 #include "relLocPdu.h"
00020 #include "esUpdatePdu.h"
00021 #include "supEmisEsPdu.h"
00022 #include "diGuyCustomPdu.h"
00023 
00024 class DtEntityStateRepository;
00025 class DtExerciseConn;
00026 class DtReflectedEntity;
00027 
00030 typedef void (*DtEntityCallbackFunction)(
00031    DtReflectedEntity* obj, void* userData);
00032 
00036 class DT_DLL_VL DtReflectedEntity : public DtReflectedObject 
00037 {
00038 public:
00039 
00041    typedef DtEntityStateRepository* (*DtStateRepCreator)();
00042 
00043 public:
00044 
00046    DtReflectedEntity(DtExerciseConn* conn,
00047       const DtEntityIdentifier& id,
00048       const DtEntityType& type);
00049 
00051    virtual ~DtReflectedEntity();
00052 
00055    virtual DtEntityStateRepository* entityStateRep() const;
00056 
00058    virtual DtEntityStateRepository* esr() const;
00059 
00063    virtual DtStateRepository* stateRep() const;
00064 
00067    virtual DtEntityStateDecoder* decoder();
00068 
00070    virtual const DtEntityIdentifier& entityId() const;
00071 
00073    virtual const DtObjectId& id() const;
00074 
00076    virtual const DtObjectId& localId() const;
00077 
00080    virtual const DtGlobalObjectDesignator& globalId() const;
00081 
00083    virtual void processStateMessage(const DtStateMsg& msg);
00084 
00086    virtual void processRelativeLocation(const DtRelativeLocationPdu& pdu);
00087 
00089    virtual void processEntityStateUpdate(const DtEntityStateUpdatePdu& pdu);  
00090 
00092    virtual void processSees(const DtSuppEmisEntStatePdu& pdu);
00093 
00095    virtual void processDiGuyPdu(const DtDIGuyCustomPdu& pdu);  
00096 
00098    virtual DtReflectedEntity* next() const;
00099    virtual DtReflectedEntity* prev() const;
00100 
00102    virtual DtReflectedEntity* wrapNext() const;
00103    virtual DtReflectedEntity* wrapPrev() const;
00104 
00106    virtual void addPostUpdateCallback(
00107       DtEntityCallbackFunction cb, void* userData);
00108    virtual void removePostUpdateCallback(
00109       DtEntityCallbackFunction cb, void* userData);
00110 
00112    virtual const DtBaseHashKey& hashKey() const;
00113 
00115    virtual DtString idString() const;
00116 
00119    virtual void processEntityState(const DtEntityStatePdu& pdu);
00120 
00121 public:
00122 
00124    static void setStateRepCreator(DtStateRepCreator creator);
00125    static DtStateRepCreator stateRepCreator(void);
00126 
00127 protected:
00128 
00130    DtReflectedEntity(const DtReflectedEntity& orig);
00131 
00133    DtReflectedEntity& operator=(const DtReflectedEntity& orig);
00134 
00135 protected:
00136 
00137    DtEntityIdentifier myId;
00138    DtEntityStateRepository* myEntityStateRep;
00139    DtEntityStateDecoder* myEntityDecoder;
00140    DtEntityIdentifierHashKey myHashKey;
00141 
00142 protected:
00143 
00144    static DtStateRepCreator theStateRepCreator;
00145 
00146 };
00147 
00148 inline const DtObjectId& DtReflectedEntity::localId() const
00149 {
00150    return id();
00151 }
00152 
00153 #endif
00154 #endif
00155 

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)