VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/vrfObjPlanMgr.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: vrfObjPlanMgr.h,v $ $Revision: 1.8 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef vrfObjPlanMgr_H_
00013 #define vrfObjPlanMgr_H_
00014 
00015 #include "vrfobjcore/vrfObjPlanMgrFact.h"
00016 
00017 class DtPlan;
00018 class DtPlanExecutor;
00019 class DtSimBlock;
00020 class DtSimCondExpr;
00021 class DtSimMessage;
00022 class DtSimulationAddress;
00023 class DtVrfObjectMessage;
00024 class DtIfPlan;
00025 class DtTaskMessage;
00026 
00035 
00036 #include "vrfobjcore/vrfobjcoreDefines.h"
00037 class DT_DLL_vrfobjcore DtVrfObjectPlanManager 
00038 {
00039 public:
00040 
00042    DtVrfObjectPlanManager(DtVrfObject* vrfObject);
00043 
00045    virtual ~DtVrfObjectPlanManager();
00046 
00048    virtual bool init();
00049 
00052    virtual void tick();
00053 
00056    virtual DtPlanExecutor* createPlanExecutor();
00057 
00062    virtual DtPlan* createAndInitPlan();
00063 
00065    virtual DtPlan* plan();
00066    
00069    virtual void setPlan(DtPlan* plan);
00070 
00074    virtual bool sendPlan();
00075 
00078    virtual bool sendPlanStatement(int statementId, 
00079       const DtSimulationAddress& address) const;
00080 
00085    virtual void updatePlanNames();
00086 
00088    virtual void updatePlanNames(DtSimBlock* block);
00089 
00092    virtual void updatePlanNames(DtSimCondExpr* condExpr);
00093 
00095    virtual void setTaskIssuedFromPlan(bool taskIssuedFromPlan);
00096    
00109    virtual void taskExecuted(const DtTaskMessage& msg, bool abandonPlan = true);
00110 
00112    static DtVrfObjectPlanManagerFactory* factory();
00114    static void setFactory(DtVrfObjectPlanManagerFactory* factory);
00115 
00118    virtual void processSetPlan(DtSimMessage* msg);
00119    virtual void processSetPlan(DtIfPlan* msgData);
00120 
00125    virtual void processRequestPlan(const DtSimMessage* msg);
00126 
00129    virtual void processAbandonPlan(DtSimMessage* msg);
00130 
00133    virtual void processRestartPlan(DtSimMessage* msg);
00134 
00137    static void currentStatementChangedCallback(const DtPlan& plan, 
00138       void* usrData);
00141    virtual void processCurrentStatementChanged(const DtPlan& plan);
00142 
00145    static DtVrfObjectPlanManager* creator(DtVrfObject* vrfObject);
00146 
00151    static DtVrfObjectPlanManager* createVrfObjectPlanManager(
00152       const DtString& type, DtVrfObject* vrfObject);
00153 
00157    virtual bool hasPlan() const;
00158 
00160    virtual bool executingPlan() const;
00161 
00164    virtual void notifyTaskCompletion(int taskId);
00165 
00166 protected:
00167 
00169    DtVrfObjectPlanManager();
00170 
00172    DtVrfObjectPlanManager(const DtVrfObjectPlanManager& orig);
00173 
00175    DtVrfObjectPlanManager& operator=(const DtVrfObjectPlanManager& orig);
00176 
00177 protected:
00178 
00179    DtPlan* myPlan;
00180    DtPlanExecutor* myPlanExecutor;
00181    DtVrfObject* myVrfObject;
00182    bool myTaskIssuedFromPlan;
00183    bool myPlanQueuedForAbandonment;
00184 
00186    static DtVrfObjectPlanManagerFactory* theFactory;
00187 };
00188 
00189 #endif
00190 

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)