VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/taskCtlrCmpnt.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: taskCtlrCmpnt.h,v $ $Revision: 1.32 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00014 
00015 
00016 #ifndef DtTaskControllerComponent_H_
00017 #define DtTaskControllerComponent_H_
00018 
00019 #include "vrfobjcore/cntrlCmpnt.h"
00020 #include "vrftasks/simTaskState.h"
00021 #include "vrfmsgs/msgExec.h"
00022 #include "vrftasks/taskAndTaskStateDefines.h"
00023 
00024 
00025 class DtSimManager;
00026 class DtTaskMessage;
00027 class DtSimMessage;
00028 
00029 typedef void (*DtTaskMessageCallbackFcn)(DtSimMessage * msg, void * usr, 
00030                                          DtSimTaskStatePtr taskState);
00031 
00032 typedef struct DtTaskProcessorCallbackInfo
00033 {
00034    DtMessageCallbackFcn myFunction;
00035    void* myUserData;
00036 } DtTaskProcessorCallbackInfo;
00037 
00049 #include "vrfobjcore/vrfobjcoreDefines.h"
00050 class DT_DLL_vrfobjcore DtTaskControllerComponent : public DtControllerComponent
00051 {
00052 
00053 public:
00054 
00060    DtTaskControllerComponent(const DtString& name, DtVrfObject* owner, 
00061       DtSimManager* simManager, 
00062       DtComponentDescriptor* compDesc = 0,
00063       DtReaderWriterRegistry* parentRegistry = 0);
00064 
00066    virtual ~DtTaskControllerComponent();
00067 
00069    virtual DtString type() const = 0;
00070 
00075    virtual void postTick();
00076 
00085    virtual bool beginProcessingTask(const DtTaskMessage& task, 
00086       DtSimTaskStatePtr taskState);
00087    
00090    virtual void taskNotify(const DtSimTask & task) {};
00091 
00093 
00094 
00095    virtual void setTasked(bool tasked);
00096    virtual bool tasked() const;
00098 
00104    virtual bool showCurrentTaskInGui() const;
00105 
00107    virtual void setRadio(DtSimBaseRadio * radio);
00108 
00109    virtual void registerTaskMsgCallbacks();
00110 
00122    virtual void addTaskProcessorCallback(int taskType, DtTaskMessageCallbackFcn fcn, void* usr);
00123 
00126    virtual void addTaskProcessorCallback(int taskType, DtMessageCallbackFcn fcn, void* usr);
00127 
00128 
00130    virtual void removeTaskProcessorCallback(int taskType, DtMessageCallbackFcn fcn, void* usr);
00131 
00134    virtual void removeTaskProcessorCallback(int taskType, DtTaskMessageCallbackFcn fcn, void* usr);
00135 
00139    static void deprecatedTaskProcessorCallbackAdapter(DtSimMessage * msg, void * usr,
00140       DtSimTaskStatePtr taskState);
00141 
00143    virtual bool taskActive(int taskId) const = 0;
00144 
00147    virtual bool clearTopLevelTasks() = 0;
00148 
00151    virtual void clearConflictingTopLevelTasks(int conflictId) = 0;
00152 
00154    virtual void clearTasksByType(int taskType) = 0;
00155 
00157    virtual void clearTaskById(int taskId) = 0;
00158 
00161    virtual std::list<DtTaskMessage*> currentTaskMessages() const = 0;
00162 
00165    virtual DtTaskWithTaskStateListPtr topLevelTasks() const = 0;
00166 
00168    virtual void enable();
00169 
00173    virtual void disable();
00174 
00175 protected:
00176 
00177  
00178 
00179 protected:
00180 
00183    typedef std::pair<DtTaskMessageCallbackFcn, void*> DtTaskCallbackMapPair;
00184    typedef std::map<int, DtTaskCallbackMapPair> DtTaskCallbackMap;
00185    DtTaskCallbackMap myTaskCallbackMap;
00186 
00189    std::list<DtTaskProcessorCallbackInfo*> myTaskProcessorCallbackInfoList;
00190 
00191 private:
00194    DtTaskControllerComponent();
00195 
00197    DtTaskControllerComponent(const DtTaskControllerComponent & orig);
00198 
00200    const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &
00201       orig);
00202 };
00203 
00204 #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)