11 #ifndef ASIO_SSL_DETAIL_IO_HPP 12 #define ASIO_SSL_DETAIL_IO_HPP 14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 20 #if !defined(ASIO_ENABLE_OLD_SSL) 24 #endif // !defined(ASIO_ENABLE_OLD_SSL) 32 #if !defined(ASIO_ENABLE_OLD_SSL) 34 template <
typename Stream,
typename Operation>
38 std::size_t bytes_transferred = 0;
39 do switch (op(core.
engine_, ec, bytes_transferred))
74 return bytes_transferred;
80 return bytes_transferred;
89 template <
typename Stream,
typename Operation,
typename Handler>
94 const Operation& op, Handler& handler)
105 #if defined(ASIO_HAS_MOVE) 129 #endif // defined(ASIO_HAS_MOVE) 132 std::size_t bytes_transferred = ~std::size_t(0),
int start = 0)
227 if (bytes_transferred == ~std::size_t(0))
228 bytes_transferred = 0;
290 template <
typename Stream,
typename Operation,
typename Handler>
298 template <
typename Stream,
typename Operation,
typename Handler>
303 pointer, size, this_handler->
handler_);
306 template <
typename Stream,
typename Operation,
typename Handler>
310 return this_handler->
start_ == 0 ?
true 314 template <
typename Function,
typename Stream,
315 typename Operation,
typename Handler>
323 template <
typename Function,
typename Stream,
324 typename Operation,
typename Handler>
332 template <
typename Stream,
typename Operation,
typename Handler>
334 const Operation& op, Handler& handler)
337 next_layer, core, op, handler)(
341 #endif // !defined(ASIO_ENABLE_OLD_SSL) 349 #endif // ASIO_SSL_DETAIL_IO_HPP
void async_io(Stream &next_layer, stream_core &core, const Operation &op, Handler &handler)
asio::steady_timer pending_read_
asio::steady_timer pending_write_
static asio::steady_timer::time_point neg_infin()
io_op(Stream &next_layer, stream_core &core, const Operation &op, Handler &handler)
void asio_handler_invoke(Function &function, io_op< Stream, Operation, Handler > *this_handler)
std::size_t write(SyncWriteStream &s, const ConstBufferSequence &buffers, CompletionCondition completion_condition, asio::error_code &ec)
Write a certain amount of data to a stream before returning.
mutable_buffers_1 buffer(const mutable_buffer &b)
Create a new modifiable buffer from an existing buffer.
std::size_t bytes_transferred_
std::size_t io(Stream &next_layer, stream_core &core, const Operation &op, asio::error_code &ec)
std::size_t buffer_size(const mutable_buffer &b)
Get the number of bytes in a modifiable buffer.
void invoke(Function &function, Context &context)
static asio::steady_timer::time_point pos_infin()
ASIO_DECL asio::mutable_buffers_1 get_output(const asio::mutable_buffer &data)
bool asio_handler_is_continuation(io_op< Stream, Operation, Handler > *this_handler)
void * asio_handler_allocate(std::size_t size, io_op< Stream, Operation, Handler > *this_handler)
const asio::mutable_buffers_1 input_buffer_
asio::const_buffer input_
bool is_continuation(Context &context)
void operator()(asio::error_code ec, std::size_t bytes_transferred=~std::size_t(0), int start=0)
Class to represent an error code value.
void deallocate(void *p, std::size_t s, Handler &h)
ASIO_DECL asio::const_buffer put_input(const asio::const_buffer &data)
void asio_handler_deallocate(void *pointer, std::size_t size, io_op< Stream, Operation, Handler > *this_handler)
void * allocate(std::size_t s, Handler &h)
ASIO_DECL const asio::error_code & map_error_code(asio::error_code &ec) const
#define ASIO_MOVE_CAST(type)
const asio::mutable_buffers_1 output_buffer_