AGX Dynamics 2.42.2.1
Loading...
Searching...
No Matches
agx::Task Class Referenceabstract

A representation of a generic task. More...

#include <Task.h>

+ Inheritance diagram for agx::Task:

Public Types

typedef Event1< Task * > ExecutionEvent
 
typedef Event2< Task *, Parameter * > ParameterEvent
 
enum  ParameterMatch {
  NO_EVENTS = 0 , EMPTY_BINDING_LIST = (1<<0) , PARAMETER_VALID = (1<<1) , PARAMETER_NOT_REQUIRED = (1<<2) ,
  PARAMETER_BOUND = (1<<3) , PARAMETER_HAS_BOUND_PATH = (1<<4) , FORMATS_MATCH = (1<<5) , NEED_DEVICE_TRANSFORM = (1<<6) ,
  MISSING_BINDING = (1<<7) , BINDING_LACKS_TYPE = (1<<8) , FORMATS_MISSMATCH = (1<<9) , EXTRA_BINDING = (1<<10) ,
  INCONSISTEN_PARAMETERS = (1<<11) , MATCH_MASK = EMPTY_BINDING_LIST | PARAMETER_VALID | PARAMETER_NOT_REQUIRED | PARAMETER_BOUND | PARAMETER_HAS_BOUND_PATH | FORMATS_MATCH | NEED_DEVICE_TRANSFORM , NO_MATCH_MASK = MISSING_BINDING | BINDING_LACKS_TYPE | FORMATS_MISSMATCH | EXTRA_BINDING | INCONSISTEN_PARAMETERS
}
 Used for tracing mismatched parameter bindings. More...
 
enum  ProfilingMode { PROFILING_NONE , PROFILING_FAST , PROFILING_FULL }
 
- Public Types inherited from agx::Component
typedef Event2< Component *, Object * > ObjectEvent
 Event when adding removing child objects.
 
typedef Callback1< Object * > TraverseCallback
 
- Public Types inherited from agx::Object
typedef agx::observer_ptr< const EventEventConstObserver
 
typedef agx::ref_ptr< const EventEventConstRef
 
typedef agx::observer_ptr< EventEventObserver
 
typedef agx::Vector< EventObserverEventObserverVector
 
typedef agx::VectorPOD< Event * > EventPtrVector
 
typedef agx::ref_ptr< EventEventRef
 
typedef agx::Vector< EventRefEventRefVector
 

Public Member Functions

 Task (const agx::Name &name, agx::Device *device=agx::CpuDevice::instance())
 Constructor.
 
void addDependencies (const agx::String &paths)
 
void addDependency (agx::Task *parent)
 Add a dependency.
 
void addDependency (const agx::Path &path)
 
void addParameter (agx::Parameter *parameter)
 Add a parameter.
 
void addParameter (agx::Parameter *parameter, size_t index)
 
void addResolvePath (const agx::Path &path)
 
void addResolvePaths (const agx::String &paths)
 
void addTriggerPath (const agx::Path &path)
 
void addTriggerPaths (const agx::String &paths)
 
void beginCallback ()
 
virtual void configure (TiXmlElement *eTask) override
 
void configure (TiXmlElement *eTask, bool loadParameters)
 
void endCallback (agx::Real32 computeCost, agx::Real32 overheadCost=0)
 
void execute ()
 Execute the task.
 
agx::Real32 getAccumulatedComputeCost () const
 
agx::Real32 getAccumulatedOverheadTime () const
 
agx::Real32 getAccumulatedWallTime () const
 
agx::ArrayParametergetArrayParameter (const agx::Name &name)
 
const agx::ArrayParametergetArrayParameter (const agx::Name &name) const
 
const agx::TaskPtrVectorgetChildren () const
 
agx::Real32 getComputeCost () const
 
agx::ThreadgetDispatchThread ()
 
agx::TaskGroupgetGroup ()
 
