VR-Forces 4.0.4 Class Documentation
include/vrfcontrol/remBatchMgr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2002 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: remBatchMgr.h,v $ $Revision: 1.14 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef DtRemoteBatchManager_H_
00013 #define DtRemoteBatchManager_H_
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include <vlutil/vlFilename.h>
00017 #include <vlutil/vlTime.h>
00018 #include <vlutil/vlList.h>
00019 
00020 #include "vrfcontrol/vrfController.h"
00021 
00022 class DtScenarioBatchIterator;
00023 class DtRemoteLoggerController;
00024 class DtExerciseConn;
00025 class DtClock;
00026 class DtScenario;
00027 class DtScenarioBatch;
00028 
00029 typedef void (*DtScenarioCallbackFcn)(void *usr);
00030 
00037 #include "vrfcontrol/vrfcontrolDefines.h"
00038 class DT_DLL_vrfcontrol DtRemoteBatchManager
00039 {
00041    enum State
00042    {
00043       StateIdle,
00044       StateRunStart,
00045       StateLoading,
00046       StateRunning,
00047       StateRunComplete,
00048       StateRunBatchComplete,
00049       StateErrorLoading,
00050       StateClosing,
00051    };
00052 
00053 public:
00054    DtRemoteBatchManager(DtVrfRemoteController *controller, 
00055       DtExerciseConn* exConn);
00056    virtual ~DtRemoteBatchManager();
00057 
00059    virtual bool init();
00060 
00061    virtual bool loadBatch(const DtFilename &batchFileName, 
00062       DtBackendRemappingFcn fcn = NULL, void* userData = NULL);
00063    virtual bool loadBatch(const DtScenarioBatch &batch, 
00064       DtBackendRemappingFcn fcn = NULL, void* userData = NULL);
00067    virtual bool runBatch();
00069    virtual bool stopBatch();
00071    virtual bool running();
00073    virtual bool done();
00074 
00076    virtual const DtScenarioBatchIterator* batchIterator();
00077 
00079    virtual void processBackendsLoadedCallback();
00080 
00082    virtual void addScenarioLoadingCallback(DtScenarioCallbackFcn fcn, void* usr);
00083    virtual void removeScenarioLoadingCallback(DtScenarioCallbackFcn fcn, void* usr);
00084 
00086    virtual void addScenarioLoadingErrorCallback(DtScenarioCallbackFcn fcn, void* usr);
00087    virtual void removeScenarioLoadingErrorCallback(DtScenarioCallbackFcn fcn, void* usr);
00088 
00090    virtual void addScenarioBatchCompleteCallback(DtScenarioCallbackFcn fcn, void* usr);
00091    virtual void removeScenarioBatchCompleteCallback(DtScenarioCallbackFcn fcn, void* usr);
00092 
00094    virtual void addScenarioClosingCallback(DtScenarioCallbackFcn fcn, void* usr);
00095    virtual void removeScenarioClosingCallback(DtScenarioCallbackFcn fcn, void* usr);
00096 
00098    virtual void processScenarioCallbacksForState(const State &state);
00099 
00101    virtual void removeCallbacksFor(DtScenarioCallbackFcn fcn, void* usrData, const State state);
00102 
00105    virtual void nextScenarioRun();
00106 
00109    virtual void nextScenario();
00110 
00112    virtual void idle();
00113 
00115    virtual void scheduleNextRun();
00116 
00117 public:
00118 
00120    static void tickCb(void* usr);
00121 
00124    static void backendsLoadedCallback(void *usr);
00125 
00126 protected:
00128    DtRemoteBatchManager();
00129    DtRemoteBatchManager(const DtRemoteBatchManager &orig);
00130    DtRemoteBatchManager& operator=(const DtRemoteBatchManager &orig);
00131 
00134    virtual DtFilename constructLoggerFilename(const DtScenario* scenario);
00135 
00137    virtual void tick();
00138 
00141    virtual double currentSimulationTime() const;
00142 
00143 protected:
00144    DtExerciseConn* myExConn;
00145    DtScenarioBatchIterator *myBatchIterator;
00146    DtRemoteLoggerController *myLoggerControl;
00147    DtVrfRemoteController *myRemoteController;
00148    DtClock *myClock;
00149    
00150    State myState;
00151    bool myRunning;
00152    bool myDone;
00153    DtTime myRunStartTime;
00154    bool myBackendsLoaded;
00155 
00156    DtList myCallbacks;
00157    
00158    DtBackendRemappingFcn myRemappingFcn;
00159    void* myRemappingFcnUserData;
00160 };
00161 
00162 #endif

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)