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

Function test_4_arg_streambuf_async_read

test/read.cpp:4670–5046  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4668}
4669
4670void test_4_arg_streambuf_async_read()
4671{
4672#if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
4673 namespace bindns = std;
4674 using bindns::placeholders::_1;
4675 using bindns::placeholders::_2;
4676
4677 boost::asio::io_context ioc;
4678 test_stream s(ioc);
4679 boost::asio::streambuf sb(sizeof(read_data));
4680
4681 s.reset(read_data, sizeof(read_data));
4682 sb.consume(sb.size());
4683 bool called = false;
4684 boost::asio::async_read(s, sb, boost::asio::transfer_all(),
4685 bindns::bind(async_read_handler,
4686 _1, _2, sizeof(read_data), &called));
4687 ioc.restart();
4688 ioc.run();
4689 BOOST_ASIO_CHECK(called);
4690 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
4691 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
4692
4693 s.reset(read_data, sizeof(read_data));
4694 s.next_read_length(1);
4695 sb.consume(sb.size());
4696 called = false;
4697 boost::asio::async_read(s, sb, boost::asio::transfer_all(),
4698 bindns::bind(async_read_handler,
4699 _1, _2, sizeof(read_data), &called));
4700 ioc.restart();
4701 ioc.run();
4702 BOOST_ASIO_CHECK(called);
4703 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
4704 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
4705
4706 s.reset(read_data, sizeof(read_data));
4707 s.next_read_length(10);
4708 sb.consume(sb.size());
4709 called = false;
4710 boost::asio::async_read(s, sb, boost::asio::transfer_all(),
4711 bindns::bind(async_read_handler,
4712 _1, _2, sizeof(read_data), &called));
4713 ioc.restart();
4714 ioc.run();
4715 BOOST_ASIO_CHECK(called);
4716 BOOST_ASIO_CHECK(sb.size() == sizeof(read_data));
4717 BOOST_ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
4718
4719 s.reset(read_data, sizeof(read_data));
4720 sb.consume(sb.size());
4721 called = false;
4722 boost::asio::async_read(s, sb, boost::asio::transfer_at_least(1),
4723 bindns::bind(async_read_handler,
4724 _1, _2, sizeof(read_data), &called));
4725 ioc.restart();
4726 ioc.run();
4727 BOOST_ASIO_CHECK(called);

Callers

nothing calls this directly

Calls 15

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
consumeMethod · 0.45
sizeMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected