16 #ifndef BLOOMBERG_QUANTUM_TASK_H 17 #define BLOOMBERG_QUANTUM_TASK_H 23 #include <quantum/interface/quantum_iterminate.h> 24 #include <quantum/interface/quantum_icontext.h> 25 #include <quantum/interface/quantum_iqueue.h> 26 #include <quantum/interface/quantum_itask_continuation.h> 27 #include <quantum/interface/quantum_itask_accessor.h> 28 #include <quantum/quantum_traits.h> 29 #include <quantum/util/quantum_util.h> 41 public std::enable_shared_from_this<Task>
44 using Ptr = std::shared_ptr<Task>;
47 template <
class RET,
class FUNC,
class ... ARGS>
53 template <
class RET,
class FUNC,
class ... ARGS>
77 bool isSleeping(
bool updateTimer = false) final;
94 static
void* operator new(
size_t size);
95 static
void operator delete(
void* p);
102 bool _isHighPriority;
107 std::atomic_flag _terminated;
115 #include <quantum/impl/quantum_task_impl.h> 117 #endif //BLOOMBERG_QUANTUM_TASK_H ITaskContinuation::Ptr getNextTask() final
Definition: quantum_task_impl.h:114
Definition: quantum_buffer_impl.h:22
int getQueueId() final
Definition: quantum_task_impl.h:105
void setNextTask(ITaskContinuation::Ptr nextTask) final
Definition: quantum_task_impl.h:117
void terminate() final
Terminates the object.
Definition: quantum_task_impl.h:79
ITaskContinuation::Ptr getFirstTask() final
Definition: quantum_task_impl.h:126
void setQueueId(int queueId) final
Definition: quantum_task_impl.h:99
Definition: quantum_stl_impl.h:23
Task & operator=(const Task &task)=delete
Type
Definition: quantum_itask.h:37
Runnable object representing a coroutine.
Definition: quantum_task.h:40
int run() final
Definition: quantum_task_impl.h:88
std::weak_ptr< Task > WeakPtr
Definition: quantum_task.h:45
ITaskContinuation::Ptr getErrorHandlerOrFinalTask() final
Definition: quantum_task_impl.h:132
std::shared_ptr< ITask > Ptr
Definition: quantum_itask.h:34
Concrete class representing a coroutine or a thread context.
Definition: quantum_icoro_context.h:29
bool isSleeping(bool updateTimer=false) final
Definition: quantum_task_impl.h:158
std::weak_ptr< ITask > WeakPtr
Definition: quantum_itask.h:35
bool isHighPriority() const final
Definition: quantum_task_impl.h:164
Interface to a task continuation. For internal use only.
Definition: quantum_itask_continuation.h:30
std::shared_ptr< Task > Ptr
Definition: quantum_task.h:44
Task(std::shared_ptr< Context< RET >> ctx, ITask::Type type, FUNC &&func, ARGS &&... args)
Definition: quantum_task_impl.h:41
Type getType() const final
Definition: quantum_task_impl.h:111
Interface to a task accessor. For internal use only.
Definition: quantum_itask_accessor.h:31
static void deleter(Task *p)
Definition: quantum_task_impl.h:182
Interface to a task. For internal use only.
Definition: quantum_itask.h:32
bool isBlocked() const final
Definition: quantum_task_impl.h:152
Task::Ptr TaskPtr
Definition: quantum_task.h:110
ITaskContinuation::Ptr getPrevTask() final
Definition: quantum_task_impl.h:120
Contains definitions for various traits used by this library. For internal use only.
Definition: quantum_traits.h:55
Task::WeakPtr TaskWeakPtr
Definition: quantum_task.h:111
void setPrevTask(ITaskContinuation::Ptr prevTask) final
Definition: quantum_task_impl.h:123