16 #ifndef BLOOMBERG_QUANTUM_IO_TASK_H 17 #define BLOOMBERG_QUANTUM_IO_TASK_H 20 #include <quantum/interface/quantum_itask.h> 21 #include <quantum/quantum_capture.h> 22 #include <quantum/quantum_promise.h> 23 #include <quantum/util/quantum_util.h> 37 using Ptr = std::shared_ptr<IoTask>;
40 template <
class RET,
class FUNC,
class ... ARGS>
45 template <
class RET,
class FUNC,
class ... ARGS>
68 bool isSleeping(
bool updateTimer = false) final;
74 static
void* operator new(
size_t size);
75 static
void operator delete(
void* p);
80 std::atomic_flag _terminated;
90 #include <quantum/impl/quantum_io_task_impl.h> 92 #endif //BLOOMBERG_QUANTUM_IO_TASK_H IoTask::Ptr IoTaskPtr
Definition: quantum_io_task.h:85
Type getType() const final
Definition: quantum_io_task_impl.h:101
std::weak_ptr< IoTask > WeakPtr
Definition: quantum_io_task.h:38
IoTask::WeakPtr IoTaskWeakPtr
Definition: quantum_io_task.h:86
Long running or blocking task running in the IO thread pool.
Definition: quantum_io_task.h:34
Definition: quantum_buffer_impl.h:22
bool isHighPriority() const final
Definition: quantum_io_task_impl.h:119
bool isBlocked() const final
Definition: quantum_io_task_impl.h:107
Definition: quantum_stl_impl.h:23
int run() final
Definition: quantum_io_task_impl.h:83
Type
Definition: quantum_itask.h:37
Class representing a promised value.
Definition: quantum_icoro_promise.h:77
~IoTask()
Definition: quantum_io_task_impl.h:68
static void deleter(IoTask *p)
Definition: quantum_io_task_impl.h:137
bool isSleeping(bool updateTimer=false) final
Definition: quantum_io_task_impl.h:113
std::shared_ptr< ITask > Ptr
Definition: quantum_itask.h:34
std::shared_ptr< IoTask > Ptr
Definition: quantum_io_task.h:37
std::weak_ptr< ITask > WeakPtr
Definition: quantum_itask.h:35
IoTask & operator=(const IoTask &task)=delete
Similar implementation to std::function except that it allows capture of non-copyable types.
Definition: quantum_capture.h:62
void setQueueId(int queueId) final
Definition: quantum_io_task_impl.h:89
IoTask(std::shared_ptr< Promise< RET >> promise, FUNC &&func, ARGS &&... args)
Definition: quantum_io_task_impl.h:40
Interface to a task. For internal use only.
Definition: quantum_itask.h:32
void terminate() final
Terminates the object.
Definition: quantum_io_task_impl.h:74
int getQueueId() final
Definition: quantum_io_task_impl.h:95