const agx::TaskGroupgetGroup () const
 
agx::UInt getNumAccumulationSamples () const
 
agx::Real32 getOverheadTime () const
 
agx::ParametergetParameter (const agx::Name &name)
 
const agx::ParametergetParameter (const agx::Name &name) const
 
agx::ParametergetParameter (size_t index)
 
const agx::ParametergetParameter (size_t index) const
 
const agx::ParameterPtrVectorgetParameters () const
 
const agx::TaskPtrVectorgetParents () const
 
agx::PointerParametergetPointerParameter (const agx::Name &name)
 
const agx::PointerParametergetPointerParameter (const agx::Name &name) const
 
virtual agx::JobgetPostJob ()=0
 
virtual agx::JobgetPreJob ()=0
 
agx::ScalarParametergetScalarParameter (const agx::Name &name)
 
const agx::ScalarParametergetScalarParameter (const agx::Name &name) const
 
agx::ThreadgetTargetThread ()
 
agx::Real32 getWallTime () const
 Performance statistics.
 
bool hasDependency (agx::Task *parent) const
 
bool isEnabled () const
 
bool isRunning () const
 
UInt32 matchParameters (agx::ParameterBindingVector &bindings, bool allowFormatPromotions)
 
UInt32 matchParameters (const agx::ParameterBindingVector &bindings)
 
UInt32 matchParameters (const ParameterTable &bindings)
 
void print () const
 
void print (std::ostream &stream) const
 
void printBindings ()
 
void printBindings (std::ostream &stream)
 
virtual void rebind () override
 
void removeDependency (agx::Task *parent)
 Remove a dependency.
 
void removeParameter (agx::Parameter *parameter)
 Remove a parameter.
 
void removeParameter (size_t index)
 
void replace (agx::Task *other)
 Replace the task with another task by rerouting the dependencies.
 
void resetAccumulationTimers (bool recursive=true)
 Reset accumulated performance statistics.
 
void save (agx::TiXmlElement *parent) const override
 
virtual void setContext (agx::Object *context) override
 
void setEnable (bool flag)
 Enable/disable a task.
 
void setModel (agx::Model *model)
 
virtual void setTargetThread (agx::Thread *thread)
 Set a specific thread which must execute this task.
 
void traverse (const Callback1< Task * > &callback, bool breadthFirst=true)
 
virtual void wait ()
 Block until the task has completed execution.
 
- Public Member Functions inherited from agx::Component
 Component (const agx::Name &name=agx::Name(), agx::Model *model=agx::Component::ClassModel(), agx::Device *device=nullptr)
 
virtual void addObject (agx::Object *object, bool assignContext=true)
 Add an object to the component.
 
virtual String autoComplete (const String &partialName, StringVector &matchingNames) const
 
virtual void buildNavigationTree (agxJson::Value &eNode) const override
 
void configure (Model *model)
 
virtual void configure (TiXmlElement *eComponent) override
 
agx::DevicegetDevice ()
 
template<typename T >
T * getDevice ()
 
const agx::DevicegetDevice () const
 
template<typename T >
const T * getDevice () const
 
size_t getNumObjects (const agx::Name &name) const
 
agx::ObjectgetObject (const agx::Name &name, agx::Model *model, size_t index=0)
 
const agx::ObjectgetObject (const agx::Name &name, agx::Model *model, size_t index=0) const
 
agx::ObjectgetObject (const agx::Name &name, size_t index=0)
 
template<typename T >
T * getObject (const agx::Name &name, size_t index=0)
 
const agx::ObjectgetObject (const agx::Name &name, size_t index=0) const
 
template<typename T >
const T * getObject (const agx::Name &name, size_t index=0) const
 
const agx::ObjectRefVectorgetObjects () const
 
template<typename T >
void getObjects (agx::ObjectPtrVector &result, bool recursive=false) const
 Returns All child objects of a specified type in the result container.
 
