VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Types | Protected Attributes | Static Protected Attributes | Private Member Functions
DtSimTaskManager Class Reference

Class Description: DtSimTaskManager manages the bookkeeping associated with starting, completing, clearing, and skipping tasks. More...

Inheritance diagram for DtSimTaskManager:
Inheritance graph
[legend]

Public Types

typedef DtCallbackList< const
DtTaskMessage & > 
DtTaskCompleteCallbackList
typedef std::set
< DtSimTaskMessageType
SupportingTasks
typedef std::map< int,
SupportingTasks
AvailableSupportingTasks
- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString > 
aliasContainer
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
typedef std::vector< DtFilename > SearchPaths
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()

Public Member Functions

 DtSimTaskManager (const DtString &name, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry=0)
 constructor
 DtSimTaskManager (const DtSimTaskManager &orig, DtReaderWriterRegistry *parentRegistry=0)
 copy constructor
const DtSimTaskManageroperator= (const DtSimTaskManager &orig)
 assignment operator
virtual ~DtSimTaskManager ()
 destructor
virtual bool init ()
 Calls base class init(), and registerRadioMessageCallbacks().
virtual void tick ()
 Sends awaitingTask message to plan engine if needed.
virtual void addTaskProcessor (const DtSimTaskMessageType &taskType, DtTaskControllerComponent *taskController)
 Registers a task controller as a processor for a specific task type.
virtual void removeTaskProcessor (const DtSimTaskMessageType &taskType, DtTaskControllerComponent *taskController)
 Removes a task controller that has previously registered for as a task processor for a specific task type.
virtual void removeAllReferencesToController (DtTaskControllerComponent *taskController)
 Removes all task processors that are registered by this controller.
virtual std::vector
< DtSimTaskMessageType
capableTaskIds () const
virtual AvailableSupportingTasks supportingTasks () const
virtual SupportingTasks supportingTasks (int) const
virtual bool transitionTask (DtTaskMessage &taskMsg, DtSimTaskStatePtr taskState)
 Transitions the task from controller state to another.
virtual int suspendTasks (std::set< DtString > actionCategories)
 Function to suspend.
virtual int suspendAllTopLevelTasks ()
 Suspends all top level tasks.
virtual DtSuspendedTaskInfosuspendTask (int taskId)
 Suspends a specific task, and returns the suspend info.
virtual bool resumeTasks (int suspendId)
 Takes a suspend ID generated from a call to suspend, and resumes any tasks that were suspended with this ID.
virtual bool taskActive (int taskId) const
virtual void registerInterfaceMessageCallbacks ()
 Registers a callback for Skip Task messages.
virtual void registerRadioMessageCallbacks ()
 Register for TaskedBySuperior and DtClearTask radio messages.
virtual void taskNotify (const DtSimTask &task, const DtSimComponent &notifier)
 Called by controller component when task is received.
virtual void skipTask (bool fromSuperior=false)
 Called by controller component when task is received.
virtual void taskComplete (const DtVrfObjectMessage &radioMsg, bool success)
 Called by controller component when task is complete.
virtual void sendTaskCompleted (const DtTaskMessage &taskMsg, bool success)
 send a task complete report message to the originator of a task (as indicated by the sender field of the task message sent)
void awaitingTask (int taskIdJustCompleted=-1)
 Calls awaitingTask on the DtPlan via the DtVrfObjectPlanManager Specify the task ID of the task that just completed, if available.
virtual void setTaskedBySuperior ()
 Equivalent to localState()->setIndependentlyTasked(false) for local entities, but deriving pseudo aggregates do more...
virtual bool requestTaskNeeded () const
 Will we ask the plan manager for a task this tick.
virtual void setRequestTaskNeeded (bool requestTaskNeeded)
 Used within the task manager.
virtual bool independentlyTasked () const
 Are we tasked independently (plan or user) or by a superior (pseudo-aggregate) entity?
virtual void setIndependentlyTasked (bool independentlyTasked)
 Sets independentlyTasked flag.
virtual bool currentTasksMatchEchelonId ()
 Returns true only if all current tasks are addressed to the current echelon ID of myVrfObjecet, or if the current echelon ID is blank.
virtual bool isPseudoAggregate () const
 Indicates whether or not the type of task manager created supports pseudo-aggregates.
virtual DtString type () const
 Returns the type of task manager object.
virtual DtVrfObjectvrfObject () const
 Returns a pointer to the simObject this task manager is attached to.
virtual void setVrfObject (DtVrfObject *vrfObject)
 Sets myVrfObject.
virtual void addSupportingTask (int, const DtSimTaskMessageType &)
 Adds/remove supporting tasks.
virtual void addSupportingTasks (int, const SupportingTasks &)
 Adds/remove supporting tasks.
virtual void removeSupportingTask (int, const DtSimTaskMessageType &)
 Adds/remove supporting tasks.
