VR-Link API Documentation for HLA 1.3
dReflEntList.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00009 
00010 #ifndef DtReflectedEntityList_H_
00011 #define DtReflectedEntityList_H_
00012 
00013 #if DtDIS
00014 
00015 #include "dRefObjList.h"
00016 #include "dReflectedEnt.h"
00017 #include "relLocPdu.h"
00018 #include "esUpdatePdu.h"
00019 #include "diGuyCustomPdu.h"
00020 #include "supEmisEsPdu.h"
00021 
00022 class DtEntityIdentifierHashKey;
00023 
00031 class DT_DLL_VL DtReflectedEntityList : public DtReflectedObjectList
00032 {
00033 
00034 public:
00035 
00037    DtReflectedEntityList(DtExerciseConn* exConn, 
00038       bool smoothCapable = false, bool processDiGuyPdus = false);
00039 
00041    virtual ~DtReflectedEntityList();
00042 
00044    virtual DtReflectedEntity* lookup(const DtObjectId& id) const;
00045 
00047    virtual DtReflectedEntity* first() const;
00048    virtual DtReflectedEntity* last() const;
00049 
00051    virtual void addEntityAdditionCallback(
00052       DtEntityCallbackFunction cb, void* userData);
00053    virtual void removeEntityAdditionCallback(
00054       DtEntityCallbackFunction cb, void* userData);
00055 
00057    virtual void addEntityRemovalCallback(
00058       DtEntityCallbackFunction cb, void* userData);
00059    virtual void removeEntityRemovalCallback(
00060       DtEntityCallbackFunction cb, void* userData);
00061 
00063    virtual void print();
00064 
00067    virtual DtReflectedEntity* processEntityState(const DtEntityStatePdu& pdu);
00068 
00070    virtual void processRelativeLocationPdu(const DtRelativeLocationPdu& pdu);
00071 
00073    virtual void processEntityStateUpdatePdu(
00074       const DtEntityStateUpdatePdu& pdu);
00075 
00078    virtual void processDiGuyPdu(
00079       const DtDIGuyCustomPdu& pdu);
00080 
00082    virtual void processSeesPdu(
00083       const DtSuppEmisEntStatePdu& pdu);
00084 
00089    virtual void setProcessDiGuyPdus(bool trueFalse);
00090    
00096    virtual void discoverOnlyWhenEntityTypeKnown(bool yesNo);
00097 
00098 protected:
00099 
00101    DtReflectedEntityList& operator=(
00102       const DtReflectedEntityList& orig);
00103 
00105    DtReflectedEntityList(const DtReflectedEntityList& orig);
00106 
00107 protected:
00108 
00112    virtual DtReflectedObject* newReflectedObj(const DtStateMsg& msg);
00113 
00115    virtual DtReflectedObject* processStateMessage(const DtStateMsg& msg);
00116 
00119    virtual void objectAdded(DtReflectedObject* obj);
00120 
00123    virtual void finalPduIsSetAction(DtReflectedEntity* entity); 
00124 
00126    virtual const DtBaseHashKey&
00127       hashKeyFromStateMessage(const DtStateMsg* msg);
00128 
00130    virtual DtReflectedEntity* newReflectedEntity(const DtEntityIdentifier& id,
00131       const DtEntityType& type) const;
00132 
00135    virtual void entityAdded(DtReflectedEntity* ent);
00136 
00137 protected:
00138 
00140    static void entityStateCb(DtEntityStatePdu* pdu, void* usr);
00141 
00143    static void relativeLocationCb( DtRelativeLocationPdu* pdu, void* usr );
00144 
00146    static void entityStateUpdateCb( DtEntityStateUpdatePdu* pdu, void* usr );
00147 
00149    static void diGuyPduCb(DtDIGuyCustomPdu* pdu, void* usr);
00150 
00152    static void seesPduCb(DtSuppEmisEntStatePdu* pdu, void* usr);
00153    
00156    static bool checkEntityType(DtReflectedObject* obj, void* usr);
00157 
00158 protected:
00159 
00160    bool mySmoothCapable;
00161    DtEntityIdentifierHashKey* myHashKey;
00162    bool myProcessingDiGuyPdus;
00163 };
00164 
00165 #endif
00166 #endif
00167 
00168 

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)