 |
Kea
1.5.0
|
Go to the documentation of this file.
18 : sequence_id_(nextSequenceId()), signum_(signum),
19 timer_(new
asiolink::IntervalTimer(io_service)) {
23 "IOSignal - handler cannot be null");
42 : sequence_id_(sequence_id), handler_(handler) {
45 "IOSignal::TimerCallback - handler cannot be null");
52 handler_(sequence_id_);
53 }
catch (
const std::exception& ex) {
56 .arg(sequence_id_).arg(ex.what());
63 : io_service_(io_service), signals_() {
79 IOSignalId sequence_id = signal->getSequenceId();
80 IOSignalMap::iterator it = signals_.find(sequence_id);
81 if (it != signals_.end()) {
84 "signal already exists for sequence_id: " << sequence_id);
88 signals_[sequence_id] = signal;
95 IOSignalMap::iterator it = signals_.find(sequence_id);
96 if (it == signals_.end()) {
99 "signal not found for sequence_id: " << sequence_id);
#define LOG_ERROR(LOGGER, MESSAGE)
Macro to conveniently test error output and log it.
void clear()
Erases the contents of the queue.
The IOService class is a wrapper for the ASIO io_service class.
boost::shared_ptr< IOSignal > IOSignalPtr
Defines a pointer to an IOSignal.
IOSignal(asiolink::IOService &io_service, int signum, IOSignalHandler handler)
Constructor.
~IOSignalQueue()
Destructor.
Defines the logger used by the top-level component of kea-dhcp-ddns.
uint64_t IOSignalId
Defines a unique identifier type for IOSignal.
TimerCallback(IOSignalId sequence_id, IOSignalHandler handler)
Constructor.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
IOSignalPtr popSignal(IOSignalId sequence_id)
Removes an IOSignal from the map and returns it.
A wrapper interface for the ASIO library.
boost::shared_ptr< IOService > IOServicePtr
Defines a smart pointer to an IOService instance.
Exception thrown if IOSignal encounters an error.
isc::log::Logger dctl_logger("dctl")
Defines the logger used within libkea-process library.
boost::function< void(IOSignalId sequence_id)> IOSignalHandler
Defines a handler function for an IOSignal.
Defines the callback used by IOSignal's internal timer.
void operator()()
() Operator which serves as the timer's callback
IOSignalQueue(asiolink::IOServicePtr &io_service)
Constructor.
IOSignalId pushSignal(int signum, IOSignalHandler handler)
Creates an IOSignal.
Implements an asynchronous "signal" for IOService driven processing.