virtual void removeSupportingTasks (int)
 Adds/remove supporting tasks.
virtual bool executeTask (DtTaskMessage &taskMsg)
 Starts the execution of this task.
virtual bool executeTask (DtTaskMessage &taskMsg, DtSimTaskStatePtr taskState)
 Starts the execution of this task.
virtual void addTaskCompleteCallback (DtTaskCompleteCallbackList::DtCallbackFunctionType fcn, void *usr)
 Callbacks that are invoked any time a task is complete.
virtual void removeTaskCompleteCallback (DtTaskCompleteCallbackList::DtCallbackFunctionType fcn, void *usr)
 Callbacks that are invoked any time a task is complete.
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 default constructor
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 real constructor Setting the readonly flag prevents object from writing itself to the stream.
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 pseudo-copy constructor
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 copy constructor
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 assignment operator
bool operator== (const DtReaderWriter &) const
 Equivalence operator.
bool operator!= (const DtReaderWriter &rhs)
virtual ~DtReaderWriter ()
 destructor
virtual void putSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Top level call to write itself to file.
virtual void postPutSelf ()
 Called after either version of put self (file or environment). Default is no-op.
virtual void prePutSelf ()
 Called before either version of put self (file or environment). Default is no-op.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Top level to read itself from an input stream.
virtual void postGetSelf ()
 Called after either version of getSelf (mtl or environment). Default is no-op.
virtual void preGetSelf ()
 Called before either version of get self (file or environment). Default is no-op.
