![]() |
Tacopie
3.0.0
Tacopie is a TCP Client & Server C++11 library.
|
#include <io_service.hpp>
Public Types | |
typedef std::function< void(fd_t)> | event_callback_t |
Public Member Functions | |
io_service (void) | |
~io_service (void) | |
dtor | |
io_service (const io_service &)=delete | |
copy ctor | |
io_service & | operator= (const io_service &)=delete |
assignment operator | |
void | set_nb_workers (std::size_t nb_threads) |
void | track (const tcp_socket &socket, const event_callback_t &rd_callback=nullptr, const event_callback_t &wr_callback=nullptr) |
void | set_rd_callback (const tcp_socket &socket, const event_callback_t &event_callback) |
void | set_wr_callback (const tcp_socket &socket, const event_callback_t &event_callback) |
void | untrack (const tcp_socket &socket) |
void | wait_for_removal (const tcp_socket &socket) |
service that operates IO Handling. It polls sockets for input and output, processes read and write operations and calls the appropriate callbacks.
typedef std::function<void(fd_t)> tacopie::io_service::event_callback_t |
callback handler typedef called on new socket event if register to io_service
tacopie::io_service::io_service | ( | void | ) |
ctor
void tacopie::io_service::set_nb_workers | ( | std::size_t | nb_threads | ) |
reset number of io_service workers assigned to this io_service this can be safely called at runtime, even if the io_service is currently running it can be useful if you need to re-adjust the number of workers
nb_threads | number of workers |
void tacopie::io_service::set_rd_callback | ( | const tcp_socket & | socket, |
const event_callback_t & | event_callback | ||
) |
update the read callback if socket is not tracked yet, track it
socket | socket to be tracked |
event_callback | callback to be executed on read event |
void tacopie::io_service::set_wr_callback | ( | const tcp_socket & | socket, |
const event_callback_t & | event_callback | ||
) |
update the write callback if socket is not tracked yet, track it
socket | socket to be tracked |
event_callback | callback to be executed on write event |
void tacopie::io_service::track | ( | const tcp_socket & | socket, |
const event_callback_t & | rd_callback = nullptr , |
||
const event_callback_t & | wr_callback = nullptr |
||
) |
track socket add socket to io_service tracking for read/write operation socket is polled only if read or write callback is defined
socket | socket to be tracked |
rd_callback | callback to be executed on read event |
wr_callback | callback to be executed on write event |
void tacopie::io_service::untrack | ( | const tcp_socket & | socket | ) |
remove socket from io_service tracking socket is marked for untracking and will effectively be removed asynchronously from tracking once
re-adding track while socket is pending for untrack is fine and will simply cancel the untrack operation
socket | socket to be untracked |
void tacopie::io_service::wait_for_removal | ( | const tcp_socket & | socket | ) |
wait until the socket has been effectively removed basically wait until all pending callbacks are executed
socket | socket to wait for |