void getObjects (agx::ObjectPtrVector &result, const agx::Model *model, bool recursive=false) const
 
virtual ObjectgetResourceImpl (const Path &path, agx::Model *model) override
 
virtual void printSubtree () const override
 
void printSubtree (std::ostream &stream, int depth=0) const
 
virtual void rebind () override
 
void removeAllObjects ()
 Remove all components.
 
virtual void removeObject (agx::Object *object)
 Remove an object from the component.
 
void removeObject (const agx::Name &name, size_t index=0)
 Remove an object with a specified name (and optional index) from the component.
 
virtual void snapshot (TiXmlNode *eParent, const String &directory) const override
 
void traverse (ComponentVisitor *)
 
void traverse (const TraverseCallback &callback)
 
- Public Member Functions inherited from agx::Object
 Object (const Name &name=Name(), Model *model=Object::ClassModel())
 
void addListener (EventListener *listener)
 
virtual void buildNavigationTree (agxJson::Value &eNode) const
 
virtual void configure (TiXmlElement *)
 
agx::String fullName () const
 
agx::String fullPath () const
 
agx::String fullPath (const agx::Object *root) const
 
template<typename T >
T * getAutoScopedResource (const agx::Path &path)
 
template<typename T >
const T * getAutoScopedResource (const agx::Path &path) const
 
agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetAutoScopedResource (const agx::Path &path, agx::Model *model=nullptr) const
 
agx::ObjectgetContext ()
 
template<typename T >
T * getContext ()
 
const agx::ObjectgetContext () const
 
template<typename T >
const T * getContext () const
 
agx::UInt32 getId () const
 
const agx::NamegetImplementationName () const
 
agx::ModelgetModel ()
 
const agx::ModelgetModel () const
 
const agx::NamegetName () const
 
agx::ObjectgetNextSibling ()
 
const agx::ObjectgetNextSibling () const
 
agx::Path getPath () const
 
agx::Path getPath (const agx::Object *root) const
 
template<typename T >
T * getResource (const agx::Path &path)
 
template<typename T >
const T * getResource (const agx::Path &path) const
 
agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr)
 
const agx::ObjectgetResource (const agx::Path &path, agx::Model *model=nullptr) const
 
virtual agx::ObjectgetResourceImpl (const agx::Path &path, agx::Model *model)
 
agx::ObjectgetRootContext ()
 
const agx::ObjectgetRootContext () const
 
bool hasListener (EventListener *listener)
 
bool hasParent (const agx::Object *node) const
 
bool isUnique () const
 
virtual void printSubtree () const
 
virtual void rebind ()
 
void removeListener (EventListener *listener)
 
virtual void save (TiXmlElement *) const
 
virtual void setContext (agx::Object *context)
 
void setId (UInt32 id)
 
void setModel (agx::Model *model)
 Set the object model (handled automatically).
 
void setName (const agx::Name &name)
 Set the name of the object.
 
virtual void snapshot (TiXmlNode *, const String &) const
 
- Public Member Functions inherited from agx::Referenced
 Referenced ()
 Default constructor.
 
 Referenced (const Referenced &)
 
template<typename T >
T * as ()
 Subclass casting.
 
template<typename T >
const T * as () const
 
template<typename T >
T * asSafe ()
 Safe subclass casting, return nullptr if template type does not match.
 
template<typename T >
const T * asSafe () const
 
int getReferenceCount () const
 
template<typename T >
bool is () const
 Subclass test.
 
Referencedoperator= (const Referenced &)
 Assignment operator. Will increment the number of references to the referenced object.
 
void reference (void *ptr=nullptr) const
 Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
 
void unreference (void *ptr=nullptr) const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
void unreference_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 

Static Public Member Functions

static agx::ModelClassModel ()
 
static ProfilingMode getProfilingMode ()
 
static Taskload (const char *path, Device *device=CpuDevice::instance())
 
