11 #ifndef ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP 12 #define ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP 14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 20 #if defined(ASIO_HAS_IOCP) 38 template <
typename MutableBufferSequence,
typename Handler>
39 class win_iocp_socket_recvmsg_op :
public operation 44 win_iocp_socket_recvmsg_op(
46 const MutableBufferSequence&
buffers,
48 :
operation(&win_iocp_socket_recvmsg_op::do_complete),
49 cancel_token_(cancel_token),
51 out_flags_(out_flags),
58 std::size_t bytes_transferred)
63 win_iocp_socket_recvmsg_op* o(
64 static_cast<win_iocp_socket_recvmsg_op*>(base));
65 ptr p = { asio::detail::addressof(o->handler_), o, o };
69 #if defined(ASIO_ENABLE_BUFFER_DEBUGGING) 74 MutableBufferSequence>::validate(o->buffers_);
76 #endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) 78 socket_ops::complete_iocp_recvmsg(o->cancel_token_, ec);
87 detail::binder2<Handler, asio::error_code, std::size_t>
88 handler(o->handler_, ec, bytes_transferred);
89 p.h = asio::detail::addressof(handler.handler_);
104 MutableBufferSequence buffers_;
114 #endif // defined(ASIO_HAS_IOCP) 116 #endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP int message_flags
Bitmask type for flags that can be passed to send and receive operations.
#define ASIO_HANDLER_INVOCATION_END
asio::basic_streambuf< Allocator > & b
null_fenced_block fenced_block
class task_io_service io_service_impl
void invoke(Function &function, Context &context)
weak_ptr< void > weak_cancel_token_type
const MutableBufferSequence & buffers
Holds a buffer that can be modified.
#define ASIO_HANDLER_INVOCATION_BEGIN(args)
Class to represent an error code value.
task_io_service_operation operation
#define ASIO_DEFINE_HANDLER_PTR(op)
#define ASIO_HANDLER_COMPLETION(args)
#define ASIO_MOVE_CAST(type)