write_at.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 1,347 行 · 第 1/3 页
CPP
1,347 行
BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_all(), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_all(), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_all(), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_all(), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(1), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(1), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(1), error); BOOST_CHECK(bytes_transferred == 1); BOOST_CHECK(s.check(0, buffers, 1)); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(1), error); BOOST_CHECK(bytes_transferred == 1); BOOST_CHECK(s.check(1234, buffers, 1)); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(1), error); BOOST_CHECK(bytes_transferred == 10); BOOST_CHECK(s.check(0, buffers, 10)); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(1), error); BOOST_CHECK(bytes_transferred == 10); BOOST_CHECK(s.check(1234, buffers, 10)); BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(10), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(10), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(10), error); BOOST_CHECK(bytes_transferred == 10); BOOST_CHECK(s.check(0, buffers, 10)); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(10), error); BOOST_CHECK(bytes_transferred == 10); BOOST_CHECK(s.check(1234, buffers, 10)); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(10), error); BOOST_CHECK(bytes_transferred == 10); BOOST_CHECK(s.check(0, buffers, 10)); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(10), error); BOOST_CHECK(bytes_transferred == 10); BOOST_CHECK(s.check(1234, buffers, 10)); BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == 42); BOOST_CHECK(s.check(0, buffers, 42)); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == 42); BOOST_CHECK(s.check(1234, buffers, 42)); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == 50); BOOST_CHECK(s.check(0, buffers, 50)); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, boost::asio::transfer_at_least(42), error); BOOST_CHECK(bytes_transferred == 50); BOOST_CHECK(s.check(1234, buffers, 50)); BOOST_CHECK(!error); s.reset(); bytes_transferred = boost::asio::write_at(s, 0, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(1); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 0, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); BOOST_CHECK(!error); s.reset(); s.next_write_length(10); error = boost::system::error_code(); bytes_transferred = boost::asio::write_at(s, 1234, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(write_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); BOOST_CHECK(!error);}void async_write_handler(const boost::system::error_code& e, size_t bytes_transferred, size_t expected_bytes_transferred, bool* called){ *called = true; BOOST_CHECK(!e); BOOST_CHECK(bytes_transferred == expected_bytes_transferred);}void test_4_arg_async_write_at(){ boost::asio::io_service ios; test_random_access_device s(ios); boost::asio::const_buffers_1 buffers = boost::asio::buffer(write_data, sizeof(write_data)); s.reset(); bool called = false; boost::asio::async_write_at(s, 0, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); s.reset(); called = false; boost::asio::async_write_at(s, 1234, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write_at(s, 0, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write_at(s, 1234, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write_at(s, 0, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write_at(s, 1234, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); s.reset(); s.next_write_length(10); called = false; boost::asio::async_write_at(s, 0, buffers, boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(write_data)));}void test_5_arg_async_write_at(){ boost::asio::io_service ios; test_random_access_device s(ios); boost::asio::const_buffers_1 buffers = boost::asio::buffer(write_data, sizeof(write_data)); s.reset(); bool called = false; boost::asio::async_write_at(s, 0, buffers, boost::asio::transfer_all(), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); s.reset(); called = false; boost::asio::async_write_at(s, 1234, buffers, boost::asio::transfer_all(), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false; boost::asio::async_write_at(s, 0, buffers, boost::asio::transfer_all(), boost::bind(async_write_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(write_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(write_data))); s.reset(); s.next_write_length(1); called = false;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?