static Taskload (const Path &path, const Name &implementation, agx::ParameterBindingVector &parameterList, bool allowFormatPromotions, Device *device=CpuDevice::instance())
 
static Taskload (const Path &path, const Name &implementation, const agx::ParameterBindingVector &parameterList, Device *device=CpuDevice::instance())
 
static Taskload (const Path &path, const Name &implementation, Device *device=CpuDevice::instance())
 
static Taskload (const Path &path, Device *device=CpuDevice::instance())
 
static Taskload (const String &path, Device *device=CpuDevice::instance())
 
static Taskload (TiXmlElement *eTask, Device *device)
 
static void printParameterMatch (UInt32 parameterMatch)
 
static void setProfilingMode (ProfilingMode mode)
 
- Static Public Member Functions inherited from agx::Component
static Component_load (TiXmlElement *eComponent, Device *device)
 
static agx::ModelClassModel ()
 
static Componentload (const Path &path, const Name &implementation, Device *device, const Path &_namespace=Path())
 
static Componentload (const String &path, const Path &_namespace=Path())
 
static Componentload (const String &path, Device *device, const Path &_namespace=Path())
 
static Componentload (TiXmlElement *eComponent, Device *device)
 
- Static Public Member Functions inherited from agx::Object
static agx::ModelClassModel ()
 
static agx::String generateName (const agx::String &bindPath)
 
static const HashSet< Object * > & getActiveObjects ()
 
static bool getEnableRebind ()
 Should rebinding be allowed? Right now a global setting.
 
static Objectload (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type, const String &attribute, const String &value)
 
static Objectload (const String &path, Device *device, const String &type="", size_t instance=0)
 
template<typename T >
static T * load (const String &path, Device *device, const String &type="", size_t instance=0)
 
static void load (const String &path, Device *device, ObjectPtrVector &loadedObjects)
 
static Objectload (TiXmlElement *eObject, Device *device)
 
template<typename T >
static T * load (TiXmlElement *eObject, Device *device)
 
static TiXmlDocument openDocument (const String &path)
 
static void setEnableRebind (bool flag)
 Sets if rebinding of objects should be allowed (Right now a global setting).
 
- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 

Public Attributes

ParameterEvent addParameterEvent
 Triggered when a parameter is added.
 
ExecutionEvent completionEvent
 Triggered after the task has completed.
 
agxData::Val< BoolenableParameter
 Enable/disable the task, normally use setEnable/isEnabled instead.
 
ParameterEvent removeParameterEvent
 Triggered when a parameter is removed.
 
ExecutionEvent startEvent
 Triggered before the task begins.
 
- Public Attributes inherited from agx::Component
ObjectEvent addObjectEvent
 
ObjectEvent removeObjectEvent
 

Protected Member Functions

virtual ~Task ()
 
void connectToChild (Task *descendant)
 
void connectToParent (Task *ancestor)
 
void disconnectFromChild (Task *descendant)
 
void disconnectFromParent (Task *ancestor)
 
void dispatchBlocking (Thread *thread)
 
void enableCallback (agxData::Value *enable)
 
virtual ObjectgetResourceImpl (const Path &path, agx::Model *model) override
 
void init ()
 
virtual void parameterAddedCallback (Parameter *)
 
virtual void parameterRemovedCallback (Parameter *)
 
void prepareGlobalResultSorting (size_t numJobs)
 
void registerBufferReadersAndWriters ()
 
void setGroup (TaskGroup *group)
 
virtual void subtaskAddedCallback (Task *)
 
void unregisterBufferReadersAndWriters ()
 
void verifyParameters ()
 
- Protected Member Functions inherited from agx::Component
virtual ~Component ()
 
String expandAutoCompletionMatch (const String &query, const StringVector &matchingNames) const
 
void setDevice (Device *device)
 
- Protected Member Functions inherited from agx::Object
virtual ~Object ()
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Static Protected Member Functions

static void addConnection (Task *parent, Task *child)
 
