Name Description Size
asio_async_ops.h Base class for asynchronous stream operations. Asynchronous operations, used for example to implement an interface for boost::asio::async_read_some and boost::asio::async_write_some, are based on boost::asio::coroutines. Derived operations should implement a call operator and invoke it with the correct parameters upon construction. The call operator needs to make sure that the user-provided handler is not called directly. Typically, yield / reenter is used for this in the following fashion: ``` void operator()(boost::system::error_code ec, std::size_t bytes_transferred, bool isContinuation = true) { reenter(this) { // operation specific logic, repeatedly interacting with the stream_core and the next_layer (socket) // make sure intermediate initiating function is called if(!isContinuation) { yield next_layer.async_operation(empty_buffer, this); } // call the completion handler complete_now(error_code, bytes_transferred); } } ``` Once the operation is completed and ready to call the completion handler it checks if an intermediate initiating function has been called using the `isContinuation` parameter. If not, it will call an asynchronous operation, such as `async_read_some`, with and empty buffer, set the object itself as the handler, and `yield`. As a result, the call operator will be invoked again, this time as a continuation, and will jump to the location where it yielded before using `reenter`. It is now safe to call the handler function via `complete_now`. \tparam Handler Type of the completion handler \tparam Executor1 Type of the asio executor (usually derived from the lower layer) \tparam Allocator Type of the allocator to be used 14210
asio_context.h A helper class to initialize and configure Botan::TLS::Stream 3543
asio_error.h This file defines Botan-specific subclasses of boost::system::error_category. In addition to the class definition, each category class is accompanied by function `make_error_code` used to create a `boost::system::error_code` of the category from some other kind of error in Botan (for example, a TLS alert). Since error_category instances should be singletons, there's also a method to get/create the instance for each class. 3793
asio_stream.h @brief boost::asio compatible SSL/TLS stream @tparam StreamLayer type of the next layer, usually a network socket @tparam ChannelT type of the native_handle, defaults to Botan::TLS::Channel, only needed for testing purposes 32769
info.txt 176