openDAQ
Open data acquisition platform
ITask Struct Referenceabstract

A packaged callback with possible continuations and dependencies that can be arranged in a dependency graph (directed acyclic graph). The task is not executed directly but only when the graph is scheduled for execution and all dependencies have been satisfied. More...

+ Inheritance diagram for ITask:
+ Collaboration diagram for ITask:

Detailed Description

A packaged callback with possible continuations and dependencies that can be arranged in a dependency graph (directed acyclic graph). The task is not executed directly but only when the graph is scheduled for execution and all dependencies have been satisfied.

Public Member Functions

virtual ErrCode INTERFACE_FUNC getName (IString **name)=0
 Gets the task name. More...
 
virtual ErrCode INTERFACE_FUNC setName (IString *name)=0
 Sets the task name that is used in diagnostics. More...
 
virtual ErrCode INTERFACE_FUNC then (ITask *continuation)=0
 Sets the continuation to only execute after this task completes. Be careful of forming cycles as tasks whose dependencies cannot be satisfied will never execute. More...
 
- Public Member Functions inherited from IBaseObject
virtual ErrCode INTERFACE_FUNC borrowInterface (const IntfID &intfID, void **obj) const =0
 Returns another interface which is supported by the object without incrementing the reference count. More...
 
virtual ErrCode INTERFACE_FUNC dispose ()=0
 Disposes all references held by the object. More...
 
virtual ErrCode INTERFACE_FUNC getHashCode (SizeT *hashCode)=0
 Returns hash code of the object. More...
 
virtual ErrCode INTERFACE_FUNC equals (IBaseObject *other, Bool *equal) const =0
 Compares object to another object for equality. More...
 
virtual ErrCode INTERFACE_FUNC toString (CharPtr *str)=0
 Returns a string representation of the object. More...
 
- Public Member Functions inherited from IUnknown
virtual ErrCode INTERFACE_FUNC queryInterface (const IntfID &intfID, void **obj)=0
 Returns another interface which is supported by the object and increments the reference count. More...
 
virtual int INTERFACE_FUNC addRef ()=0
 Increments the reference count for an interface on an object. More...
 
virtual int INTERFACE_FUNC releaseRef ()=0
 Decrements the reference count for an interface on an object. More...
 

Member Function Documentation

◆ getName()

virtual ErrCode INTERFACE_FUNC getName ( IString **  name)
pure virtual

Gets the task name.

Parameters
[out]nameThe task name.

◆ setName()

virtual ErrCode INTERFACE_FUNC setName ( IString name)
pure virtual

Sets the task name that is used in diagnostics.

Parameters
nameThe new task name.

◆ then()

virtual ErrCode INTERFACE_FUNC then ( ITask continuation)
pure virtual

Sets the continuation to only execute after this task completes. Be careful of forming cycles as tasks whose dependencies cannot be satisfied will never execute.

Parameters
continuationThe task that should wait for this one to complete.
Return values
OPENDAQ_ERR_NOT_SUPPORTEDIf the continuation implementation was not crated by the scheduler library.