CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
complextask.h File Reference

Complex task with dependencies, scheduling, and resource management. More...

Go to the source code of this file.

Data Structures

struct  ComplexTask
 Complex task with dependencies, scheduling, and resource management. More...
 

Macros

#define ctaskDependOn(task, dep)   ctaskRequireTask(task, dep, false)
 
#define ctaskWaitFor(task, dep)   ctaskRequireTask(task, dep, true)
 
#define ctaskDependOnTimeout(task, dep, timeout)   ctaskRequireTaskTimeout(task, dep, false, timeout)
 
#define ctaskWaitForTimeout(task, dep, timeout)   ctaskRequireTaskTimeout(task, dep, true, timeout)
 
#define ctaskRequireTask(self, dep, failok)   ComplexTask_requireTask(ComplexTask(self), Task(dep), failok)
 
#define ctaskRequireTaskTimeout(self, dep, failok, timeout)   ComplexTask_requireTaskTimeout(ComplexTask(self), Task(dep), failok, timeout)
 
#define ctaskRequireResource(self, res)   ComplexTask_requireResource(ComplexTask(self), TaskResource(res))
 
#define ctaskRequireResourceTimeout(self, res, timeout)   ComplexTask_requireResourceTimeout(ComplexTask(self), TaskResource(res), timeout)
 
#define ctaskRequireGate(self, gate)   ComplexTask_requireGate(ComplexTask(self), TRGate(gate))
 
#define ctaskRequireGateTimeout(self, gate, timeout)   ComplexTask_requireGateTimeout(ComplexTask(self), TRGate(gate), timeout)
 
#define ctaskRequire(self, req)   ComplexTask_require(ComplexTask(self), TaskRequires(req))
 
#define ctaskAdvance(self)   ComplexTask_advance(ComplexTask(self))
 
#define ctaskCheckRequires(self, updateProgress, expires)   ComplexTask_checkRequires(ComplexTask(self), updateProgress, expires)
 
#define ctaskCancelRequires(self)   ComplexTask_cancelRequires(ComplexTask(self))
 
#define ctaskAcquireRequires(self, acquired)   ComplexTask_acquireRequires(ComplexTask(self), acquired)
 
#define ctaskReleaseRequires(self, resources)   ComplexTask_releaseRequires(ComplexTask(self), resources)
 
#define ctaskAdvanceCallback(cvars, args)   ComplexTask_advanceCallback(cvars, args)
 
#define ctaskRun(self, tq, worker, tcon)   (self)->_->run(ComplexTask(self), TaskQueue(tq), TQWorker(worker), tcon)
 
#define ctaskRunCancelled(self, tq, worker)   (self)->_->runCancelled(ComplexTask(self), TaskQueue(tq), TQWorker(worker))
 
#define ctaskWait(self, timeout)   (self)->_->wait(ComplexTask(self), timeout)
 

Typedefs

typedef struct ComplexTask ComplexTask
 Complex task with dependencies, scheduling, and resource management.
 

Enumerations

enum  ComplexTaskRunResultEnum { TASK_Result_Schedule = TASK_Result_Basic_Count , TASK_Result_Schedule_Progress , TASK_Result_Defer , TASK_Result_Defer_Progress , TASK_Result_Complex_Count }
 Return values from ComplexTask::run() extending BasicTaskRunResultEnum. More...
 
enum  ComplexTaskFlagsEnum {
  TASK_Cancel_Cascade = 0x01 , TASK_Retain_Requires = 0x02 , TASK_Soft_Requires = 0x04 , TASK_Cancel_Expired = 0x08 ,
  TASK_Require_Failed = 0xa0
}
 Flags controlling ComplexTask behavior. More...
 
enum  ComplexTaskInternalFlagsEnum { TASK_INTERNAL_Owns_Resources = 0x01 }
 Internal flags reserved for scheduler use. More...
 

Detailed Description

Complex task with dependencies, scheduling, and resource management.

Note
This file is automatically generated from taskqueue/task/complextask.cxh

Definition in file complextask.h.