libtasks Documentation
1.6
|
#include <disk_io_task.h>
Public Member Functions | |
disk_io_task (int fd, int events, tools::buffer *buf) | |
virtual | ~disk_io_task () |
std::string | get_string () const |
std::streamsize | bytes () const |
virtual bool | handle_event (worker *worker, int events) |
virtual void | init_watcher () |
Initialize the underlying watcher object. More... | |
virtual void | start_watcher (worker *) |
Activate the underlying watcher to listen for I/O or timer events. More... | |
virtual void | stop_watcher (worker *) |
Deactivate the underlying watcher. More... | |
virtual void | dispose (worker *worker=nullptr) |
![]() | |
virtual | ~event_task () |
worker * | assigned_worker () const |
Returns a pointer to the assigned worker. More... | |
void | assign_worker (worker *worker) |
void | notify_error (worker *worker=nullptr) |
void | on_error (error_func_worker_t f) |
void | on_error (error_func_void_t f) |
Install an error callback. More... | |
![]() | |
virtual | ~task () |
bool | auto_delete () const |
Returns true if auto deletion is active. More... | |
void | disable_auto_delete () |
Call this to deactivate auto deletion. More... | |
void | finish (worker *worker=nullptr) |
Called by a worker when a task has auto_deletion enabled. More... | |
void | on_finish (finish_func_worker_t f) |
void | on_finish (finish_func_void_t f) |
![]() | |
error_base () | |
virtual | ~error_base () |
bool | error () const |
Return true if an error occured. More... | |
tasks_error | error_code () const |
Return the error code. More... | |
const std::string & | error_message () const |
Return the error message. More... | |
int | sys_errno () const |
Return the errno if available. More... | |
std::string | sys_errno_str () const |
Return the errno description if available. More... | |
const tasks_exception & | exception () const |
Return the underlying exception object. More... | |
void | set_exception (tasks_exception &e) |
Set an exception to report an error. More... | |
void | reset_error () |
Reset the error state. More... | |
Static Public Member Functions | |
static std::shared_future < std::streamsize > | add_task (disk_io_task *task) |
Private Member Functions | |
std::shared_future < std::streamsize > | op () |
Private Attributes | |
int | m_fd = -1 |
int | m_events = EV_UNDEF |
tools::buffer * | m_buf = nullptr |
std::streamsize | m_bytes = -1 |
Additional Inherited Members | |
![]() | |
typedef std::function< void(worker *worker, const tasks_exception &e)> | error_func_worker_t |
typedef std::function< void(const tasks_exception &e)> | error_func_void_t |
![]() | |
typedef std::function< void(worker *worker)> | finish_func_worker_t |
typedef std::function< void()> | finish_func_void_t |
Definition at line 21 of file disk_io_task.h.
tasks::disk_io_task::disk_io_task | ( | int | fd, |
int | events, | ||
tools::buffer * | buf | ||
) |
|
virtual |
|
inlinestatic |
Definition at line 41 of file disk_io_task.h.
|
inline |
|
virtual |
|
inline |
|
virtual |
Will be called for each I/O or timer event.
Each task needs to implement the handle_event method. Returns true if the task stays active and false otherwise. The task will be deleted if false is returned and auto_delete() returns true.
worker | The worker thread executing the task. |
events | The events bitmask. |
Implements tasks::event_task.
Definition at line 53 of file disk_io_task.cpp.
|
inlinevirtual |
Initialize the underlying watcher object.
Implements tasks::event_task.
Definition at line 35 of file disk_io_task.h.
|
private |
Definition at line 21 of file disk_io_task.cpp.
|
inlinevirtual |
Activate the underlying watcher to listen for I/O or timer events.
Implements tasks::event_task.
Definition at line 36 of file disk_io_task.h.
|
inlinevirtual |
Deactivate the underlying watcher.
Implements tasks::event_task.
Definition at line 37 of file disk_io_task.h.
|
private |
Definition at line 49 of file disk_io_task.h.
|
private |
Definition at line 50 of file disk_io_task.h.
|
private |
Definition at line 48 of file disk_io_task.h.
|
private |
Definition at line 47 of file disk_io_task.h.