VR-Forces 4.0.4 Class Documentation
include/vrfmodel/disaggregatedMoveToLocationController.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: disaggregatedMoveToLocationController.h,v $ $Revision: 1.1 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00015 
00016 #ifndef disaggregatedMoveToLocationController_H_
00017 #define disaggregatedMoveToLocationController_H_
00018 
00019 #include "vrfobjcore/singleTaskControllerComponent.h"
00020 #include <vector>
00021 
00022 class DtSimMessage;
00023 class DtVrfAggregateStateRepository;
00024 class DtAggregateMoveToLocationPSR;
00025 
00041 #include "vrfmodel/vrfmodelDefines.h"
00042 class DT_DLL_vrfmodel DtDisaggregatedMoveToLocationController : public DtSingleTaskControllerComponent
00043 {
00044 public:
00045 
00046    typedef enum DtSubtaskImplementation
00047    {
00048       DtImplementAsMoveIntoFormation = 0,
00049       DtImplementAsMoveAlongRoute
00050    } DtSubtaskImplementation;
00051 
00054    DtDisaggregatedMoveToLocationController(const DtString& name, 
00055       DtVrfObject* owner,
00056       DtSimManager* simManager, 
00057       DtComponentDescriptor* desc = 0,
00058       DtReaderWriterRegistry* parentRegistry = 0);
00059 
00060    virtual ~DtDisaggregatedMoveToLocationController();
00061 
00064    virtual DtString type() const;
00065 
00067    virtual bool init();
00068 
00070    virtual void clearTask();
00071 
00074    static void moveToLocationTaskCallback(DtSimMessage * msg, void * usr);
00075 
00078    static void taskCompleteReportCallback(DtSimMessage * msg, void * usr);
00079 
00083    static DtSimComponent * creator(const DtString& name, 
00084       DtVrfObject* owner,
00085       DtSimManager* simManager, 
00086       DtComponentDescriptor* desc = 0,
00087       DtReaderWriterRegistry* parentRegistry = 0);
00088 
00089 protected:
00090 
00093    virtual void registerTaskMsgCallbacks();
00094 
00100    virtual bool createPSR();
00101 
00105    virtual void onMoveToLocationTask(DtSimMessage * msg);
00106 
00110    virtual void onTaskComplete(DtSimMessage * msg);
00111 
00119    DtSubtaskImplementation chooseSubtaskImplementation(
00120       const DtVector& geocDestination) const;
00121 
00128    virtual void moveIntoFormation(const DtVector& geocDestination);
00129 
00135    void moveAlongRoute(const DtVector& geocDestination);
00136 
00144    virtual bool calcRouteStartingPoint(const DtVector& geocEndPoint,
00145       DtVector& geocStartPoint) const;
00146 
00149    virtual DtString generateWorkingRouteName() const;
00150 
00153    virtual bool publishFormationRoutes() const;
00154 
00155 private:
00156 
00158    DtDisaggregatedMoveToLocationController(
00159       const DtDisaggregatedMoveToLocationController& orig);
00160 
00162    DtDisaggregatedMoveToLocationController& operator=(
00163       const DtDisaggregatedMoveToLocationController& orig);
00164 
00165 protected:
00166 
00169    DtVrfAggregateStateRepository* myAggregateStateRepository;
00170 
00173    DtAggregateMoveToLocationPSR* myProcessState;
00174 
00178    mutable bool myToggleGeneratedName;
00179 };
00180 
00181 #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)