libtasks Documentation  1.6
tasks::net_io_task Class Reference

The net_io_task implements the base for socket based network tasks. More...

#include <net_io_task.h>

Inheritance diagram for tasks::net_io_task:
Collaboration diagram for tasks::net_io_task:

Public Member Functions

 net_io_task (int events)
 
 net_io_task (net::socket &socket, int events)
 
virtual ~net_io_task ()
 
std::string get_string () const
 A debug helper. More...
 
net::socketsocket ()
 Provide access to the underlying socket object. More...
 
const net::socketsocket () const
 Provide const access to the underlying socket object. More...
 
- Public Member Functions inherited from tasks::io_task_base
 io_task_base (int events)
 
virtual ~io_task_base ()
 
std::string get_string () const
 
int events () const
 Return the monitored events. More...
 
ev_io * watcher () const
 Return the io watcher object. More...
 
virtual void init_watcher ()
 Initialize the watcher. More...
 
virtual void start_watcher (worker *worker)
 Start a watcher in the context of the given worker. More...
 
virtual void stop_watcher (worker *worker)
 Stop a watcher in the context of the given worker. More...
 
virtual void update_watcher (worker *worker)
 Udate a watcher in the context of the given worker. More...
 
virtual void dispose (worker *worker)
 Stop the watcher before being deleted. More...
 
- Public Member Functions inherited from tasks::event_task
virtual ~event_task ()
 
virtual bool handle_event (worker *worker, int events)=0
 
workerassigned_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...
 
- Public Member Functions inherited from tasks::task
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)
 
- Public Member Functions inherited from tasks::error_base
 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_exceptionexception () 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...
 
- Public Member Functions inherited from tasks::disposable
 disposable ()
 
virtual ~disposable ()
 
bool can_dispose () const
 Check if a task can be disposed or not. More...
 
void disable_dispose ()
 Mark a task for being not disposable. More...
 
void enable_dispose ()
 Mark a task for being disposable. More...
 

Static Public Member Functions

static void add_task (net_io_task *task)
 

Protected Member Functions

void add_task (worker *worker, net_io_task *task)
 
io_baseiob ()
 Grant socket access to the io_task_base. More...
 
const io_baseiob () const
 Grant const socket access to the io_task_base. More...
 
void disable_auto_close ()
 Disable automatic closing of the socket in the desctructor. More...
 
- Protected Member Functions inherited from tasks::io_task_base
void set_events (int events)
 Update the events the object monitors. More...
 

Private Attributes

net::socket m_socket
 
bool m_auto_close = true
 

Additional Inherited Members

- Public Types inherited from tasks::event_task
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
 
- Public Types inherited from tasks::task
typedef std::function< void(worker
*worker)> 
finish_func_worker_t
 
typedef std::function< void()> finish_func_void_t
 

Detailed Description

The net_io_task implements the base for socket based network tasks.

Definition at line 21 of file net_io_task.h.

Constructor & Destructor Documentation

tasks::net_io_task::net_io_task ( int  events)
inline

Definition at line 23 of file net_io_task.h.

tasks::net_io_task::net_io_task ( net::socket socket,
int  events 
)

Definition at line 14 of file net_io_task.cpp.

Here is the call graph for this function:

tasks::net_io_task::~net_io_task ( )
virtual

Definition at line 22 of file net_io_task.cpp.

Here is the call graph for this function:

Member Function Documentation

void tasks::net_io_task::add_task ( net_io_task task)
static

This public method can be used to add io tasks outside of a worker thread context. If io tasks should be created within the context of a worker thread, you should use the protected non static method and pass a worker thread pointer.

Definition at line 40 of file net_io_task.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void tasks::net_io_task::add_task ( worker worker,
net_io_task task 
)
protected

Definition at line 31 of file net_io_task.cpp.

Here is the call graph for this function:

void tasks::net_io_task::disable_auto_close ( )
inlineprotected

Disable automatic closing of the socket in the desctructor.

Definition at line 61 of file net_io_task.h.

std::string tasks::net_io_task::get_string ( ) const
inline

A debug helper.

Definition at line 28 of file net_io_task.h.

Here is the call graph for this function:

Here is the caller graph for this function:

io_base& tasks::net_io_task::iob ( )
inlineprotectedvirtual

Grant socket access to the io_task_base.

Implements tasks::io_task_base.

Definition at line 53 of file net_io_task.h.

Here is the caller graph for this function:

const io_base& tasks::net_io_task::iob ( ) const
inlineprotectedvirtual

Grant const socket access to the io_task_base.

Implements tasks::io_task_base.

Definition at line 57 of file net_io_task.h.

net::socket& tasks::net_io_task::socket ( )
inline

Provide access to the underlying socket object.

Definition at line 35 of file net_io_task.h.

Here is the caller graph for this function:

const net::socket& tasks::net_io_task::socket ( ) const
inline

Provide const access to the underlying socket object.

Definition at line 39 of file net_io_task.h.

Member Data Documentation

bool tasks::net_io_task::m_auto_close = true
private

Definition at line 67 of file net_io_task.h.

net::socket tasks::net_io_task::m_socket
private

Definition at line 66 of file net_io_task.h.


The documentation for this class was generated from the following files: