12#include <netinet/in.h>
13#include <boost/shared_ptr.hpp>
14#include <sys/socket.h>
23class CallbackWrapper {
27 CallbackWrapper(
const std::function<
void()>& callback) :
28 callback_(callback) {}
38 std::function<void()> callback_;
50 work_(new
boost::asio::io_service::work(io_service_)) {
71 io_service_.run_one();
93 return (io_service_.stopped());
114 return (io_service_);
120 void post(
const std::function<
void ()>& callback) {
121 const CallbackWrapper wrapper(callback);
122 io_service_.post(wrapper);
126 boost::asio::io_service io_service_;
127 boost::shared_ptr<boost::asio::io_service::work> work_;
158 return (io_impl_->stopped());
168 io_impl_->stopWork();
171boost::asio::io_service&
173 return (io_impl_->get_io_service());
178 return (io_impl_->post(callback));
IOServiceImpl()
The constructor.
void run_one()
Run the underlying event loop for a single event.
void poll()
Run the underlying event loop for a ready events.
boost::asio::io_service & get_io_service()
Return the native io_service object used in this wrapper.
void run()
Start the underlying event loop.
void stopWork()
Removes IO service work object to let it finish running when all handlers have been invoked.
~IOServiceImpl()
The destructor.
void stop()
Stop the underlying event loop.
void restart()
Restarts the IOService in preparation for a subsequent run() invocation.
void post(const std::function< void()> &callback)
Post a callback on the IO service.
bool stopped() const
Indicates if the IOService has been stopped.
The IOService class is a wrapper for the ASIO io_service class.
void run_one()
Run the underlying event loop for a single event.
~IOService()
The destructor.
void run()
Start the underlying event loop.
IOService()
The constructor.
boost::asio::io_service & get_io_service()
Return the native io_service object used in this wrapper.
void stop()
Stop the underlying event loop.
void restart()
Restarts the IOService in preparation for a subsequent run() invocation.
bool stopped() const
Indicates if the IOService has been stopped.
void stopWork()
Removes IO service work object to let it finish running when all handlers have been invoked.
void poll()
Run the underlying event loop for a ready events.
void post(const std::function< void()> &callback)
Post a callback to the end of the queue.
A wrapper interface for the ASIO library.
Defines the logger used by the top-level component of kea-lfc.