VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Static Public Attributes
DtSimTaskState Class Reference

DtSimTaskState holds the current execution state of a given task.

DtSimTaskState is an abstract base class that represents the current execution state associated with a given DtSimTask. Derived classes hold details particular to a specific task. For example, for the DtMoveAlongTask there is a corresponding DtMoveAlongTaskState class that holds the current waypoint and direction of movement along the route. DtSimTaskState is used when task are suspended if there is additional data (beyond the data already in the DtSimTask subclass) that is required to correctly resume the task.

When creating a new DtSimTaskState subclass, you must register its creator function with the factory using the addTaskStateCreatorFcn() function. The new subclass is then instantiated and returned from the DtTaskControllerComponent subclass that is executing the DtSimTask subclass to which this is associated. This will typically be in an override of either DtSingleTaskControllerComponent::currentTaskState() or DtMultiTaskControllerComponent::currentTaskState().

Note
Most VRF DtSimTask subclasses do not have a corresponding DtSimTaskState subclass because the data in the DtSimTask subclass is sufficient to resume the task.
Inheritance diagram for DtSimTaskState:
Inheritance graph
[legend]

Public Member Functions

 DtSimTaskState ()
 
 DtSimTaskState (const DtString &writeName, DtReaderWriterRegistry *parentRegistry=0)
 
 DtSimTaskState (const DtString &writeName, const DtSimTaskState &orig, DtReaderWriterRegistry *parentRegistry=0)
 
const DtSimTaskStateoperator= (const DtSimTaskState &orig)
 
virtual ~DtSimTaskState () override
 
virtual bool init ()
 
virtual DtString type () const
 
virtual DtSimTaskStateclone (const DtString &name, DtReaderWriterRegistry *parentRegistry=0) const
 
virtual void putData (std::string &fp, int indentLevel=0) override
 
virtual DtlObjPtr getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override
 
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 
bool operator== (const DtReaderWriter &) const
 
bool operator!= (const DtReaderWriter &rhs) const
 
virtual ~DtReaderWriter ()
 
virtual void putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 
virtual void postPutSelf ()
 
virtual void prePutSelf ()
 
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
virtual void postGetSelf ()
 
virtual void preGetSelf ()
 
virtual void writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 
virtual DtSymbolString name () const
 
virtual void addAlias (const DtSymbolString &alias)
 
virtual void addAlias (const DtString &alias)
 
virtual bool hasAlias (const DtSymbolString &alias)
 
virtual const aliasContaineraliases () const
 
virtual void setReadonly (bool flag)
 
bool isReadonly () const
 
virtual void reset ()
 
virtual int alignment () const
 
virtual bool variableIsBound () const
 
virtual void unbindVariable ()
 
virtual void setName (const DtString &)
 
virtual const charreaderWriterType () const
 
virtual const charxmlType () const
 
virtual DtString prettyPrint () const
 
std::string debugText () const
 
virtual void bindVariables (DtVariableBindingsList variableBindings)
 
virtual std::list
< DtVariableNameType
unboundVariables () const
 
bool invalid () const
 
virtual bool hasChild (const DtReaderWriter *p) const
 
virtual bool hasVariableReference () const
 
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 
virtual void recordUpdateTime () const
 
virtual bool changedSinceLastChecked ()
 
virtual bool peekChangedSinceLastChecked () const
 
virtual void setValueSpecified (bool specified, bool recurse=false)
 
virtual bool valueSpecified () const
 
virtual bool isVariableReference () const
 
virtual void setIsVariableReference (bool value)
 
virtual void clearAllVariableReferenceFlags ()
 
virtual DtSymbolString variableName () const
 
virtual void setVariableName (const DtSymbolString variableName)
 
virtual const DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () const
 
virtual bool toXml (const DtFilename &) const
 
virtual bool fromXml (const DtString &)
 
virtual bool fromXmlFile (const DtFilename &)
 
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
 
virtual void putData (DtEnvironmentSP, DtEnvValueSP value) const
 
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 
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())
 
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 

Static Public Member Functions

