![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: disaggregatedPatrolBetweenController.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00015 00016 #ifndef disaggregatedPatrolBetweenController_H_ 00017 #define disaggregatedPatrolBetweenController_H_ 00018 00019 #include "vrfobjcore/singleTaskControllerComponent.h" 00020 #include <vlutil/vlString.h> 00021 00022 class DtSimMessage; 00023 class DtAggregatePatrolBetweenPSR; 00024 00040 #include "vrfmodel/vrfmodelDefines.h" 00041 class DT_DLL_vrfmodel DtDisaggregatedPatrolBetweenController : public DtSingleTaskControllerComponent 00042 { 00043 public: 00044 00047 DtDisaggregatedPatrolBetweenController(const DtString& name, 00048 DtVrfObject* owner, 00049 DtSimManager* simManager, 00050 DtComponentDescriptor* desc = 0, 00051 DtReaderWriterRegistry* parentRegistry = 0); 00052 00053 virtual ~DtDisaggregatedPatrolBetweenController(); 00054 00056 virtual bool init(); 00057 00060 virtual DtString type() const; 00061 00064 virtual void registerTaskMsgCallbacks(); 00065 00068 virtual void tick(); 00069 00071 virtual DtSimTaskStatePtr currentTaskState() const; 00072 00077 static void patrolTwoPointsTaskCallback(DtSimMessage * msg, void * usr, DtSimTaskStatePtr taskStatePtr); 00078 00082 static void taskCompleteReportCallback(DtSimMessage * msg, void * usr); 00083 00087 static DtSimComponent * creator(const DtString& name, 00088 DtVrfObject* owner, 00089 DtSimManager* simManager, 00090 DtComponentDescriptor* desc = 0, 00091 DtReaderWriterRegistry* parentRegistry = 0); 00092 00093 protected: 00094 00099 virtual void onPatrolTwoPointsTask(DtSimMessage * msg, DtSimTaskStatePtr taskStatePtr); 00100 00104 virtual void onTaskComplete(DtSimMessage * msg); 00105 00113 virtual bool moveTo(const DtString& controlPointName); 00114 00120 virtual bool createPSR(); 00121 00122 private: 00123 00125 DtDisaggregatedPatrolBetweenController(const DtDisaggregatedPatrolBetweenController& orig); 00126 00128 DtDisaggregatedPatrolBetweenController& operator=(const DtDisaggregatedPatrolBetweenController& orig); 00129 00130 protected: 00131 00134 DtAggregatePatrolBetweenPSR* myProcessState; 00135 00137 bool myFirstTick; 00138 }; 00139 00140 #endif