virtual void writeSelf (FILE *fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in the registry.
virtual DtSymbolString name () const
 Accessor for name of this readable/writable object.
virtual void addAlias (const DtSymbolString &alias)
 Add an alias as an alternative name for this object.
virtual bool hasAlias (const DtSymbolString &alias)
virtual const aliasContaineraliases () const
virtual void setReadonly (bool flag)
 Set read-only flag.
virtual bool isReadonly () const
virtual void reset ()
 For those reader/writer items that support it, resets the reader/writer value to iriginal state Default is no-op.
virtual int alignment () const
 For those items that are sent over the network via HLA, this will give the network alignment.
virtual bool variableIsBound () const
virtual void unbindVariable ()
 Sets the myVariableIsBound flag to false.
virtual void setName (const DtString &)
 Set the name of the object.
virtual const charreaderWriterType () const
 Used to supply a string type that this reader writer type is.
virtual const charxmlType () const
virtual DtString prettyPrint () const
 Routine to return a human readable form of the reader/writer variable.
std::string debugText () const
virtual void bindVariables (DtVariableBindingsList variableBindings)
 Runs a variable binding pass on this reader writer and any of its children.
virtual std::list
< DtVariableNameType
unboundVariables () const
bool invalid () const
virtual bool hasChild (const DtReaderWriter *p) const
 Returns true if this variable has a child p in it's chain.
virtual bool hasVariableReference () const
 Returns true if this item or any item in the registry (recursive) is a variable reference.
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 Checks to see if this RW object is a variable reference that can be bound using the provided bindings.
virtual void recordUpdateTime () const
 Can be implemented in subclasses to stamp the time when updated.
virtual bool wasUpdatedSince (DtTime t) const
 Can be implemented in subclasses to return true if an update occurred after the specified time.
virtual void putData (FILE *fp, int indentLevel=0)
 Deriving class overrides these to get/put class specific data.
virtual DtlObjPtr getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 Deriving class overrides these to get/put class specific data.
virtual void setValueSpecified (bool specified, bool recurse=false)
 The specified flags are used for optional values.
virtual bool valueSpecified () const
 The specified flags are used for optional values.
virtual bool isVariableReference () const
 Specifies whether or not this reader writer is really a variable that is specified elsewhere.
virtual void setIsVariableReference (bool value)
virtual void clearAllVariableReferenceFlags ()
 Clears out all variable reference flags from all readerwriter items in registry recursively.
virtual DtSymbolString variableName () const
 The variable name, if this object is a variable reference.
virtual void setVariableName (const DtSymbolString variableName)
 The variable name, if this object is a variable reference.
virtual const DtReaderWriterdefaultRWValue () const
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual DtReaderWriterdefaultRWValue ()
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual void setDefaultRWValue (DtReaderWriter *)
 Previous default value, if exists, will be removed and replaced with a clone of the supplied variable.
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Give the stream, if the stream contains a default value then set it here.
const DtReaderWriterRegistryregistry () const
 Collection of child DtReaderWriter nodes owned by this object.
DtReaderWriterRegistryregistry ()
 Collection of child DtReaderWriter nodes owned by this object.
virtual DtPropertyInterfaceproperty ()
virtual const DtPropertyInterfaceproperty () const
virtual DtString toXml () const
virtual bool toXml (const DtFilename &) const
 Writes contents of xml result to the given filename.
virtual bool fromXml (const DtString &)
 Restores object from given xml string. Returns true if valid.
virtual bool fromXmlFile (const DtFilename &)
 Restires object from given xml file.
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
virtual void putData (DtEnvironmentSP, DtEnvValueSP value) const
 Override to add attributes of actual data.
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 Called when the item is a variable reference.
virtual void getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
virtual void getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 Gets data from the environment value.
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 Called when the xml reader tries to parse an unknown reader/writer item. Default is a no-op.
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 Called when the item is a variable reference.

Protected Types

typedef std::map
< DtSimTaskMessageType,
DtTaskControllerComponent * > 
DtTaskProcessorMap

Protected Attributes

DtVrfObjectmyVrfObject
std::vector
< DtOnTaskNotifyCallbackInfo
myOnTaskNotifyCallbacks
bool myHaveRegisteredOrgMgrCallback
DtTaskProcessorMap myTaskProcessorMap
 Stores all the registered task processor interfaces, indexed by task type they process.
bool mySendSkipTaskMessages
 Determines whether processSubordinateRemoved will send a skip task message.
int myNumberOfTaskSubscriptions
 Counter which holds the number of times the current task status has been subscribed to minus the number of times it has been unsubscribed.
bool mySendTasksNextTick
 Set to true if the task manager should send the list of current tasks next tick.
DtTaskCompleteCallbackList myTaskCompleteCallbackList
DtScriptReactiveTaskControllermyReactiveTaskController
bool myResumingTasks
AvailableSupportingTasks myAvailableSupportingTasks
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
DtReaderWriterRegistry myRegistry
DtReaderWriterRegistrymyParentRegistry
bool myValueSpecified
bool myReadOnlyFlag
bool myIsVariableReference
DtSymbolString myVariableName
bool myVariableIsBound
DtReaderWritermyDefaultValue
aliasContainer myAliases
 Container for the aliases which represent alternative names for the object.
bool myInvalid
 Set to true if there is a problem reading this item.

Static Protected Attributes

static DtSimTaskManagerFactorytheFactory
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
static DtGetSelfCallbackInfo thePostGetSelfCallback
static DtPutSelfCallbackInfo thePrePutSelfCallback
static const DtVariableBindingsList theEmptyVariableBindingsList
static bool theCreatorFcnSet
static DtReaderWriterFactorytheFactory
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn

Private Member Functions

 DtSimTaskManager ()
 Not implemented.
virtual void setSendSkipTaskMessages (bool sendSkipTaskMessages)
 Accessor/mutator for mySendSkipTaskMessages.
virtual bool sendSkipTaskMessages ()
 Accessor/mutator for mySendSkipTaskMessages.
virtual void addOnTaskNotifyCallback (DtOnTaskNotifyCallbackFcn fcn, void *userData)
 Registers callback to invoked after taskNotify() is called (at the point when an entity starts executing a new task).
virtual void removeOnTaskNotifyCallback (DtOnTaskNotifyCallbackFcn fcn, void *userData)
 Removes callback to invoked after taskNotify() is called (at the point when an entity starts executing a new task).
virtual void clearSubtask (int subtaskId)
 Locates DtTaskControllerComponent currently executing a task with the given subtaskId, and calls clearTask() on that component.
virtual DtTaskWithTaskStateListPtr topLevelTasks () const
virtual bool hasTopLevelTask () const
virtual bool taskTypesAreExclusive (const DtSimTaskMessageType &taskType1, const DtSimTaskMessageType &taskType2) const
virtual bool canExecuteTask (const DtSimTaskMessageType &) const
 True if this object will support the given task
virtual void clearTaskByType (const DtSimTaskMessageType &taskType)
 Accessor/mutator for mySendSkipTaskMessages.
virtual void updateTaskInfo ()
 Accessor/mutator for mySendSkipTaskMessages.
virtual
DtScriptReactiveTaskController
reactiveTaskController ()
virtual void setReactiveTaskController (DtScriptReactiveTaskController *reactiveTaskController)
 Accessor/mutator for mySendSkipTaskMessages.
static void taskedBySuperiorRequestCallback (DtSimMessage *msg, void *usrData)
 The manager will register a callback with the radio's msg executive requesting notification of Tasked By Superior Set Data Requests.
static void skipTaskCallback (DtSimMessage *msg, void *usr)
 The manager will register a callback with its simManager's msg executive requesting notification of Skip Task Interface Requests.
static void clearTaskCallback (DtSimMessage *msg, void *usr)
 Callback function for handling DtClearTask messages.
static void objectAboutToBeRemovedCallback (DtVrfObject *object, void *usr)
 Callback function for cleaning up task manager just before the host object is removed from the simulation.
static void subordinateRemoved (DtEntityIdentifier childEid, void *usr)
 Callback for handling subordinate (child) removed events.
static DtSimTaskManagercreator (const DtString &name, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry)
 Accessor/mutator for mySendSkipTaskMessages.
static DtSimTaskManagerFactoryfactory ()
 A DtSimEntityFactory is allocated by the DtSimCreator, and this pointer is set.
static void setFactory (DtSimTaskManagerFactory *factory)
 Accessor/mutator for mySendSkipTaskMessages.
static void addSimTaskManagerCreatorFcn (const DtString &type, DtSimTaskManagerCreatorFcn fcn)
 Accessor/mutator for mySendSkipTaskMessages.
static DtSimTaskManagercreateTaskManager (const DtString &name, const DtString &type, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry=0)
 Creates a new task manager, using the factory.
virtual void processClearTask (DtSimMessage *msg)
 Finds task controller currently tasked with task of type specified in clear task message and calls its clearTask() method.
virtual void processObjectAboutToBeRemoved (DtVrfObject *object)
 If the object is our host entity, calls clearTopLevelTask() to clean up any active tasks before the object is removed.
virtual void resumeTaskTree (DtSuspendedTaskInfo *suspendedTaskInfo)
 Accessor/mutator for mySendSkipTaskMessages.
virtual bool clearAllTopLevelTasks ()
 Cancels all top level tasks currently executing on the entity.
virtual void clearConflictingTopLevelTasks (const DtSimTaskMessageType &taskType)
 Cancels any top level tasks that are running on the entity if they conflict with the specified task type.
virtual void onTaskNotify (const DtSimTask &task, const DtSimComponent &notifier)
 Hook function called at the end of taskNotify().
void processSubordinateRemoved (DtEntityIdentifier childEid)
 If we are currently tasked and former subordinate is not independently tasked, sends a skip task message to this former subordinate.
virtual void processTaskMessage (DtSimMessage *msg)
 Calls executeTask().
virtual bool startTaskExecution (DtTaskMessage &taskMsg, DtSimTaskStatePtr taskState, bool taskNotify)
 Used by executeTask() and other similar methods to start the execution of a task.
virtual std::vector
< DtSimTaskMessageType
conflictingTaskTypes (const DtSimTaskMessageType &testTaskType) const
virtual std::list< DtStringtaskGroupsForTask (const DtSimTaskMessageType &taskType) const
virtual void processRequestCurrentTasks (const DtVrfObjectMessage *msg)
 Accessor/mutator for mySendSkipTaskMessages.
virtual void processUnsubscribeCurrentTasks (const DtVrfObjectMessage *msg)
 Accessor/mutator for mySendSkipTaskMessages.
virtual void sendCurrentTasks ()
 Accessor/mutator for mySendSkipTaskMessages.
virtual void addSubtasksToCurrentTaskMessage (const DtSuspendedTaskInfoList &subtaskList, int parentTaskId, DtCurrentTasksAdminContent &adminContent)
 Accessor/mutator for mySendSkipTaskMessages.
virtual void processClearTaskByTrackingNumber (const DtVrfObjectMessage *msg)
 Accessor/mutator for mySendSkipTaskMessages.
virtual void registerSetDataMessageCallbacks ()
virtual void unregisterSetDataMessageCallbacks ()
 Accessor/mutator for mySendSkipTaskMessages.
virtual void registerTaskMessageCallbacks ()
 Accessor/mutator for mySendSkipTaskMessages.
virtual void unregisterTaskMessageCallbacks ()
 Accessor/mutator for mySendSkipTaskMessages.
static void taskMessageCallback (DtSimMessage *msg, void *usr)
 Callback resisted with the local radio for all task messages.
static void requestCurrentTasksCallback (const DtVrfObjectMessage *msg, void *usr)
 Accessor/mutator for mySendSkipTaskMessages.
static void unsubscribeCurrentTasksCallback (const DtVrfObjectMessage *msg, void *usr)
 Accessor/mutator for mySendSkipTaskMessages.
static void clearTaskByTrackingNumberCallback (const DtVrfObjectMessage *msg, void *usr)
 Accessor/mutator for mySendSkipTaskMessages.

Additional Inherited Members

- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (FILE *fp, int indentLevel)
static const
DtVariableBindingsList
nullVariableReference ()
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
static const chartheXmlType ()
 The type that is used when archiving to an XML stream.
static const DtFilename & appPath ()
 Gets the current working directory.
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 Sets the function to create the DtReaderWriterFactory.
static void createReaderWriterFactory ()
static void cleanupFactory ()
static DtReaderWritercreateFromXmlFile (const DtFilename &)
 Given a filename, returns a newly created reader/writer object from the object found within.
static DtReaderWritercreateFromXml (const DtString &)
 Given a xml string, returns a newly created reader/writer object from the object found within.
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP)
 Given a xml environment, returns a newly created reader/writer object from the object found within.
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 Gets the named attribute from a DtEnvValueSP.
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 Copies values from the specified DtReaderWriter.

