00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ASIO_READ_AT_HPP
00012 #define ASIO_READ_AT_HPP
00013
00014 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
00015 # pragma once
00016 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
00017
00018 #include "asio/detail/push_options.hpp"
00019
00020 #include "asio/detail/push_options.hpp"
00021 #include <cstddef>
00022 #include <boost/config.hpp>
00023 #include <boost/cstdint.hpp>
00024 #include "asio/detail/pop_options.hpp"
00025
00026 #include "asio/basic_streambuf.hpp"
00027 #include "asio/error.hpp"
00028
00029 namespace asio {
00030
00038
00041
00079 template <typename SyncRandomAccessReadDevice, typename MutableBufferSequence>
00080 std::size_t read_at(SyncRandomAccessReadDevice& d,
00081 boost::uint64_t offset, const MutableBufferSequence& buffers);
00082
00085
00133 template <typename SyncRandomAccessReadDevice, typename MutableBufferSequence,
00134 typename CompletionCondition>
00135 std::size_t read_at(SyncRandomAccessReadDevice& d,
00136 boost::uint64_t offset, const MutableBufferSequence& buffers,
00137 CompletionCondition completion_condition);
00138
00141
00182 template <typename SyncRandomAccessReadDevice, typename MutableBufferSequence,
00183 typename CompletionCondition>
00184 std::size_t read_at(SyncRandomAccessReadDevice& d,
00185 boost::uint64_t offset, const MutableBufferSequence& buffers,
00186 CompletionCondition completion_condition, asio::error_code& ec);
00187
00190
00216 template <typename SyncRandomAccessReadDevice, typename Allocator>
00217 std::size_t read_at(SyncRandomAccessReadDevice& d,
00218 boost::uint64_t offset, basic_streambuf<Allocator>& b);
00219
00222
00257 template <typename SyncRandomAccessReadDevice, typename Allocator,
00258 typename CompletionCondition>
00259 std::size_t read_at(SyncRandomAccessReadDevice& d,
00260 boost::uint64_t offset, basic_streambuf<Allocator>& b,
00261 CompletionCondition completion_condition);
00262
00265
00301 template <typename SyncRandomAccessReadDevice, typename Allocator,
00302 typename CompletionCondition>
00303 std::size_t read_at(SyncRandomAccessReadDevice& d,
00304 boost::uint64_t offset, basic_streambuf<Allocator>& b,
00305 CompletionCondition completion_condition, asio::error_code& ec);
00306
00315
00318
00375 template <typename AsyncRandomAccessReadDevice, typename MutableBufferSequence,
00376 typename ReadHandler>
00377 void async_read_at(AsyncRandomAccessReadDevice& d, boost::uint64_t offset,
00378 const MutableBufferSequence& buffers, ReadHandler handler);
00379
00382
00445 template <typename AsyncRandomAccessReadDevice, typename MutableBufferSequence,
00446 typename CompletionCondition, typename ReadHandler>
00447 void async_read_at(AsyncRandomAccessReadDevice& d,
00448 boost::uint64_t offset, const MutableBufferSequence& buffers,
00449 CompletionCondition completion_condition, ReadHandler handler);
00450
00453
00496 template <typename AsyncRandomAccessReadDevice, typename Allocator,
00497 typename ReadHandler>
00498 void async_read_at(AsyncRandomAccessReadDevice& d, boost::uint64_t offset,
00499 basic_streambuf<Allocator>& b, ReadHandler handler);
00500
00503
00554 template <typename AsyncRandomAccessReadDevice, typename Allocator,
00555 typename CompletionCondition, typename ReadHandler>
00556 void async_read_at(AsyncRandomAccessReadDevice& d,
00557 boost::uint64_t offset, basic_streambuf<Allocator>& b,
00558 CompletionCondition completion_condition, ReadHandler handler);
00559
00562 }
00563
00564 #include "asio/impl/read_at.ipp"
00565
00566 #include "asio/detail/pop_options.hpp"
00567
00568 #endif // ASIO_READ_AT_HPP