00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ASIO_WRITE_AT_HPP
00012 #define ASIO_WRITE_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
00037
00039
00077 template <typename SyncRandomAccessWriteDevice, typename ConstBufferSequence>
00078 std::size_t write_at(SyncRandomAccessWriteDevice& d,
00079 boost::uint64_t offset, const ConstBufferSequence& buffers);
00080
00082
00130 template <typename SyncRandomAccessWriteDevice, typename ConstBufferSequence,
00131 typename CompletionCondition>
00132 std::size_t write_at(SyncRandomAccessWriteDevice& d,
00133 boost::uint64_t offset, const ConstBufferSequence& buffers,
00134 CompletionCondition completion_condition);
00135
00137
00178 template <typename SyncRandomAccessWriteDevice, typename ConstBufferSequence,
00179 typename CompletionCondition>
00180 std::size_t write_at(SyncRandomAccessWriteDevice& d,
00181 boost::uint64_t offset, const ConstBufferSequence& buffers,
00182 CompletionCondition completion_condition, asio::error_code& ec);
00183
00185
00213 template <typename SyncRandomAccessWriteDevice, typename Allocator>
00214 std::size_t write_at(SyncRandomAccessWriteDevice& d,
00215 boost::uint64_t offset, basic_streambuf<Allocator>& b);
00216
00218
00255 template <typename SyncRandomAccessWriteDevice, typename Allocator,
00256 typename CompletionCondition>
00257 std::size_t write_at(SyncRandomAccessWriteDevice& d, boost::uint64_t offset,
00258 basic_streambuf<Allocator>& b, CompletionCondition completion_condition);
00259
00261
00299 template <typename SyncRandomAccessWriteDevice, typename Allocator,
00300 typename CompletionCondition>
00301 std::size_t write_at(SyncRandomAccessWriteDevice& d, boost::uint64_t offset,
00302 basic_streambuf<Allocator>& b, CompletionCondition completion_condition,
00303 asio::error_code& ec);
00304
00313
00316
00365 template <typename AsyncRandomAccessWriteDevice, typename ConstBufferSequence,
00366 typename WriteHandler>
00367 void async_write_at(AsyncRandomAccessWriteDevice& d, boost::uint64_t offset,
00368 const ConstBufferSequence& buffers, WriteHandler handler);
00369
00372
00436 template <typename AsyncRandomAccessWriteDevice, typename ConstBufferSequence,
00437 typename CompletionCondition, typename WriteHandler>
00438 void async_write_at(AsyncRandomAccessWriteDevice& d,
00439 boost::uint64_t offset, const ConstBufferSequence& buffers,
00440 CompletionCondition completion_condition, WriteHandler handler);
00441
00444
00482 template <typename AsyncRandomAccessWriteDevice, typename Allocator,
00483 typename WriteHandler>
00484 void async_write_at(AsyncRandomAccessWriteDevice& d, boost::uint64_t offset,
00485 basic_streambuf<Allocator>& b, WriteHandler handler);
00486
00489
00541 template <typename AsyncRandomAccessWriteDevice, typename Allocator,
00542 typename CompletionCondition, typename WriteHandler>
00543 void async_write_at(AsyncRandomAccessWriteDevice& d, boost::uint64_t offset,
00544 basic_streambuf<Allocator>& b, CompletionCondition completion_condition,
00545 WriteHandler handler);
00546
00549 }
00550
00551 #include "asio/impl/write_at.ipp"
00552
00553 #include "asio/detail/pop_options.hpp"
00554
00555 #endif // ASIO_WRITE_AT_HPP