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

Function test

test/windows/overlapped_ptr.cpp:45–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43};
44
45void test()
46{
47#if defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR)
48 using namespace boost::asio;
49 namespace win = boost::asio::windows;
50
51 try
52 {
53 io_context ioc;
54 boost::asio::any_io_executor ex1(ioc.get_executor());
55#if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
56 boost::asio::executor ex2(ioc.get_executor());
57#endif // !defined(BOOST_ASIO_NO_TS_EXECUTORS)
58
59 // basic_overlapped_ptr constructors.
60
61 win::overlapped_ptr ptr1;
62
63 win::overlapped_ptr ptr2(ioc, &overlapped_handler_1);
64 win::overlapped_ptr ptr3(ioc, overlapped_handler_2());
65
66 win::overlapped_ptr ptr4(ioc.get_executor(), &overlapped_handler_1);
67 win::overlapped_ptr ptr5(ioc.get_executor(), overlapped_handler_2());
68 win::overlapped_ptr ptr6(ex1, &overlapped_handler_1);
69 win::overlapped_ptr ptr7(ex1, overlapped_handler_2());
70#if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
71 win::overlapped_ptr ptr8(ex2, &overlapped_handler_1);
72 win::overlapped_ptr ptr9(ex2, overlapped_handler_2());
73#endif // !defined(BOOST_ASIO_NO_TS_EXECUTORS)
74
75 // overlapped_ptr functions.
76
77 ptr1.reset();
78
79 ptr2.reset(ioc, &overlapped_handler_1);
80 ptr3.reset(ioc, overlapped_handler_2());
81
82 ptr2.reset(ioc.get_executor(), &overlapped_handler_1);
83 ptr3.reset(ioc.get_executor(), overlapped_handler_2());
84 ptr2.reset(ex1, &overlapped_handler_1);
85 ptr3.reset(ex1, overlapped_handler_2());
86#if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
87 ptr3.reset(ex2, &overlapped_handler_1);
88 ptr3.reset(ex2, overlapped_handler_2());
89#endif // !defined(BOOST_ASIO_NO_TS_EXECUTORS)
90
91 OVERLAPPED* ov1 = ptr1.get();
92 (void)ov1;
93
94 const win::overlapped_ptr& ptr10(ptr1);
95 const OVERLAPPED* ov2 = ptr10.get();
96 (void)ov2;
97
98 OVERLAPPED* ov3 = ptr1.release();
99 (void)ov3;
100
101 boost::system::error_code ec;
102 std::size_t bytes_transferred = 0;

Callers

nothing calls this directly

Calls 6

get_executorMethod · 0.45
resetMethod · 0.45
getMethod · 0.45
releaseMethod · 0.45
completeMethod · 0.45

Tested by

no test coverage detected