VR-Forces 4.0.4 Class Documentation
include/vrfExtObjects/refCtrlObjList.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #pragma once
00007 
00008 #include <vl/refEnvList.h>
00009 
00010 #include <vrfExtObjects/reflCtrlObj.h>
00011 #include <vl/dataInter.h>
00012 
00013 // class DtReflectedControlObjectList:
00014 //
00015 // Instances of DtReflectedControlObjectList manage the list of 
00016 // remote environmental processes in the exercise.
00017 
00018 #include <vrfExtObjects/vrfExtObjectsDefines.h>
00019 class DT_DLL_vrfExtObjects DtReflectedControlObjectList : public DtReflectedEnvironmentProcessList
00020 {
00021 
00022 public:
00023 
00024    // Constructor - obtains the set of object classes to subscribe
00025    // to from the exConn's fomMapper.
00026    DtReflectedControlObjectList(DtExerciseConn* exConn);
00027 
00028 #if DtHLA
00029    // Constructor - obtains the set of object classes to subscribe
00030    // to from the exConn's fomMapper.
00031    DtReflectedControlObjectList(DtExerciseConn* exConn,
00032      const DtDDMRegionSet* regionSetToUse);
00033 
00034    // Constructor - only subscribe to the RTI::ObjectClassHandles 
00035    // in handleList.
00036    DtReflectedControlObjectList ( DtExerciseConn* exConn, const DtList *handleList,
00037      const DtDDMRegionSet* regionSetToUse = 0);
00038 #endif
00039 
00040    // destructor
00041    virtual ~DtReflectedControlObjectList();
00042 
00043 #if DtHLA
00044 #if DtHLA_1516
00045    virtual DtReflectedControlObject* lookupCO(RTI::ObjectInstanceHandle id);
00046 #else
00047    virtual DtReflectedControlObject* lookupCO(RTI::ObjectHandle id);
00048 #endif
00049 #elif (DtDIS || DtTENA)
00050    // Look up environmental process by identifier.
00051    virtual DtReflectedControlObject* lookup(const DtObjectId& id);
00052 #else
00053 #  pragma message ( "No protocol defined." )
00054 #endif
00055 
00056    // Get the first/last environmental process in the list.
00057    virtual DtReflectedControlObject* firstCO() const;
00058    virtual DtReflectedControlObject* lastCO() const;
00059 
00060    // Look up an environmental process object by DtGlobalObjectDesignator.
00061    virtual DtReflectedControlObject* lookupCO(
00062       const DtGlobalObjectDesignator& designator);
00063 
00064    // Environmental process added callback registration/deregistration.
00065    virtual void addControlObjectAdditionCallback
00066    (
00067       DtControlObjectCallbackFunction cb, void* userData
00068    );
00069    virtual void removeControlObjectAdditionCallback
00070    (
00071       DtControlObjectCallbackFunction cb, void* userData\
00072    );
00073 
00074    // Environmental process removed callback registration/deregistration.
00075    virtual void addControlObjectRemovalCallback
00076    (
00077       DtControlObjectCallbackFunction cb, void* userData
00078    );
00079    virtual void removeControlObjectRemovalCallback
00080    (
00081       DtControlObjectCallbackFunction cb, void* userData
00082    );
00083 
00084 protected:
00085 
00086    // copy constructor
00087    DtReflectedControlObjectList
00088    (
00089       const DtReflectedControlObjectList& orig
00090    );
00091 
00092    // assignment operator
00093    DtReflectedControlObjectList& operator=
00094    (
00095       const DtReflectedControlObjectList& rhs
00096    );
00097 
00098    static void dataInteractionCallback(DtDataInteraction* i, void* usr);
00099 
00100    virtual void processDataInteraction(DtDataInteraction* i);
00101 
00102 #if DtHLA
00103    virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
00104 #elif (DtDIS || DtTENA)
00105    // Create a new reflected control object.
00106    virtual DtReflectedEnvironmentProcess* newReflectedEnvironmentProcess
00107    (
00108       const DtEntityIdentifier& id,
00109       const DtEntityType& type
00110    ) const;
00111 #else
00112 #  pragma message ( "No protocol defined." )
00113 #endif
00114 };

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)