static bool hasUnhandledException ()
 
static void removeConnection (Task *parent, Task *child)
 
static void signalUnhandledException ()
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandlergetDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 

Additional Inherited Members

- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

A representation of a generic task.

The task is defined by its implementation and a set of parameters. The parameters provide a common interface to bind the data accessed by the task. The tasks have dependencies to other tasks and can be organized in a task graph.

Definition at line 56 of file Task.h.

Member Typedef Documentation

◆ ExecutionEvent

Definition at line 89 of file Task.h.

◆ ParameterEvent

Definition at line 90 of file Task.h.

Member Enumeration Documentation

◆ ParameterMatch

Used for tracing mismatched parameter bindings.

Enumerator
NO_EVENTS 
EMPTY_BINDING_LIST 
PARAMETER_VALID 
PARAMETER_NOT_REQUIRED 
PARAMETER_BOUND 
PARAMETER_HAS_BOUND_PATH 
FORMATS_MATCH 
NEED_DEVICE_TRANSFORM 
MISSING_BINDING 
BINDING_LACKS_TYPE 
FORMATS_MISSMATCH 
EXTRA_BINDING 
INCONSISTEN_PARAMETERS 
MATCH_MASK 
NO_MATCH_MASK 

Definition at line 110 of file Task.h.

◆ ProfilingMode

Enumerator
PROFILING_NONE 
PROFILING_FAST 
PROFILING_FULL 

Definition at line 78 of file Task.h.

Constructor & Destructor Documentation

◆ Task()

agx::Task::Task ( const agx::Name name,
agx::Device device = agx::CpuDevice::instance() 
)

Constructor.

Parameters
nameThe name of the task.

◆ ~Task()

virtual agx::Task::~Task ( )
protectedvirtual

Member Function Documentation

◆ addConnection()

static void agx::Task::addConnection ( Task parent,
Task child 
)
staticprotected

◆ addDependencies()

void agx::Task::addDependencies ( const agx::String paths)

◆ addDependency() [1/2]

void agx::Task::addDependency ( agx::Task parent)

Add a dependency.

Parameters
parentThe parent dependency.

◆ addDependency() [2/2]

void agx::Task::addDependency ( const agx::Path path)

◆ addParameter() [1/2]

void agx::Task::addParameter ( agx::Parameter parameter)

Add a parameter.

◆ addParameter() [2/2]

void agx::Task::addParameter ( agx::Parameter parameter,
size_t  index 
)

◆ addResolvePath()

void agx::Task::addResolvePath ( const agx::Path path)

◆ addResolvePaths()

void agx::Task::addResolvePaths ( const agx::String paths)

◆ addTriggerPath()

void agx::Task::addTriggerPath ( const agx::Path path)

◆ addTriggerPaths()

void agx::Task::addTriggerPaths ( const agx::String paths)

◆ beginCallback()

void agx::Task::beginCallback ( )

◆ ClassModel()

static agx::Model * agx::Task::ClassModel ( )
static

◆ configure() [1/2]

virtual void agx::Task::configure ( TiXmlElement *  eTask)
overridevirtual

Reimplemented from agx::Component.

Reimplemented in agx::Kernel, and agx::UnresolvedTask.

◆ configure() [2/2]

void agx::Task::configure ( TiXmlElement *  eTask,
bool  loadParameters 
)

◆ connectToChild()

void agx::Task::connectToChild ( Task descendant)
protected

◆ connectToParent()

void agx::Task::connectToParent ( Task ancestor)
protected

◆ disconnectFromChild()

void agx::Task::disconnectFromChild ( Task descendant)
protected

◆ disconnectFromParent()

void agx::Task::disconnectFromParent ( Task ancestor)
protected

◆ dispatchBlocking()

void agx::Task::dispatchBlocking ( Thread thread)
protected

◆ enableCallback()

void agx::Task::enableCallback ( agxData::Value enable)
protected

