|
CX Framework
Cross-platform C utility framework
|
Complex task with dependencies, scheduling, and resource management. More...
#include <cx/obj.h>#include "task.h"#include <cx/thread/rwlock.h>#include <cx/taskqueue/requires/taskrequires.h>#include <cx/taskqueue/resource/taskresource.h>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... | |
Complex task with dependencies, scheduling, and resource management.
Definition in file complextask.h.