Detailed Description

Class Description: DtSimTaskManager manages the bookkeeping associated with starting, completing, clearing, and skipping tasks.

Member Typedef Documentation

Constructor & Destructor Documentation

DtSimTaskManager::DtSimTaskManager ( )
private

Not implemented.

DtSimTaskManager::DtSimTaskManager ( const DtString name,
DtVrfObject vrfObject,
DtReaderWriterRegistry parentRegistry = 0 
)

constructor

DtSimTaskManager::DtSimTaskManager ( const DtSimTaskManager orig,
DtReaderWriterRegistry parentRegistry = 0 
)

copy constructor

virtual DtSimTaskManager::~DtSimTaskManager ( )
virtual

destructor

Member Function Documentation

const DtSimTaskManager& DtSimTaskManager::operator= ( const DtSimTaskManager orig)

assignment operator

virtual bool DtSimTaskManager::init ( )
virtual

Calls base class init(), and registerRadioMessageCallbacks().

virtual void DtSimTaskManager::tick ( )
virtual

Sends awaitingTask message to plan engine if needed.

virtual void DtSimTaskManager::addTaskProcessor ( const DtSimTaskMessageType taskType,
DtTaskControllerComponent taskController 
)
virtual

Registers a task controller as a processor for a specific task type.

This controller will have its beginProcessingTask() method called whenever a task of this type is executed by this task manager. Only one component may be registered for any given task type at a time, and this call will replace any already existing controller for this task type. An object console warning will be displayed when a controller is replaced.