◆ endCallback()

void agx::Task::endCallback ( agx::Real32  computeCost,
agx::Real32  overheadCost = 0 
)

◆ execute()

void agx::Task::execute ( )

Execute the task.

The call will not return until the task execution has completed.

Referenced by agx::ParallelRaContainerKernel< T, argument_type >::doExecute(), agxSDK::MergeSplitParallelReferencedDataKernel< T >::execute(), and agx::IndexLambdaKernel::executeEx().

◆ getAccumulatedComputeCost()

Real32 agx::Task::getAccumulatedComputeCost ( ) const

Definition at line 727 of file Task.h.

◆ getAccumulatedOverheadTime()

Real32 agx::Task::getAccumulatedOverheadTime ( ) const

Definition at line 726 of file Task.h.

◆ getAccumulatedWallTime()

Real32 agx::Task::getAccumulatedWallTime ( ) const

Definition at line 725 of file Task.h.

◆ getArrayParameter() [1/2]

ArrayParameter * agx::Task::getArrayParameter ( const agx::Name name)

Definition at line 711 of file Task.h.

Referenced by getArrayParameter().

◆ getArrayParameter() [2/2]

const ArrayParameter * agx::Task::getArrayParameter ( const agx::Name name) const

Definition at line 712 of file Task.h.

References getArrayParameter().

◆ getChildren()

const TaskPtrVector & agx::Task::getChildren ( ) const
Returns
The child tasks which depends on this task.

Definition at line 700 of file Task.h.

◆ getComputeCost()

Real32 agx::Task::getComputeCost ( ) const
Returns
The compute cost of the previous execution

Definition at line 723 of file Task.h.

◆ getDispatchThread()

Thread * agx::Task::getDispatchThread ( )
Returns
The thread which called execute()

Definition at line 720 of file Task.h.

◆ getGroup() [1/2]

TaskGroup * agx::Task::getGroup ( )
Returns
The task group which this task is part of.

Definition at line 695 of file Task.h.

◆ getGroup() [2/2]

const TaskGroup * agx::Task::getGroup ( ) const

Definition at line 696 of file Task.h.

◆ getNumAccumulationSamples()

UInt agx::Task::getNumAccumulationSamples ( ) const

Definition at line 728 of file Task.h.

◆ getOverheadTime()

Real32 agx::Task::getOverheadTime ( ) const
Returns
The overhead time of the previous execution

Definition at line 724 of file Task.h.

◆ getParameter() [1/4]

Parameter * agx::Task::getParameter ( const agx::Name name)
Returns
The parameter with a specified name.

Definition at line 705 of file Task.h.

Referenced by getParameter().

◆ getParameter() [2/4]

const Parameter * agx::Task::getParameter ( const agx::Name name) const

Definition at line 706 of file Task.h.

References getParameter().

◆ getParameter() [3/4]

Parameter * agx::Task::getParameter ( size_t  index)
Returns
The parameter with a specified index.

Definition at line 717 of file Task.h.

◆ getParameter() [4/4]

const Parameter * agx::Task::getParameter ( size_t  index) const

Definition at line 718 of file Task.h.

◆ getParameters()

const ParameterPtrVector & agx::Task::getParameters ( ) const
Returns
The parameter list.

Definition at line 704 of file Task.h.

◆ getParents()

const TaskPtrVector & agx::Task::getParents ( ) const
Returns
The dependencies for this task.

Definition at line 699 of file Task.h.

◆ getPointerParameter() [1/2]

PointerParameter * agx::Task::getPointerParameter ( const agx::Name name)

Definition at line 714 of file Task.h.

Referenced by getPointerParameter().

◆ getPointerParameter() [2/2]

const PointerParameter * agx::Task::getPointerParameter ( const agx::Name name) const

Definition at line 715 of file Task.h.

References getPointerParameter().

◆ getPostJob()

