VR-Forces 4.0.4 Class Documentation
include/vrfcore/simMgr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: simMgr.h,v $ $Revision: 1.87 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef simMgr_H_
00009 #define simMgr_H_
00010 
00011 
00015 
00018 
00019 
00020 #include "vrfutil/callbackList.h"
00021 #include <vl/hostStructs.h>
00022 #include <vlutil/vlMachineTypes.h>
00023 #include <vrfmsgs/msgExec.h>
00024 
00027 class DtExerciseConn;
00028 class DtPhysicalWorld;
00029 class DtCommModelManager;
00030 class DtReflectedExtEntityList;
00031 class DtThreadSocket;
00032 class DtThreadMessageList;
00033 class DtFrameRateMonitor;
00034 class DtResourceMonitor;
00035 
00038 class DtEntityType;
00039 class DtVector;
00040 class DtEchelonRoleName;
00041 class DtString;
00042 class DtList;
00043 class DtSimInterfaceMessage;
00044 class DtEntityType;
00045 class DtSimInterfaceContent;
00046 
00050 class DtScheduler;
00051 class DtExerciseClock;
00052 class DtVrfObjectManager;
00053 class DtAggregateSpatialModel;
00054 class DtDetonationManager;
00055 class DtFireManager;
00056 class DtGlobalPlanManager;
00057 class DtInterfaceMessageExecutive;
00058 class DtJoyDeviceManager;
00059 class DtVrfMessageInterface;
00060 class DtStealthRemoteController;
00061 class DtHostilityManager;
00062 class DtScenarioExtrasMgr;
00063 class DtVrfSimSettingsManager;
00064 
00066 typedef void (*DtSimTickFunction)(void* userData);
00067 
00075 #include "vrfcore/vrfcoreDefines.h"
00076 class DT_DLL_vrfcore DtSimManager
00077 {
00078 public:
00079 
00081    DtSimManager(DtExerciseConn* connection);
00082 
00084    virtual ~DtSimManager();
00085 
00086 private:
00087 
00090    DtSimManager(const DtSimManager& orig);
00091 
00094    DtSimManager& operator=(const DtSimManager& orig);
00095 
00096 public:
00097 
00102    virtual bool init();
00103 
00113    virtual bool createExerciseClock();
00114 
00115    virtual bool createScheduler();
00116    virtual bool createMessageInterface();
00117    virtual bool createFrameRateMonitor();
00119    virtual bool createVrfSimSettingsManager();
00120    
00123    virtual void tick();
00124 
00125    
00131    virtual void setTargetFrameRate(int rate);
00132    virtual int targetFrameRate() const;
00134 
00137    virtual void sleep() const;
00138 
00139    virtual bool deliverMessage(const DtSimInterfaceMessage& msg);
00140    virtual bool receiveMessage(const DtSimInterfaceMessage& msg);
00141 
00142    virtual bool createAndDeliverMessage(
00143       const DtSimulationAddress& recipient, 
00144       const DtSimInterfaceContent & content,
00145       bool overrideTimestampOrder = true);
00146 
00147 #if XXX
00148 
00149    virtual bool createAndDeliverMessage(const DtSimulationAddress& sender,
00150     const DtSimulationAddress& recipient, 
00151     const DtSimInterfaceContent & content);
00152 #endif
00153 
00161 
00162    virtual void addTickEntry(DtSimTickFunction tickFunction, void* userData);
00163    virtual void removeTickEntry(DtSimTickFunction tickFunction, void* userData);
00165 
00169    virtual DtExerciseConn* exerciseConn();
00170 
00173    virtual DtExerciseClock* exerciseClock();
00174 
00179    virtual DtFrameRateMonitor* frameRateMonitor();
00180 
00182    virtual DtScheduler* scheduler();
00183 
00186 
00187    virtual void setPhysicalWorld(DtPhysicalWorld* newPhysicalWorld);
00188    virtual DtPhysicalWorld* physicalWorld();
00189    virtual const DtPhysicalWorld* physicalWorld() const;
00191 
00193 
00194    virtual void setCommModelManager(DtCommModelManager* newCommModelManager);
00195    virtual DtCommModelManager* commModelManager();
00196    virtual const DtCommModelManager* commModelManager() const;
00198 
00201    virtual void setVrfObjectManager (DtVrfObjectManager* entityManager);
00202    virtual DtVrfObjectManager* vrfObjectManager();
00203    virtual const DtVrfObjectManager* vrfObjectManager() const;
00204 
00207    virtual void setAggregateSpatialModel (DtAggregateSpatialModel* aggregateSpatialModel);
00208    virtual DtAggregateSpatialModel* aggregateSpatialModel();
00209    virtual const DtAggregateSpatialModel* aggregateSpatialModel() const;
00210 
00214    virtual void setDetonationManager(DtDetonationManager* detonationManager);
00215    virtual DtDetonationManager* detonationManager();
00216 
00222    virtual void setFireManager(DtFireManager* fireManager);
00223    virtual DtFireManager* fireManager();
00224 
00228 
00229    virtual void setGlobalPlanManager(DtGlobalPlanManager* planManager);
00230    virtual const DtGlobalPlanManager* globalPlanManager() const;
00231    virtual DtGlobalPlanManager* globalPlanManager();
00233 
00235    virtual void setJoyDeviceManager(DtJoyDeviceManager* joyDeviceManager);
00236    virtual const DtJoyDeviceManager* joyDeviceManager() const;
00237    virtual DtJoyDeviceManager* joyDeviceManager();
00238 
00240 
00241    virtual void setHostilityManager(DtHostilityManager* hostilityManager);
00242    virtual const DtHostilityManager* hostilityManager() const;
00243    virtual DtHostilityManager* hostilityManager();
00245 
00247 
00248    virtual void setScenarioExtrasMgr(DtScenarioExtrasMgr* scenarioExtrasMgr);
00249    virtual const DtScenarioExtrasMgr* scenarioExtrasMgr() const;
00250    virtual DtScenarioExtrasMgr* scenarioExtrasMgr();
00252 
00254    virtual void setStealthRemoteController(DtStealthRemoteController* controller);
00255    virtual DtStealthRemoteController* stealthRemoteController();
00256 
00258    virtual DtVrfSimSettingsManager* vrfSimSettingsManager();
00259    
00262    virtual void addMessageCallback(int type, DtMessageCallbackFcn fcn, 
00263       void* usrData);
00264 
00265    virtual void removeMessageCallback(int type, DtMessageCallbackFcn fcn, 
00266       void* usrData);
00267 
00271 
00272    virtual DtVrfMessageInterface* messageInterface() const;
00273    virtual DtInterfaceMessageExecutive* messageExecutive();
00274 
00277    static void TickFunction(void* userData);
00278 
00282    virtual void registerInterfaceCallbacks();
00283 
00286    virtual const DtSimulationAddress& messageAddress() const;
00287 
00289    static void randSeedCallback(DtSimMessage* msg, void* usr);
00290 
00292    virtual unsigned long sequenceNumber();
00293 
00296    virtual void setSequenceNumber(unsigned long sequenceNumber);
00297 
00299    DtResourceMonitor* resourceMonitor();
00300    void setResourceMonitor(DtResourceMonitor*);
00301 
00303    virtual int vrfSessionId() const;
00304 
00306    virtual int vrfMessageVersionSupported() const;
00307 
00308 protected:
00309 
00311    DtScheduler*                 myScheduler;
00316    DtExerciseClock*             myExerciseClock;
00317    DtNoArgumentCallbackList     myTickList;
00318    DtFrameRateMonitor*          myFrameRateMonitor;
00319    DtVrfSimSettingsManager*     myVrfSimSettingsManager;
00321    DtVrfMessageInterface*       myMessageInterface;
00322 
00324    DtExerciseConn*              myExerciseConn;
00325    DtPhysicalWorld*             myPhysicalWorld;
00326    DtCommModelManager*          myCommModelManager;
00327    DtVrfObjectManager*          myVrfObjectManager;
00328    DtAggregateSpatialModel*     myAggregateSpatialModel;
00329    DtDetonationManager*         myDetonationManager;
00330    DtFireManager*               myFireManager;
00331    DtGlobalPlanManager*         myGlobalPlanManager;
00332    DtJoyDeviceManager*          myJoyDeviceManager;
00333    DtHostilityManager*          myHostilityManager;
00334    DtScenarioExtrasMgr*         myScenarioExtrasMgr;
00335    DtResourceMonitor*           myResourceMonitor;
00336    DtStealthRemoteController*   myStealthRemoteController;
00337 
00338    int myTargetFrameRate;
00339 };
00340 
00341 inline DtResourceMonitor* DtSimManager::resourceMonitor()
00342 {
00343    return myResourceMonitor;
00344 }
00345 
00346 inline void DtSimManager::setResourceMonitor(DtResourceMonitor* m)
00347 {
00348    myResourceMonitor = m;
00349 }
00350 
00351 #endif
00352 

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)