MCPcopy Create free account
hub / github.com/boostorg/asio / test_4_arg_vector_buffers_async_read

Function test_4_arg_vector_buffers_async_read

test/read.cpp:3940–4289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3938}
3939
3940void test_4_arg_vector_buffers_async_read()
3941{
3942 namespace bindns = std;
3943 using bindns::placeholders::_1;
3944 using bindns::placeholders::_2;
3945
3946 boost::asio::io_context ioc;
3947 test_stream s(ioc);
3948 char read_buf[sizeof(read_data)];
3949 std::vector<boost::asio::mutable_buffer> buffers;
3950 buffers.push_back(boost::asio::buffer(read_buf, 32));
3951 buffers.push_back(boost::asio::buffer(read_buf, 39) + 32);
3952 buffers.push_back(boost::asio::buffer(read_buf) + 39);
3953
3954 s.reset(read_data, sizeof(read_data));
3955 memset(read_buf, 0, sizeof(read_buf));
3956 bool called = false;
3957 boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
3958 bindns::bind(async_read_handler,
3959 _1, _2, sizeof(read_data), &called));
3960 ioc.restart();
3961 ioc.run();
3962 BOOST_ASIO_CHECK(called);
3963 BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
3964
3965 s.reset(read_data, sizeof(read_data));
3966 s.next_read_length(1);
3967 memset(read_buf, 0, sizeof(read_buf));
3968 called = false;
3969 boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
3970 bindns::bind(async_read_handler,
3971 _1, _2, sizeof(read_data), &called));
3972 ioc.restart();
3973 ioc.run();
3974 BOOST_ASIO_CHECK(called);
3975 BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
3976
3977 s.reset(read_data, sizeof(read_data));
3978 s.next_read_length(10);
3979 memset(read_buf, 0, sizeof(read_buf));
3980 called = false;
3981 boost::asio::async_read(s, buffers, boost::asio::transfer_all(),
3982 bindns::bind(async_read_handler,
3983 _1, _2, sizeof(read_data), &called));
3984 ioc.restart();
3985 ioc.run();
3986 BOOST_ASIO_CHECK(called);
3987 BOOST_ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
3988
3989 s.reset(read_data, sizeof(read_data));
3990 memset(read_buf, 0, sizeof(read_buf));
3991 called = false;
3992 boost::asio::async_read(s, buffers, boost::asio::transfer_at_least(1),
3993 bindns::bind(async_read_handler,
3994 _1, _2, sizeof(read_data), &called));
3995 ioc.restart();
3996 ioc.run();
3997 BOOST_ASIO_CHECK(called);

Callers

nothing calls this directly

Calls 13

bufferFunction · 0.85
async_readFunction · 0.85
transfer_at_leastFunction · 0.85
transfer_exactlyFunction · 0.85
lazy_handlerClass · 0.85
restartMethod · 0.80
short_transferClass · 0.70
transfer_allClass · 0.50
bindFunction · 0.50
resetMethod · 0.45
runMethod · 0.45
check_buffersMethod · 0.45

Tested by

no test coverage detected