virtual void DtSimTaskManager::removeTaskProcessor ( const DtSimTaskMessageType taskType,
DtTaskControllerComponent taskController 
)
virtual

Removes a task controller that has previously registered for as a task processor for a specific task type.

virtual void DtSimTaskManager::removeAllReferencesToController ( DtTaskControllerComponent taskController)
virtual

Removes all task processors that are registered by this controller.

virtual std::vector<DtSimTaskMessageType> DtSimTaskManager::capableTaskIds ( ) const
virtual
Returns
A vector of all the task types that have been registered with this task manager. These are all the task types that this entity is capable of carrying out.
virtual AvailableSupportingTasks DtSimTaskManager::supportingTasks ( ) const
virtual
Returns
A map (by type) of additional tasks this entity is capable of performing that cannot be issued directly by the user (reactive tasks, background tasks)
virtual SupportingTasks DtSimTaskManager::supportingTasks ( int  ) const
virtual
Returns
A list of available supporting tasks by type
virtual void DtSimTaskManager::addSupportingTask ( int  ,
const DtSimTaskMessageType  
)
virtual

Adds/remove supporting tasks.

Types are available in scriptedTaskMetaData.h

virtual void DtSimTaskManager::addSupportingTasks ( int  ,
const SupportingTasks  
)
virtual

Adds/remove supporting tasks.

Types are available in scriptedTaskMetaData.h

virtual void DtSimTaskManager::removeSupportingTask ( int  ,
const DtSimTaskMessageType  
)
virtual

Adds/remove supporting tasks.

Types are available in scriptedTaskMetaData.h

virtual void DtSimTaskManager::removeSupportingTasks ( int  )
virtual

Adds/remove supporting tasks.

Types are available in scriptedTaskMetaData.h

virtual bool DtSimTaskManager::executeTask ( DtTaskMessage taskMsg)
virtual

Starts the execution of this task.

This is the main entry point of an entity to start executing any task or subtask. The task will be passed off to any task controller that has registered to process the particular type of this task. Fills in the taskId of the task message with the newly assigned ID of the task.

Parameters
taskStateIf present, used to convey information about the current execution state of the task (may be at some intermediate point in execution).
Returns
True if the task was successfully started.
virtual bool DtSimTaskManager::executeTask ( DtTaskMessage taskMsg,
DtSimTaskStatePtr  taskState 
)
virtual

Starts the execution of this task.

This is the main entry point of an entity to start executing any task or subtask. The task will be passed off to any task controller that has registered to process the particular type of this task. Fills in the taskId of the task message with the newly assigned ID of the task.

Parameters
taskStateIf present, used to convey information about the current execution state of the task (may be at some intermediate point in execution).
Returns
True if the task was successfully started.
virtual bool DtSimTaskManager::transitionTask ( DtTaskMessage taskMsg,
DtSimTaskStatePtr  taskState 
)
virtual

Transitions the task from controller state to another.

Basically reissues the task with the same id to the same controller, using saved state. Currently used by the aggregate model resolution controller when transitioning from aggregated <-> dissaggregated states. When transitioning the task, if there is a plan in progress that is executing this task the plan will not be adandoned. Also, the newly issued task will maintain the same task id as the original task.

