diff options
Diffstat (limited to 'boost/asio/windows/random_access_handle_service.hpp')
-rw-r--r-- | boost/asio/windows/random_access_handle_service.hpp | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/boost/asio/windows/random_access_handle_service.hpp b/boost/asio/windows/random_access_handle_service.hpp index 9b5e4561a0..bc013d90c1 100644 --- a/boost/asio/windows/random_access_handle_service.hpp +++ b/boost/asio/windows/random_access_handle_service.hpp @@ -2,7 +2,7 @@ // windows/random_access_handle_service.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -21,8 +21,8 @@ || defined(GENERATING_DOCUMENTATION) #include <cstddef> -#include <boost/config.hpp> -#include <boost/cstdint.hpp> +#include <boost/asio/async_result.hpp> +#include <boost/asio/detail/cstdint.hpp> #include <boost/asio/detail/win_iocp_handle_service.hpp> #include <boost/asio/error.hpp> #include <boost/asio/io_service.hpp> @@ -151,7 +151,7 @@ public: /// Write the given data at the specified offset. template <typename ConstBufferSequence> - std::size_t write_some_at(implementation_type& impl, boost::uint64_t offset, + std::size_t write_some_at(implementation_type& impl, uint64_t offset, const ConstBufferSequence& buffers, boost::system::error_code& ec) { return service_impl_.write_some_at(impl, offset, buffers, ec); @@ -159,17 +159,24 @@ public: /// Start an asynchronous write at the specified offset. template <typename ConstBufferSequence, typename WriteHandler> - void async_write_some_at(implementation_type& impl, - boost::uint64_t offset, const ConstBufferSequence& buffers, + BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, + void (boost::system::error_code, std::size_t)) + async_write_some_at(implementation_type& impl, + uint64_t offset, const ConstBufferSequence& buffers, BOOST_ASIO_MOVE_ARG(WriteHandler) handler) { - service_impl_.async_write_some_at(impl, offset, buffers, + boost::asio::detail::async_result_init< + WriteHandler, void (boost::system::error_code, std::size_t)> init( BOOST_ASIO_MOVE_CAST(WriteHandler)(handler)); + + service_impl_.async_write_some_at(impl, offset, buffers, init.handler); + + return init.result.get(); } /// Read some data from the specified offset. template <typename MutableBufferSequence> - std::size_t read_some_at(implementation_type& impl, boost::uint64_t offset, + std::size_t read_some_at(implementation_type& impl, uint64_t offset, const MutableBufferSequence& buffers, boost::system::error_code& ec) { return service_impl_.read_some_at(impl, offset, buffers, ec); @@ -177,12 +184,19 @@ public: /// Start an asynchronous read at the specified offset. template <typename MutableBufferSequence, typename ReadHandler> - void async_read_some_at(implementation_type& impl, - boost::uint64_t offset, const MutableBufferSequence& buffers, + BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, + void (boost::system::error_code, std::size_t)) + async_read_some_at(implementation_type& impl, + uint64_t offset, const MutableBufferSequence& buffers, BOOST_ASIO_MOVE_ARG(ReadHandler) handler) { - service_impl_.async_read_some_at(impl, offset, buffers, + boost::asio::detail::async_result_init< + ReadHandler, void (boost::system::error_code, std::size_t)> init( BOOST_ASIO_MOVE_CAST(ReadHandler)(handler)); + + service_impl_.async_read_some_at(impl, offset, buffers, init.handler); + + return init.result.get(); } private: |