![]() |
Kea
2.5.3
|
The IOService
class is a wrapper for the ASIO io_service
class.
More...
#include <io_service.h>
Constructors and Destructor | |
Note: The copy constructor and the assignment operator are intentionally defined as private, making this class non-copyable. | |
IOService () | |
The constructor. More... | |
~IOService () | |
The destructor. More... | |
void | run () |
Start the underlying event loop. More... | |
void | run_one () |
Run the underlying event loop for a single event. More... | |
void | poll () |
Run the underlying event loop for a ready events. More... | |
void | stop () |
Stop the underlying event loop. More... | |
bool | stopped () const |
Indicates if the IOService has been stopped. More... | |
void | restart () |
Restarts the IOService in preparation for a subsequent run() invocation. More... | |
void | stopWork () |
Removes IO service work object to let it finish running when all handlers have been invoked. More... | |
boost::asio::io_service & | get_io_service () |
Return the native io_service object used in this wrapper. More... | |
void | post (const std::function< void()> &callback) |
Post a callback to the end of the queue. More... | |
The IOService
class is a wrapper for the ASIO io_service
class.
Definition at line 33 of file io_service.h.
isc::asiolink::IOService::IOService | ( | ) |
The constructor.
Definition at line 107 of file io_service.cc.
isc::asiolink::IOService::~IOService | ( | ) |
The destructor.
Definition at line 110 of file io_service.cc.
boost::asio::io_service & isc::asiolink::IOService::get_io_service | ( | ) |
Return the native io_service
object used in this wrapper.
This is a short term work around to support other Kea modules that share the same io_service
with the authoritative server. It will eventually be removed once the wrapper interface is generalized.
Definition at line 149 of file io_service.cc.
Referenced by isc::dhcp_ddns::NameChangeUDPListener::open(), isc::dhcp_ddns::NameChangeUDPSender::open(), and isc::dhcp_ddns::NameChangeSender::runReadyIO().
void isc::asiolink::IOService::poll | ( | ) |
Run the underlying event loop for a ready events.
This method executes handlers for all ready events and returns. It will return immediately if there are no ready events.
Definition at line 124 of file io_service.cc.
void isc::asiolink::IOService::post | ( | const std::function< void()> & | callback | ) |
Post a callback to the end of the queue.
Requests the callback be called sometime later. It is not guaranteed by the underlying asio, but it can reasonably be expected the callback is put to the end of the callback queue. It is not called from within this function.
It may be used to implement "background" work, for example (doing stuff by small bits that are called from time to time).
Definition at line 154 of file io_service.cc.
Referenced by isc::d2::DNSClientImpl::doUpdate().
void isc::asiolink::IOService::restart | ( | ) |
Restarts the IOService in preparation for a subsequent run()
invocation.
Definition at line 139 of file io_service.cc.
void isc::asiolink::IOService::run | ( | ) |
Start the underlying event loop.
This method does not return control to the caller until the stop()
method is called via some handler.
Definition at line 114 of file io_service.cc.
Referenced by isc::ha::HAService::sendHAReset(), isc::ha::HAService::sendLeaseUpdatesFromBacklog(), and isc::ha::HAService::synchronize().
void isc::asiolink::IOService::run_one | ( | ) |
Run the underlying event loop for a single event.
This method return control to the caller as soon as the first handler has completed. (If no handlers are ready when it is run, it will block until one is.)
Definition at line 119 of file io_service.cc.
void isc::asiolink::IOService::stop | ( | ) |
Stop the underlying event loop.
This will return the control to the caller of the run()
method.
Definition at line 129 of file io_service.cc.
Referenced by isc::ha::HAService::sendHAReset(), isc::ha::HAService::sendLeaseUpdatesFromBacklog(), and isc::ha::HAService::synchronize().
bool isc::asiolink::IOService::stopped | ( | ) | const |
Indicates if the IOService has been stopped.
Definition at line 134 of file io_service.cc.
void isc::asiolink::IOService::stopWork | ( | ) |
Removes IO service work object to let it finish running when all handlers have been invoked.
Definition at line 144 of file io_service.cc.