virtual agx::Job * agx::Task::getPostJob ( )
pure virtual
Returns
The post-job for the task.

Implemented in agx::SerialTask, agx::ParallelTask, and agx::TaskGroup.

◆ getPreJob()

virtual agx::Job * agx::Task::getPreJob ( )
pure virtual
Returns
The pre-job for the task.

Implemented in agx::SerialTask, agx::ParallelTask, and agx::TaskGroup.

◆ getProfilingMode()

Task::ProfilingMode agx::Task::getProfilingMode ( )
static

Definition at line 691 of file Task.h.

◆ getResourceImpl()

virtual Object * agx::Task::getResourceImpl ( const Path path,
agx::Model model 
)
overrideprotectedvirtual

Reimplemented from agx::Component.

◆ getScalarParameter() [1/2]

ScalarParameter * agx::Task::getScalarParameter ( const agx::Name name)

Definition at line 708 of file Task.h.

Referenced by getScalarParameter().

◆ getScalarParameter() [2/2]

const ScalarParameter * agx::Task::getScalarParameter ( const agx::Name name) const

Definition at line 709 of file Task.h.

References getScalarParameter().

◆ getTargetThread()

Thread * agx::Task::getTargetThread ( )
Returns
The target thread.

Definition at line 701 of file Task.h.

◆ getWallTime()

Real32 agx::Task::getWallTime ( ) const

Performance statistics.

Returns
The wall-time of the previous execution

Definition at line 722 of file Task.h.

◆ hasDependency()

bool agx::Task::hasDependency ( agx::Task parent) const

◆ hasUnhandledException()

static bool agx::Task::hasUnhandledException ( )
staticprotected

◆ init()

void agx::Task::init ( )
protected

◆ isEnabled()

bool agx::Task::isEnabled ( ) const
Returns
True if enabled.

Definition at line 693 of file Task.h.

◆ isRunning()

bool agx::Task::isRunning ( ) const
Returns
True if the task is running.

Definition at line 694 of file Task.h.

◆ load() [1/7]

static Task * agx::Task::load ( const char *  path,
Device device = CpuDevice::instance() 
)
static

◆ load() [2/7]

static Task * agx::Task::load ( const Path path,
const Name implementation,
agx::ParameterBindingVector parameterList,
bool  allowFormatPromotions,
Device device = CpuDevice::instance() 
)
static

◆ load() [3/7]

static Task * agx::Task::load ( const Path path,
const Name implementation,
const agx::ParameterBindingVector parameterList,
Device device = CpuDevice::instance() 
)
static

◆ load() [4/7]

static Task * agx::Task::load ( const Path path,
const Name implementation,
Device device = CpuDevice::instance() 
)
static

◆ load() [5/7]

static Task * agx::Task::load ( const Path path,
Device device = CpuDevice::instance() 
)
static

◆ load() [6/7]

static Task * agx::Task::load ( const String path,
Device device = CpuDevice::instance() 
)
static

◆ load() [7/7]

static Task * agx::Task::load ( TiXmlElement *  eTask,
Device device 
)
static

◆ matchParameters() [1/3]

UInt32 agx::Task::matchParameters ( agx::ParameterBindingVector bindings,
bool  allowFormatPromotions 
)

◆ matchParameters() [2/3]

UInt32 agx::Task::matchParameters ( const agx::ParameterBindingVector bindings)

◆ matchParameters() [3/3]

UInt32 agx::Task::matchParameters ( const ParameterTable bindings)

◆ parameterAddedCallback()

virtual void agx::Task::parameterAddedCallback ( Parameter )
inlineprotectedvirtual

Reimplemented in agx::Kernel.

Definition at line 340 of file Task.h.

◆ parameterRemovedCallback()

virtual void agx::Task::parameterRemovedCallback ( Parameter )
inlineprotectedvirtual

Reimplemented in agx::Kernel.

Definition at line 341 of file Task.h.

◆ prepareGlobalResultSorting()

