VR-Link API Documentation for HLA Evolved
hRefEmSysList.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00009 #pragma once
00010 #if DtHLA 
00011 
00012 #include "hRefObjList.h"
00013 #include "hReflEmitrSys.h"
00014 #include "hRefBeamList.h"
00015 
00018 class DT_DLL_VL DtReflectedEmitterSystemList : public DtReflectedObjectList
00019 {
00020 public:
00021 
00025    DtReflectedEmitterSystemList(DtExerciseConn* exConn,
00026       bool beamsUpdateSystems = true, const DtDDMRegionSet* regionSetToUse = 0,
00027       const DtString& updateRateTag = DtString(""));
00028 
00031    DtReflectedEmitterSystemList(DtExerciseConn* exConn, 
00032       const DtList *handleList, bool beamsUpdateSystems = true, 
00033       const DtDDMRegionSet* regionSetToUse = 0,
00034       const DtString& updateRateTag = DtString(""));
00035 
00037    virtual ~DtReflectedEmitterSystemList();
00038 
00039 private:
00040 
00042    DtReflectedEmitterSystemList(const DtReflectedEmitterSystemList& orig);
00043 
00045    DtReflectedEmitterSystemList& operator=
00046       (const DtReflectedEmitterSystemList& orig);
00047 
00048 public:
00049 
00051    virtual DtReflectedEmitterSystem* lookup(
00052 #if DtHLA_1516
00053       RTI::ObjectInstanceHandle id);
00054 #else
00055       RTI::ObjectHandle id);
00056 #endif
00057 
00059    virtual DtReflectedEmitterSystem* lookup(
00060       const DtGlobalObjectDesignator& emittingEntity,
00061       int systemId) const;
00062 
00064    virtual DtReflectedEmitterSystem* lookup(
00065       const DtGlobalObjectDesignator& objName);
00066 
00068    virtual DtReflectedEmitterSystem* first() const;
00069    virtual DtReflectedEmitterSystem* last() const;
00070 
00074    virtual void addEmitterSystemAdditionCallback(
00075       DtEmitterSystemCallbackFunction cb, void* userData);
00076    virtual void removeEmitterSystemAdditionCallback(
00077       DtEmitterSystemCallbackFunction cb, void* userData);
00078 
00082    virtual void addEmitterSystemRemovalCallback(
00083       DtEmitterSystemCallbackFunction cb, void* userData);
00084    virtual void removeEmitterSystemRemovalCallback(
00085       DtEmitterSystemCallbackFunction cb, void* userData);
00086 
00097    virtual DtReflectedEmitterBeamList* refBeamList();
00098 
00104    virtual void setDiscoveryCondition(DtDiscoveryCondition fn, void* usr);
00105 
00109    virtual void clearDiscoveryCondition();
00110 
00117    virtual void setBeamDiscoveryCondition(DtDiscoveryCondition fn, void* usr);
00118    
00120    virtual void clearBeamDiscoveryCondition();
00121 
00126    virtual bool delayBeamDiscovery(DtReflectedObject* beam, void* emitSysList);
00127 
00128 
00129 protected:
00130 
00134    virtual void processDiscoverObject(DtHlaObject* obj);
00135 
00140    virtual void processRemoveObject(DtHlaObject* obj);
00141 
00148    virtual void processEmitterBeamAddition(DtReflectedEmitterBeam* beam);
00149    virtual void processEmitterBeamUpdate(DtReflectedEmitterBeam* beam);
00150    virtual void processEmitterBeamRemoval(DtReflectedEmitterBeam* beam);
00151 
00155    virtual void resolveOrphans();
00156 
00158    virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
00159 
00162    virtual DtReflectedEmitterSystem* newReflectedEmitterSystem(
00163       const DtGlobalObjectDesignator& des) const;
00164 
00169    virtual void objectAdded(DtReflectedObject* obj);
00170 
00174    virtual bool shouldBeTimedOut(DtReflectedObject* object);
00175 
00178    virtual const DtList* dfltHandleList();
00179 
00180 
00181 protected:
00182 
00185    static void emitterBeamAdditionCb(
00186       DtReflectedEmitterBeam* beam, void* usr);
00187    static void emitterBeamUpdateCb(
00188       DtReflectedEmitterBeam* beam, void* usr);
00189    static void emitterBeamRemovalCb(
00190       DtReflectedEmitterBeam* beam, void* usr);
00191 
00193    static void resolveOrphansPostDrainCb(void *usr);
00194 
00199    static bool delayBeamDiscoveryCondition(
00200       DtReflectedObject* beam, void* emitSysList);
00201 
00202 protected:
00203 #if !DtHLA_1516
00204    DtObjectId myCounterId; 
00205 #endif
00206    DtList myOrphanBeams;
00207    DtReflectedEmitterBeamList myBeamList;
00208    bool myBeamsUpdateSystems;
00209 
00210    DtDiscoveryCondition myBeamDiscoveryCondition;
00211    void* myBeamDiscoveryConditionParameter;
00212 };
00213 
00214 #endif   //DtHLA
00215 

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)