15#ifdef HAVE_BOOST_ASIO_COROUTINE_HPP
16#include <boost/asio/coroutine.hpp>
18#include <ext/coroutine/coroutine.hpp>
27#include <boost/shared_array.hpp>
28#include <boost/shared_ptr.hpp>
29#include <boost/date_time/posix_time/posix_time_types.hpp>
30#include <boost/system/error_code.hpp>
41class IOFetch :
public boost::asio::coroutine {
207 void operator()(boost::system::error_code ec = boost::system::error_code(),
246 void logIOFailure(boost::system::error_code ec);
251 boost::shared_ptr<IOFetchData> data_;
virtual void operator()(Result result)=0
Callback method.
virtual ~Callback()=default
Destructor.
Callback()=default
Constructor.
Upstream Fetch Processing.
IOFetch(Protocol protocol, const isc::asiolink::IOServicePtr &service, const isc::dns::Question &question, const isc::asiolink::IOAddress &address, uint16_t port, isc::util::OutputBufferPtr &buff, Callback *cb, int wait=-1, bool edns=true)
Constructor.
void operator()(boost::system::error_code ec=boost::system::error_code(), size_t length=0)
Coroutine entry point.
Result
Result of Upstream Fetch.
Origin
Origin of Asynchronous I/O Call.
Protocol
Protocol to use on the fetch.
void stop(Result reason=STOPPED)
Terminate query.
Protocol getProtocol() const
Return Current Protocol.
The IOAddress class represents an IP addresses (version agnostic)
The Question class encapsulates the common search key of DNS lookup, consisting of owner name,...
boost::shared_ptr< IOFetch > IOFetchPtr
Defines a pointer to an IOFetch.
boost::shared_ptr< IOService > IOServicePtr
Defines a smart pointer to an IOService instance.
boost::shared_ptr< const Message > ConstMessagePtr
boost::shared_ptr< Message > MessagePtr
Pointer-like type pointing to a Message.
boost::shared_ptr< OutputBuffer > OutputBufferPtr
Type of pointers to output buffers.
Defines the logger used by the top-level component of kea-lfc.