virtual int DtSimTaskManager::suspendTasks ( std::set< DtString actionCategories)
virtual

Function to suspend.

Suspends all top level tasks that conflict with any of the listed actionCategories.

Returns
A suspend ID, which can be passed back to resumeTasks() to resume this set of suspended tasks.
virtual int DtSimTaskManager::suspendAllTopLevelTasks ( )
virtual

Suspends all top level tasks.

Returns
A suspend ID, which can be passed back to resumeTasks() to resume this set of suspended tasks.
virtual DtSuspendedTaskInfo* DtSimTaskManager::suspendTask ( int  taskId)
virtual

Suspends a specific task, and returns the suspend info.

Note
This function should be used internally only. It does not add the suspend info to the task list, and is used by other functions which do this.
virtual bool DtSimTaskManager::resumeTasks ( int  suspendId)
virtual

Takes a suspend ID generated from a call to suspend, and resumes any tasks that were suspended with this ID.

virtual void DtSimTaskManager::addTaskCompleteCallback ( DtTaskCompleteCallbackList::DtCallbackFunctionType  fcn,
void *  usr 
)
virtual

Callbacks that are invoked any time a task is complete.

virtual void DtSimTaskManager::removeTaskCompleteCallback ( DtTaskCompleteCallbackList::DtCallbackFunctionType  fcn,
void *  usr 
)
virtual

Callbacks that are invoked any time a task is complete.

virtual bool DtSimTaskManager::taskActive ( int  taskId) const
virtual
Returns
True if a task with the specified task ID is currently active (executing) in the task manager.
virtual void DtSimTaskManager::registerInterfaceMessageCallbacks ( )
virtual

Registers a callback for Skip Task messages.

virtual void DtSimTaskManager::registerRadioMessageCallbacks ( )
virtual

Register for TaskedBySuperior and DtClearTask radio messages.

virtual void DtSimTaskManager::taskNotify ( const DtSimTask task,
const DtSimComponent notifier 
)
virtual

Called by controller component when task is received.

Calls clearTask() on the currently tasked controller that has a top-level (non-subtask) task.

virtual void DtSimTaskManager::skipTask ( bool  fromSuperior = false)
virtual

Called by controller component when task is received.

Calls clearTask() on the currently tasked controller that has a top-level (non-subtask) task. If fromSuperior is false, calls sendAwaitingTask().

virtual void DtSimTaskManager::taskComplete ( const DtVrfObjectMessage radioMsg,
bool  success 
)
virtual

Called by controller component when task is complete.

Parameters
successindicates whether the task was successfully completed or failed.
virtual void DtSimTaskManager::sendTaskCompleted ( const DtTaskMessage taskMsg,
bool  success 
)
virtual

send a task complete report message to the originator of a task (as indicated by the sender field of the task message sent)

void DtSimTaskManager::awaitingTask ( int  taskIdJustCompleted = -1)

Calls awaitingTask on the DtPlan via the DtVrfObjectPlanManager Specify the task ID of the task that just completed, if available.

virtual void DtSimTaskManager::setTaskedBySuperior ( )
virtual

Equivalent to localState()->setIndependentlyTasked(false) for local entities, but deriving pseudo aggregates do more...

virtual bool DtSimTaskManager::requestTaskNeeded ( ) const
virtual

Will we ask the plan manager for a task this tick.

virtual void DtSimTaskManager::setRequestTaskNeeded ( bool  requestTaskNeeded)
virtual

Used within the task manager.

virtual bool DtSimTaskManager::independentlyTasked ( ) const
virtual

Are we tasked independently (plan or user) or by a superior (pseudo-aggregate) entity?

virtual void DtSimTaskManager::setIndependentlyTasked ( bool  independentlyTasked)
virtual

Sets independentlyTasked flag.

Normally done when a task is received, or a setTaskedBySuperior message is received.

virtual bool DtSimTaskManager::currentTasksMatchEchelonId ( )
virtual

Returns true only if all current tasks are addressed to the current echelon ID of myVrfObjecet, or if the current echelon ID is blank.

virtual bool DtSimTaskManager::isPseudoAggregate ( ) const
inlinevirtual

Indicates whether or not the type of task manager created supports pseudo-aggregates.

virtual DtString DtSimTaskManager::type ( ) const
virtual

Returns the type of task manager object.

Strings are defined in taskMgrTypes.h.

virtual DtVrfObject* DtSimTaskManager::vrfObject ( ) const
virtual

Returns a pointer to the simObject this task manager is attached to.

virtual void DtSimTaskManager::setVrfObject ( DtVrfObject vrfObject)
virtual

Sets myVrfObject.

This is typically done in the constructor. Call this only if you know what you're doing...

