read_at.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 1,467 行 · 第 1/4 页
CPP
1,467 行
s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 0, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 1234, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 0, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 1234, buffers, old_style_transfer_all, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 0, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); BOOST_CHECK(!error); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); error = boost::system::error_code(); bytes_transferred = boost::asio::read_at(s, 1234, buffers, short_transfer, error); BOOST_CHECK(bytes_transferred == sizeof(read_data)); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); BOOST_CHECK(!error);}void async_read_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_read_at(){ boost::asio::io_service ios; test_random_access_device s(ios); char read_buf[sizeof(read_data)]; boost::asio::mutable_buffers_1 buffers = boost::asio::buffer(read_buf, sizeof(read_buf)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bool called = false; boost::asio::async_read_at(s, 0, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data)));}void test_5_arg_async_read_at(){ boost::asio::io_service ios; test_random_access_device s(ios); char read_buf[sizeof(read_data)]; boost::asio::mutable_buffers_1 buffers = boost::asio::buffer(read_buf, sizeof(read_buf)); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); bool called = false; boost::asio::async_read_at(s, 0, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::asio::transfer_all(), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, sizeof(read_data), &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, sizeof(read_data))); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 1, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, 1)); s.reset(read_data, sizeof(read_data)); s.next_read_length(1); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 1234, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 1, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(1234, buffers, 1)); s.reset(read_data, sizeof(read_data)); s.next_read_length(10); memset(read_buf, 0, sizeof(read_buf)); called = false; boost::asio::async_read_at(s, 0, buffers, boost::asio::transfer_at_least(1), boost::bind(async_read_handler, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred, 10, &called)); ios.reset(); ios.run(); BOOST_CHECK(called); BOOST_CHECK(s.check(0, buffers, 10)); s.reset(read_data, sizeof(read_data));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?