void agx::Task::prepareGlobalResultSorting ( size_t  numJobs)
protected

◆ print() [1/2]

void agx::Task::print ( ) const

◆ print() [2/2]

void agx::Task::print ( std::ostream &  stream) const

◆ printBindings() [1/2]

void agx::Task::printBindings ( )

◆ printBindings() [2/2]

void agx::Task::printBindings ( std::ostream &  stream)

◆ printParameterMatch()

static void agx::Task::printParameterMatch ( UInt32  parameterMatch)
static

◆ rebind()

virtual void agx::Task::rebind ( )
overridevirtual

Reimplemented from agx::Component.

Reimplemented in agx::Kernel.

◆ registerBufferReadersAndWriters()

void agx::Task::registerBufferReadersAndWriters ( )
protected

◆ removeConnection()

static void agx::Task::removeConnection ( Task parent,
Task child 
)
staticprotected

◆ removeDependency()

void agx::Task::removeDependency ( agx::Task parent)

Remove a dependency.

Parameters
parentThe parent dependency.

◆ removeParameter() [1/2]

void agx::Task::removeParameter ( agx::Parameter parameter)

Remove a parameter.

◆ removeParameter() [2/2]

void agx::Task::removeParameter ( size_t  index)

◆ replace()

void agx::Task::replace ( agx::Task other)

Replace the task with another task by rerouting the dependencies.

◆ resetAccumulationTimers()

void agx::Task::resetAccumulationTimers ( bool  recursive = true)

Reset accumulated performance statistics.

◆ save()

void agx::Task::save ( agx::TiXmlElement *  parent) const
override

◆ setContext()

virtual void agx::Task::setContext ( agx::Object context)
overridevirtual

Reimplemented from agx::Object.

◆ setEnable()

void agx::Task::setEnable ( bool  flag)

Enable/disable a task.

When disabled, it is bypassed in the execution path.

◆ setGroup()

void agx::Task::setGroup ( TaskGroup group)
protected

◆ setModel()

void agx::Task::setModel ( agx::Model model)

◆ setProfilingMode()

static void agx::Task::setProfilingMode ( ProfilingMode  mode)
static

◆ setTargetThread()

virtual void agx::Task::setTargetThread ( agx::Thread thread)
virtual

Set a specific thread which must execute this task.

Reimplemented in agx::SerialTask, agx::ParallelTask, and agx::TaskGroup.

◆ signalUnhandledException()

static void agx::Task::signalUnhandledException ( )
staticprotected

◆ subtaskAddedCallback()

virtual void agx::Task::subtaskAddedCallback ( Task )
inlineprotectedvirtual

Definition at line 342 of file Task.h.

◆ traverse()

void agx::Task::traverse ( const Callback1< Task * > &  callback,
bool  breadthFirst = true 
)

◆ unregisterBufferReadersAndWriters()

void agx::Task::unregisterBufferReadersAndWriters ( )
protected

◆ verifyParameters()

void agx::Task::verifyParameters ( )
protected

◆ wait()

virtual void agx::Task::wait ( )
virtual

Block until the task has completed execution.

Member Data Documentation

◆ addParameterEvent

ParameterEvent agx::Task::addParameterEvent

Triggered when a parameter is added.

Definition at line 99 of file Task.h.

◆ completionEvent

ExecutionEvent agx::Task::completionEvent

Triggered after the task has completed.

Definition at line 96 of file Task.h.

◆ enableParameter

agxData::Val<Bool> agx::Task::enableParameter

Enable/disable the task, normally use setEnable/isEnabled instead.

Definition at line 105 of file Task.h.

◆ removeParameterEvent

ParameterEvent agx::Task::removeParameterEvent

Triggered when a parameter is removed.

Definition at line 102 of file Task.h.

◆ startEvent

ExecutionEvent agx::Task::startEvent

Triggered before the task begins.

Definition at line 93 of file Task.h.


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