virtual void DtSimTaskManager::setSendSkipTaskMessages ( bool  sendSkipTaskMessages)
virtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual bool DtSimTaskManager::sendSkipTaskMessages ( )
virtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::addOnTaskNotifyCallback ( DtOnTaskNotifyCallbackFcn  fcn,
void *  userData 
)
virtual

Registers callback to invoked after taskNotify() is called (at the point when an entity starts executing a new task).

virtual void DtSimTaskManager::removeOnTaskNotifyCallback ( DtOnTaskNotifyCallbackFcn  fcn,
void *  userData 
)
virtual

Removes callback to invoked after taskNotify() is called (at the point when an entity starts executing a new task).

virtual void DtSimTaskManager::clearSubtask ( int  subtaskId)
virtual

Locates DtTaskControllerComponent currently executing a task with the given subtaskId, and calls clearTask() on that component.

virtual DtTaskWithTaskStateListPtr DtSimTaskManager::topLevelTasks ( ) const
virtual
Returns
List of top-level tasks currently being executed by the entity.
virtual bool DtSimTaskManager::hasTopLevelTask ( ) const
virtual
Returns
true if there is an available top Level Task
virtual bool DtSimTaskManager::taskTypesAreExclusive ( const DtSimTaskMessageType taskType1,
const DtSimTaskMessageType taskType2 
) const
virtual
Returns
True if and only if the two specified tasks types are designated as mutually exclusive task types, based on the task execution rules for the entity.
virtual bool DtSimTaskManager::canExecuteTask ( const DtSimTaskMessageType ) const
virtual

True if this object will support the given task

virtual void DtSimTaskManager::clearTaskByType ( const DtSimTaskMessageType taskType)
virtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::updateTaskInfo ( )
virtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual DtScriptReactiveTaskController* DtSimTaskManager::reactiveTaskController ( )
virtual
Returns
A pointer to the entity's reactive task controller.
Note
This pointer may be null, which is valid for entities that do not have a reactive task controller.
virtual void DtSimTaskManager::setReactiveTaskController ( DtScriptReactiveTaskController reactiveTaskController)
virtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

static void DtSimTaskManager::taskedBySuperiorRequestCallback ( DtSimMessage msg,
void *  usrData 
)
static

The manager will register a callback with the radio's msg executive requesting notification of Tasked By Superior Set Data Requests.

static void DtSimTaskManager::skipTaskCallback ( DtSimMessage msg,
void *  usr 
)
static

The manager will register a callback with its simManager's msg executive requesting notification of Skip Task Interface Requests.

static void DtSimTaskManager::clearTaskCallback ( DtSimMessage msg,
void *  usr 
)
static

Callback function for handling DtClearTask messages.

Calls processClearTask to process the message.

static void DtSimTaskManager::objectAboutToBeRemovedCallback ( DtVrfObject object,
void *  usr 
)
static

Callback function for cleaning up task manager just before the host object is removed from the simulation.

Calls processObjectAboutToBeRemoved.

static void DtSimTaskManager::subordinateRemoved ( DtEntityIdentifier  childEid,
void *  usr 
)
static

Callback for handling subordinate (child) removed events.

Calls processSubordinateRemoved().

static DtSimTaskManager* DtSimTaskManager::creator ( const DtString name,
DtVrfObject vrfObject,
DtReaderWriterRegistry parentRegistry 
)
static

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

Reimplemented in DtSimEngineeringTaskManager.

static DtSimTaskManagerFactory* DtSimTaskManager::factory ( )
static

A DtSimEntityFactory is allocated by the DtSimCreator, and this pointer is set.

The DtSimCreator deletes this pointer when it is deleted. This is done this way because we don't allow static initialization.

Reimplemented from DtReaderWriter.

static void DtSimTaskManager::setFactory ( DtSimTaskManagerFactory factory)
static

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

static void DtSimTaskManager::addSimTaskManagerCreatorFcn ( const DtString type,
DtSimTaskManagerCreatorFcn  fcn 
)
static

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

static DtSimTaskManager* DtSimTaskManager::createTaskManager ( const DtString name,
const DtString type,
DtVrfObject vrfObject,
DtReaderWriterRegistry parentRegistry = 0 
)
static

Creates a new task manager, using the factory.

virtual void DtSimTaskManager::processClearTask ( DtSimMessage msg)
protectedvirtual

Finds task controller currently tasked with task of type specified in clear task message and calls its clearTask() method.

task type, calls clearTask().

virtual void DtSimTaskManager::processObjectAboutToBeRemoved ( DtVrfObject object)
protectedvirtual

If the object is our host entity, calls clearTopLevelTask() to clean up any active tasks before the object is removed.

virtual void DtSimTaskManager::resumeTaskTree ( DtSuspendedTaskInfo suspendedTaskInfo)
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual bool DtSimTaskManager::clearAllTopLevelTasks ( )
protectedvirtual