static DtSimTaskStatecreateTaskState (DtlObjPtr mtlStream)
 
static DtSimTaskStatecreateTaskState (DtString taskStateType)
 
static void addTaskStateCreatorFcn (const DtString &taskName, DtSimTaskStateCreatorFcn fcn)
 
static void setFactory (DtSimTaskStateFactory *factory)
 
static DtSimTaskStateFactoryfactory ()
 
static bool isTypeRegistered (DtString type)
 
- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 

Static Public Attributes

static DtSimTaskStateFactorymyFactory
 

Additional Inherited Members

- 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 )()
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 
- 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
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Constructor & Destructor Documentation

DtSimTaskState::DtSimTaskState ( )

default constructor

DtSimTaskState::DtSimTaskState ( const DtString writeName,
DtReaderWriterRegistry parentRegistry = 0 
)

constructor If you have a task state object 'put' itself, the write name will preface the task state object.

DtSimTaskState::DtSimTaskState ( const DtString writeName,
const DtSimTaskState orig,
DtReaderWriterRegistry parentRegistry = 0 
)

copy constructor

virtual DtSimTaskState::~DtSimTaskState ( )
overridevirtual

destructor

Member Function Documentation

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

assignment operator; same as copy constructor

virtual bool DtSimTaskState::init ( )
virtual

Base class init does nothing, but this will be called by create, in case any other deriving class needs to do virtual allocation.

virtual DtString DtSimTaskState::type ( ) const
virtual

What kind of task state object am I? Returns a string indicating the kind of task state object( for example, “move-along-task-state”, Derived classes must implement this member function to return a unique string representing the type of task state. The set of standard task state types supplied with VR-Forces is in taskStateTypes.h.

Returns
DtBaseTaskStateType

Reimplemented in DtMoveAlongTaskState, DtPatrolBetweenPointsTaskState, DtPatrolRouteTaskState, DtWaitTaskState, and DtGenericTaskState.

virtual DtSimTaskState* DtSimTaskState::clone ( const DtString name,
DtReaderWriterRegistry parentRegistry = 0 
) const
virtual

Make a copy of this task. Returns a newly allocated instance of a DtSimTaskState. Override this member function to return a pointer to a newly allocated instance of the derived class.

Reimplemented in DtMoveAlongTaskState, DtPatrolBetweenPointsTaskState, DtPatrolRouteTaskState, DtWaitTaskState, and DtGenericTaskState.

virtual void DtSimTaskState::putData ( std::string &  fp,
int  indentLevel = 0 
)
overridevirtual

putData writes our type, which is provided by the virtual type accessor of the deriving class.

Reimplemented from DtReaderWriter.

virtual DtlObjPtr DtSimTaskState::getData ( DtlObjPtr  args,
const DtReaderWriter::SearchPaths searchPaths,
const DtVariableBindingsList variableBindings 
)
overridevirtual

getData is just used to get us past the type in the data stream, since it's not actually stored.

Reimplemented from DtReaderWriter.

static DtSimTaskState* DtSimTaskState::createTaskState ( DtlObjPtr  mtlStream)
static

Static functions.

Creates a new task state object, given a pointer to a MÄK Technologies LISP (MTL) stream. It first parses the stream to extract the type of task to create. Then it calls the task factory's create() member function with the given task type. This returns a new instance of the particular task type. The task's getData() member function is then called to retrieve the task parameters from the stream. The pointer to the new task is returned.

static DtSimTaskState* DtSimTaskState::createTaskState ( DtString  taskStateType)
static
static void DtSimTaskState::addTaskStateCreatorFcn ( const DtString taskName,
DtSimTaskStateCreatorFcn  fcn 
)
static

Adds a task creator member function to the task factory.

static void DtSimTaskState::setFactory ( DtSimTaskStateFactory factory)
static
static DtSimTaskStateFactory* DtSimTaskState::factory ( )
static
static bool DtSimTaskState::isTypeRegistered ( DtString  type)
static

Member Data Documentation

DtSimTaskStateFactory* DtSimTaskState::myFactory
static

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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)