Cancels all top level tasks currently executing on the entity.

Returns
True if any tasks were cleared.
virtual void DtSimTaskManager::clearConflictingTopLevelTasks ( const DtSimTaskMessageType taskType)
protectedvirtual

Cancels any top level tasks that are running on the entity if they conflict with the specified task type.

taskTypesAreExclusive() is used to determine if they conflict.

virtual void DtSimTaskManager::onTaskNotify ( const DtSimTask task,
const DtSimComponent notifier 
)
protectedvirtual

Hook function called at the end of taskNotify().

Invokes any onTaskNotify() callback functions that are registered with the task manager.

void DtSimTaskManager::processSubordinateRemoved ( DtEntityIdentifier  childEid)
protected

If we are currently tasked and former subordinate is not independently tasked, sends a skip task message to this former subordinate.

The subordinate should no longer be participating in any tasks currently being executed by this entity.

static void DtSimTaskManager::taskMessageCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callback resisted with the local radio for all task messages.

Calls processTaskMessage().

virtual void DtSimTaskManager::processTaskMessage ( DtSimMessage msg)
protectedvirtual

Calls executeTask().

virtual bool DtSimTaskManager::startTaskExecution ( DtTaskMessage taskMsg,
DtSimTaskStatePtr  taskState,
bool  taskNotify 
)
protectedvirtual

Used by executeTask() and other similar methods to start the execution of a task.

virtual std::vector<DtSimTaskMessageType> DtSimTaskManager::conflictingTaskTypes ( const DtSimTaskMessageType testTaskType) const
protectedvirtual
Returns
A vector containing all the tasks that this entity is capable of (from capableTaskIds()), that are also conflicting with the specified testTaskType. taskTypesAreExclusive() is used to determine task conflicts.
virtual std::list<DtString> DtSimTaskManager::taskGroupsForTask ( const DtSimTaskMessageType taskType) const
protectedvirtual
Returns
A list of all the task groups that the specified task type belongs to.
static void DtSimTaskManager::requestCurrentTasksCallback ( const DtVrfObjectMessage msg,
void *  usr 
)
staticprotected

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::processRequestCurrentTasks ( const DtVrfObjectMessage msg)
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

static void DtSimTaskManager::unsubscribeCurrentTasksCallback ( const DtVrfObjectMessage msg,
void *  usr 
)
staticprotected

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::processUnsubscribeCurrentTasks ( const DtVrfObjectMessage msg)
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::sendCurrentTasks ( )
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::addSubtasksToCurrentTaskMessage ( const DtSuspendedTaskInfoList subtaskList,
int  parentTaskId,
DtCurrentTasksAdminContent adminContent 
)
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

static void DtSimTaskManager::clearTaskByTrackingNumberCallback ( const DtVrfObjectMessage msg,
void *  usr 
)
staticprotected

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::processClearTaskByTrackingNumber ( const DtVrfObjectMessage msg)
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::registerSetDataMessageCallbacks ( )
protectedvirtual

Handles registration/deregistration of callbacks

Reimplemented in DtSimEngineeringTaskManager.

virtual void DtSimTaskManager::unregisterSetDataMessageCallbacks ( )
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::registerTaskMessageCallbacks ( )
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

virtual void DtSimTaskManager::unregisterTaskMessageCallbacks ( )
protectedvirtual

Accessor/mutator for mySendSkipTaskMessages.

This should only be called by DtCgf::rewind.

Member Data Documentation

DtVrfObject* DtSimTaskManager::myVrfObject
protected
std::vector<DtOnTaskNotifyCallbackInfo> DtSimTaskManager::myOnTaskNotifyCallbacks
protected
bool DtSimTaskManager::myHaveRegisteredOrgMgrCallback
protected
DtTaskProcessorMap DtSimTaskManager::myTaskProcessorMap
protected

Stores all the registered task processor interfaces, indexed by task type they process.

bool DtSimTaskManager::mySendSkipTaskMessages
protected

Determines whether processSubordinateRemoved will send a skip task message.

This should only be changed by DtCgf::rewind.

int DtSimTaskManager::myNumberOfTaskSubscriptions
protected

Counter which holds the number of times the current task status has been subscribed to minus the number of times it has been unsubscribed.

(>0 means that someone is subscribed)

bool DtSimTaskManager::mySendTasksNextTick
protected

Set to true if the task manager should send the list of current tasks next tick.

DtTaskCompleteCallbackList DtSimTaskManager::myTaskCompleteCallbackList
protected
DtScriptReactiveTaskController* DtSimTaskManager::myReactiveTaskController
protected
DtSimTaskManagerFactory* DtSimTaskManager::theFactory
staticprotected
bool DtSimTaskManager::myResumingTasks
protected
AvailableSupportingTasks DtSimTaskManager::myAvailableSupportingTasks
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)