mirror of
https://github.com/boostorg/asio.git
synced 2026-02-22 01:32:08 +00:00
Support immediate completion with reactor-based sockets and descriptors.
This commit is contained in:
@@ -12,9 +12,14 @@
|
||||
#define ARCHETYPES_ASYNC_RESULT_HPP
|
||||
|
||||
#include <boost/asio/async_result.hpp>
|
||||
#include <boost/asio/system_executor.hpp>
|
||||
|
||||
namespace archetypes {
|
||||
|
||||
struct immediate_handler
|
||||
{
|
||||
};
|
||||
|
||||
struct lazy_handler
|
||||
{
|
||||
};
|
||||
@@ -25,7 +30,7 @@ struct concrete_handler;
|
||||
template <typename R, typename Arg1>
|
||||
struct concrete_handler<R(Arg1)>
|
||||
{
|
||||
concrete_handler(lazy_handler)
|
||||
concrete_handler()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -43,18 +48,48 @@ private:
|
||||
template <typename R, typename Arg1, typename Arg2>
|
||||
struct concrete_handler<R(Arg1, Arg2)>
|
||||
{
|
||||
concrete_handler(lazy_handler)
|
||||
concrete_handler()
|
||||
{
|
||||
}
|
||||
|
||||
void operator()(typename boost::asio::decay<Arg1>::type, typename boost::asio::decay<Arg2>::type)
|
||||
void operator()(typename boost::asio::decay<Arg1>::type,
|
||||
typename boost::asio::decay<Arg2>::type)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Signature>
|
||||
struct immediate_concrete_handler : concrete_handler<Signature>
|
||||
{
|
||||
typedef boost::asio::system_executor immediate_executor_type;
|
||||
|
||||
immediate_concrete_handler(immediate_handler)
|
||||
{
|
||||
}
|
||||
|
||||
immediate_executor_type get_immediate_executor() const BOOST_ASIO_NOEXCEPT
|
||||
{
|
||||
return immediate_executor_type();
|
||||
}
|
||||
|
||||
#if defined(BOOST_ASIO_HAS_MOVE)
|
||||
immediate_concrete_handler(immediate_concrete_handler&&) {}
|
||||
private:
|
||||
immediate_concrete_handler(const immediate_concrete_handler&);
|
||||
#endif // defined(BOOST_ASIO_HAS_MOVE)
|
||||
};
|
||||
|
||||
template <typename Signature>
|
||||
struct lazy_concrete_handler : concrete_handler<Signature>
|
||||
{
|
||||
lazy_concrete_handler(lazy_handler)
|
||||
{
|
||||
}
|
||||
|
||||
#if defined(BOOST_ASIO_HAS_MOVE)
|
||||
concrete_handler(concrete_handler&&) {}
|
||||
lazy_concrete_handler(lazy_concrete_handler&&) {}
|
||||
private:
|
||||
concrete_handler(const concrete_handler&);
|
||||
lazy_concrete_handler(const lazy_concrete_handler&);
|
||||
#endif // defined(BOOST_ASIO_HAS_MOVE)
|
||||
};
|
||||
|
||||
@@ -63,12 +98,39 @@ private:
|
||||
namespace boost {
|
||||
namespace asio {
|
||||
|
||||
template <typename Signature>
|
||||
class async_result<archetypes::immediate_handler, Signature>
|
||||
{
|
||||
public:
|
||||
// The concrete completion handler type.
|
||||
typedef archetypes::immediate_concrete_handler<Signature>
|
||||
completion_handler_type;
|
||||
|
||||
// The return type of the initiating function.
|
||||
typedef void return_type;
|
||||
|
||||
// Construct an async_result from a given handler.
|
||||
explicit async_result(completion_handler_type&)
|
||||
{
|
||||
}
|
||||
|
||||
// Obtain the value to be returned from the initiating function.
|
||||
void get()
|
||||
{
|
||||
}
|
||||
|
||||
private:
|
||||
// Disallow copying and assignment.
|
||||
async_result(const async_result&) BOOST_ASIO_DELETED;
|
||||
async_result& operator=(const async_result&) BOOST_ASIO_DELETED;
|
||||
};
|
||||
|
||||
template <typename Signature>
|
||||
class async_result<archetypes::lazy_handler, Signature>
|
||||
{
|
||||
public:
|
||||
// The concrete completion handler type.
|
||||
typedef archetypes::concrete_handler<Signature> completion_handler_type;
|
||||
typedef archetypes::lazy_concrete_handler<Signature> completion_handler_type;
|
||||
|
||||
// The return type of the initiating function.
|
||||
typedef int return_type;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <boost/asio/io_context.hpp>
|
||||
#include <boost/asio/ip/udp.hpp>
|
||||
#include "../unit_test.hpp"
|
||||
#include "../archetypes/async_result.hpp"
|
||||
|
||||
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
|
||||
# define generic cpp_generic
|
||||
@@ -65,6 +66,7 @@ void test()
|
||||
socket_base::message_flags in_flags = 0;
|
||||
socket_base::send_buffer_size socket_option;
|
||||
socket_base::bytes_readable io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
boost::system::error_code ec;
|
||||
|
||||
// basic_datagram_socket constructors.
|
||||
@@ -143,6 +145,7 @@ void test()
|
||||
socket1.connect(dp::endpoint(), ec);
|
||||
|
||||
socket1.async_connect(dp::endpoint(), connect_handler);
|
||||
socket1.async_connect(dp::endpoint(), immediate);
|
||||
|
||||
socket1.set_option(socket_option);
|
||||
socket1.set_option(socket_option, ec);
|
||||
@@ -184,6 +187,12 @@ void test()
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler);
|
||||
socket1.async_send(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), immediate);
|
||||
socket1.async_send(null_buffers(), immediate);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
|
||||
socket1.send_to(buffer(mutable_char_buffer),
|
||||
dp::endpoint());
|
||||
@@ -216,6 +225,18 @@ void test()
|
||||
dp::endpoint(), in_flags, send_handler);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
dp::endpoint(), in_flags, send_handler);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
dp::endpoint(), immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
dp::endpoint(), immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
dp::endpoint(), immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
dp::endpoint(), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
dp::endpoint(), in_flags, immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
dp::endpoint(), in_flags, immediate);
|
||||
|
||||
socket1.receive(buffer(mutable_char_buffer));
|
||||
socket1.receive(null_buffers());
|
||||
@@ -229,6 +250,10 @@ void test()
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
receive_handler);
|
||||
socket1.async_receive(null_buffers(), in_flags, receive_handler);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_receive(null_buffers(), immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, immediate);
|
||||
|
||||
dp::endpoint endpoint;
|
||||
socket1.receive_from(buffer(mutable_char_buffer), endpoint);
|
||||
@@ -246,6 +271,14 @@ void test()
|
||||
endpoint, in_flags, receive_handler);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, receive_handler);
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, in_flags, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, immediate);
|
||||
}
|
||||
catch (std::exception&)
|
||||
{
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <boost/asio/io_context.hpp>
|
||||
#include <boost/asio/ip/icmp.hpp>
|
||||
#include "../unit_test.hpp"
|
||||
#include "../archetypes/async_result.hpp"
|
||||
|
||||
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
|
||||
# define generic cpp_generic
|
||||
@@ -65,6 +66,7 @@ void test()
|
||||
socket_base::message_flags in_flags = 0;
|
||||
socket_base::send_buffer_size socket_option;
|
||||
socket_base::bytes_readable io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
boost::system::error_code ec;
|
||||
|
||||
// basic_raw_socket constructors.
|
||||
@@ -143,6 +145,7 @@ void test()
|
||||
socket1.connect(rp::endpoint(), ec);
|
||||
|
||||
socket1.async_connect(rp::endpoint(), connect_handler);
|
||||
socket1.async_connect(rp::endpoint(), immediate);
|
||||
|
||||
socket1.set_option(socket_option);
|
||||
socket1.set_option(socket_option, ec);
|
||||
@@ -184,6 +187,12 @@ void test()
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler);
|
||||
socket1.async_send(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), immediate);
|
||||
socket1.async_send(null_buffers(), immediate);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
|
||||
socket1.send_to(buffer(mutable_char_buffer),
|
||||
rp::endpoint());
|
||||
@@ -216,6 +225,18 @@ void test()
|
||||
rp::endpoint(), in_flags, send_handler);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
rp::endpoint(), in_flags, send_handler);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
rp::endpoint(), immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
rp::endpoint(), immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
rp::endpoint(), immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
rp::endpoint(), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
rp::endpoint(), in_flags, immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
rp::endpoint(), in_flags, immediate);
|
||||
|
||||
socket1.receive(buffer(mutable_char_buffer));
|
||||
socket1.receive(null_buffers());
|
||||
@@ -229,6 +250,11 @@ void test()
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
receive_handler);
|
||||
socket1.async_receive(null_buffers(), in_flags, receive_handler);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_receive(null_buffers(), immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, immediate);
|
||||
|
||||
rp::endpoint endpoint;
|
||||
socket1.receive_from(buffer(mutable_char_buffer), endpoint);
|
||||
@@ -246,6 +272,14 @@ void test()
|
||||
endpoint, in_flags, receive_handler);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, receive_handler);
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, in_flags, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, immediate);
|
||||
}
|
||||
catch (std::exception&)
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <cstring>
|
||||
#include <boost/asio/io_context.hpp>
|
||||
#include "../unit_test.hpp"
|
||||
#include "../archetypes/async_result.hpp"
|
||||
|
||||
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
|
||||
# define generic cpp_generic
|
||||
@@ -64,6 +65,7 @@ void test()
|
||||
socket_base::message_flags out_flags = 0;
|
||||
socket_base::send_buffer_size socket_option;
|
||||
socket_base::bytes_readable io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
boost::system::error_code ec;
|
||||
|
||||
// basic_seq_packet_socket constructors.
|
||||
@@ -139,6 +141,7 @@ void test()
|
||||
socket1.connect(spp::endpoint(), ec);
|
||||
|
||||
socket1.async_connect(spp::endpoint(), connect_handler);
|
||||
socket1.async_connect(spp::endpoint(), immediate);
|
||||
|
||||
socket1.set_option(socket_option);
|
||||
socket1.set_option(socket_option, ec);
|
||||
@@ -174,6 +177,9 @@ void test()
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
|
||||
socket1.receive(buffer(mutable_char_buffer), out_flags);
|
||||
socket1.receive(null_buffers(), out_flags);
|
||||
@@ -188,6 +194,11 @@ void test()
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
out_flags, receive_handler);
|
||||
socket1.async_receive(null_buffers(), in_flags, out_flags, receive_handler);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), out_flags, immediate);
|
||||
socket1.async_receive(null_buffers(), out_flags, immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
out_flags, immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, out_flags, immediate);
|
||||
}
|
||||
catch (std::exception&)
|
||||
{
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <boost/asio/io_context.hpp>
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include "../unit_test.hpp"
|
||||
#include "../archetypes/async_result.hpp"
|
||||
|
||||
#if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
|
||||
# define generic cpp_generic
|
||||
@@ -73,6 +74,7 @@ void test()
|
||||
socket_base::message_flags in_flags = 0;
|
||||
socket_base::keep_alive socket_option;
|
||||
socket_base::bytes_readable io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
boost::system::error_code ec;
|
||||
|
||||
// basic_stream_socket constructors.
|
||||
@@ -159,6 +161,7 @@ void test()
|
||||
socket1.connect(sp::endpoint(), ec);
|
||||
|
||||
socket1.async_connect(sp::endpoint(), connect_handler);
|
||||
socket1.async_connect(sp::endpoint(), immediate);
|
||||
|
||||
socket1.set_option(socket_option);
|
||||
socket1.set_option(socket_option, ec);
|
||||
@@ -200,6 +203,12 @@ void test()
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler);
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler);
|
||||
socket1.async_send(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), immediate);
|
||||
socket1.async_send(null_buffers(), immediate);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
|
||||
socket1.receive(buffer(mutable_char_buffer));
|
||||
socket1.receive(null_buffers());
|
||||
@@ -213,6 +222,11 @@ void test()
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
receive_handler);
|
||||
socket1.async_receive(null_buffers(), in_flags, receive_handler);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_receive(null_buffers(), immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, immediate);
|
||||
|
||||
socket1.write_some(buffer(mutable_char_buffer));
|
||||
socket1.write_some(buffer(const_char_buffer));
|
||||
@@ -224,6 +238,9 @@ void test()
|
||||
socket1.async_write_some(buffer(mutable_char_buffer), write_some_handler);
|
||||
socket1.async_write_some(buffer(const_char_buffer), write_some_handler);
|
||||
socket1.async_write_some(null_buffers(), write_some_handler);
|
||||
socket1.async_write_some(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_write_some(buffer(const_char_buffer), immediate);
|
||||
socket1.async_write_some(null_buffers(), immediate);
|
||||
|
||||
socket1.read_some(buffer(mutable_char_buffer));
|
||||
socket1.read_some(buffer(mutable_char_buffer), ec);
|
||||
@@ -231,6 +248,8 @@ void test()
|
||||
|
||||
socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
|
||||
socket1.async_read_some(null_buffers(), read_some_handler);
|
||||
socket1.async_read_some(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_read_some(null_buffers(), immediate);
|
||||
}
|
||||
catch (std::exception&)
|
||||
{
|
||||
|
||||
@@ -86,6 +86,7 @@ void test()
|
||||
archetypes::gettable_socket_option<int> gettable_socket_option2;
|
||||
archetypes::gettable_socket_option<double> gettable_socket_option3;
|
||||
archetypes::io_control_command io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
archetypes::lazy_handler lazy;
|
||||
boost::system::error_code ec;
|
||||
|
||||
@@ -193,6 +194,8 @@ void test()
|
||||
connect_handler());
|
||||
socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0),
|
||||
connect_handler());
|
||||
socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
|
||||
socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
|
||||
int i1 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
|
||||
(void)i1;
|
||||
int i2 = socket1.async_connect(ip::icmp::endpoint(ip::icmp::v6(), 0), lazy);
|
||||
@@ -256,6 +259,12 @@ void test()
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler());
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler());
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler());
|
||||
socket1.async_send(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), immediate);
|
||||
socket1.async_send(null_buffers(), immediate);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
int i3 = socket1.async_send(buffer(mutable_char_buffer), lazy);
|
||||
(void)i3;
|
||||
int i4 = socket1.async_send(buffer(const_char_buffer), lazy);
|
||||
@@ -330,6 +339,30 @@ void test()
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, send_handler());
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, send_handler());
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::icmp::endpoint(ip::icmp::v6(), 0), in_flags, immediate);
|
||||
int i9 = socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::icmp::endpoint(ip::icmp::v4(), 0), lazy);
|
||||
(void)i9;
|
||||
@@ -379,6 +412,10 @@ void test()
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
receive_handler());
|
||||
socket1.async_receive(null_buffers(), in_flags, receive_handler());
|
||||
socket1.async_receive(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_receive(null_buffers(), immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, immediate);
|
||||
int i21 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
|
||||
(void)i21;
|
||||
int i22 = socket1.async_receive(null_buffers(), lazy);
|
||||
@@ -405,6 +442,14 @@ void test()
|
||||
endpoint, in_flags, receive_handler());
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, receive_handler());
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, in_flags, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, immediate);
|
||||
int i25 = socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, lazy);
|
||||
(void)i25;
|
||||
|
||||
@@ -239,6 +239,7 @@ void test()
|
||||
archetypes::gettable_socket_option<int> gettable_socket_option2;
|
||||
archetypes::gettable_socket_option<double> gettable_socket_option3;
|
||||
archetypes::io_control_command io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
archetypes::lazy_handler lazy;
|
||||
boost::system::error_code ec;
|
||||
|
||||
@@ -346,6 +347,8 @@ void test()
|
||||
connect_handler());
|
||||
socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0),
|
||||
connect_handler());
|
||||
socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), immediate);
|
||||
socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), immediate);
|
||||
int i1 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v4(), 0), lazy);
|
||||
(void)i1;
|
||||
int i2 = socket1.async_connect(ip::tcp::endpoint(ip::tcp::v6(), 0), lazy);
|
||||
@@ -395,6 +398,7 @@ void test()
|
||||
socket1.wait(socket_base::wait_write, ec);
|
||||
|
||||
socket1.async_wait(socket_base::wait_read, wait_handler());
|
||||
socket1.async_wait(socket_base::wait_read, immediate);
|
||||
int i3 = socket1.async_wait(socket_base::wait_write, lazy);
|
||||
(void)i3;
|
||||
|
||||
@@ -426,6 +430,16 @@ void test()
|
||||
socket1.async_send(mutable_buffers, in_flags, send_handler());
|
||||
socket1.async_send(const_buffers, in_flags, send_handler());
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler());
|
||||
socket1.async_send(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), immediate);
|
||||
socket1.async_send(mutable_buffers, immediate);
|
||||
socket1.async_send(const_buffers, immediate);
|
||||
socket1.async_send(null_buffers(), immediate);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(mutable_buffers, in_flags, immediate);
|
||||
socket1.async_send(const_buffers, in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy);
|
||||
(void)i4;
|
||||
int i5 = socket1.async_send(buffer(const_char_buffer), lazy);
|
||||
@@ -464,6 +478,12 @@ void test()
|
||||
receive_handler());
|
||||
socket1.async_receive(mutable_buffers, in_flags, receive_handler());
|
||||
socket1.async_receive(null_buffers(), in_flags, receive_handler());
|
||||
socket1.async_receive(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_receive(mutable_buffers, immediate);
|
||||
socket1.async_receive(null_buffers(), immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_receive(mutable_buffers, in_flags, immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, immediate);
|
||||
int i14 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
|
||||
(void)i14;
|
||||
int i15 = socket1.async_receive(mutable_buffers, lazy);
|
||||
@@ -494,6 +514,11 @@ void test()
|
||||
socket1.async_write_some(mutable_buffers, write_some_handler());
|
||||
socket1.async_write_some(const_buffers, write_some_handler());
|
||||
socket1.async_write_some(null_buffers(), write_some_handler());
|
||||
socket1.async_write_some(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_write_some(buffer(const_char_buffer), immediate);
|
||||
socket1.async_write_some(mutable_buffers, immediate);
|
||||
socket1.async_write_some(const_buffers, immediate);
|
||||
socket1.async_write_some(null_buffers(), immediate);
|
||||
int i20 = socket1.async_write_some(buffer(mutable_char_buffer), lazy);
|
||||
(void)i20;
|
||||
int i21 = socket1.async_write_some(buffer(const_char_buffer), lazy);
|
||||
@@ -515,6 +540,9 @@ void test()
|
||||
socket1.async_read_some(buffer(mutable_char_buffer), read_some_handler());
|
||||
socket1.async_read_some(mutable_buffers, read_some_handler());
|
||||
socket1.async_read_some(null_buffers(), read_some_handler());
|
||||
socket1.async_read_some(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_read_some(mutable_buffers, immediate);
|
||||
socket1.async_read_some(null_buffers(), immediate);
|
||||
int i25 = socket1.async_read_some(buffer(mutable_char_buffer), lazy);
|
||||
(void)i25;
|
||||
int i26 = socket1.async_read_some(mutable_buffers, lazy);
|
||||
@@ -767,6 +795,7 @@ void test()
|
||||
archetypes::gettable_socket_option<int> gettable_socket_option2;
|
||||
archetypes::gettable_socket_option<double> gettable_socket_option3;
|
||||
archetypes::io_control_command io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
archetypes::lazy_handler lazy;
|
||||
boost::system::error_code ec;
|
||||
|
||||
@@ -883,6 +912,7 @@ void test()
|
||||
acceptor1.wait(socket_base::wait_write, ec);
|
||||
|
||||
acceptor1.async_wait(socket_base::wait_read, wait_handler());
|
||||
acceptor1.async_wait(socket_base::wait_read, immediate);
|
||||
int i1 = acceptor1.async_wait(socket_base::wait_write, lazy);
|
||||
(void)i1;
|
||||
|
||||
@@ -914,6 +944,8 @@ void test()
|
||||
|
||||
acceptor1.async_accept(peer_socket1, accept_handler());
|
||||
acceptor1.async_accept(peer_socket1, peer_endpoint, accept_handler());
|
||||
acceptor1.async_accept(peer_socket1, immediate);
|
||||
acceptor1.async_accept(peer_socket1, peer_endpoint, immediate);
|
||||
int i2 = acceptor1.async_accept(peer_socket1, lazy);
|
||||
(void)i2;
|
||||
int i3 = acceptor1.async_accept(peer_socket1, peer_endpoint, lazy);
|
||||
@@ -921,6 +953,8 @@ void test()
|
||||
|
||||
acceptor1.async_accept(peer_socket2, accept_handler());
|
||||
acceptor1.async_accept(peer_socket2, peer_endpoint, accept_handler());
|
||||
acceptor1.async_accept(peer_socket2, immediate);
|
||||
acceptor1.async_accept(peer_socket2, peer_endpoint, immediate);
|
||||
int i4 = acceptor1.async_accept(peer_socket2, lazy);
|
||||
(void)i4;
|
||||
int i5 = acceptor1.async_accept(peer_socket2, peer_endpoint, lazy);
|
||||
@@ -935,6 +969,12 @@ void test()
|
||||
acceptor1.async_accept(ioc, peer_endpoint, move_accept_handler());
|
||||
acceptor1.async_accept(ioc_ex, peer_endpoint, move_accept_handler());
|
||||
acceptor1.async_accept(ioc_ex, peer_endpoint, move_accept_ioc_handler());
|
||||
acceptor1.async_accept(immediate);
|
||||
acceptor1.async_accept(ioc, immediate);
|
||||
acceptor1.async_accept(ioc_ex, immediate);
|
||||
acceptor1.async_accept(peer_endpoint, immediate);
|
||||
acceptor1.async_accept(ioc, peer_endpoint, immediate);
|
||||
acceptor1.async_accept(ioc_ex, peer_endpoint, immediate);
|
||||
#endif // defined(BOOST_ASIO_HAS_MOVE)
|
||||
}
|
||||
catch (std::exception&)
|
||||
|
||||
@@ -102,6 +102,7 @@ void test()
|
||||
archetypes::gettable_socket_option<int> gettable_socket_option2;
|
||||
archetypes::gettable_socket_option<double> gettable_socket_option3;
|
||||
archetypes::io_control_command io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
archetypes::lazy_handler lazy;
|
||||
boost::system::error_code ec;
|
||||
|
||||
@@ -209,6 +210,8 @@ void test()
|
||||
connect_handler());
|
||||
socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0),
|
||||
connect_handler());
|
||||
socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), immediate);
|
||||
socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), immediate);
|
||||
int i1 = socket1.async_connect(ip::udp::endpoint(ip::udp::v4(), 0), lazy);
|
||||
(void)i1;
|
||||
int i2 = socket1.async_connect(ip::udp::endpoint(ip::udp::v6(), 0), lazy);
|
||||
@@ -258,6 +261,7 @@ void test()
|
||||
socket1.wait(socket_base::wait_write, ec);
|
||||
|
||||
socket1.async_wait(socket_base::wait_read, wait_handler());
|
||||
socket1.async_wait(socket_base::wait_read, immediate);
|
||||
int i3 = socket1.async_wait(socket_base::wait_write, lazy);
|
||||
(void)i3;
|
||||
|
||||
@@ -279,6 +283,12 @@ void test()
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, send_handler());
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, send_handler());
|
||||
socket1.async_send(null_buffers(), in_flags, send_handler());
|
||||
socket1.async_send(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), immediate);
|
||||
socket1.async_send(null_buffers(), immediate);
|
||||
socket1.async_send(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(buffer(const_char_buffer), in_flags, immediate);
|
||||
socket1.async_send(null_buffers(), in_flags, immediate);
|
||||
int i4 = socket1.async_send(buffer(mutable_char_buffer), lazy);
|
||||
(void)i4;
|
||||
int i5 = socket1.async_send(buffer(const_char_buffer), lazy);
|
||||
@@ -353,6 +363,30 @@ void test()
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), in_flags, send_handler());
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), in_flags, send_handler());
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(buffer(const_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), in_flags, immediate);
|
||||
socket1.async_send_to(null_buffers(),
|
||||
ip::udp::endpoint(ip::udp::v6(), 0), in_flags, immediate);
|
||||
int i10 = socket1.async_send_to(buffer(mutable_char_buffer),
|
||||
ip::udp::endpoint(ip::udp::v4(), 0), lazy);
|
||||
(void)i10;
|
||||
@@ -402,6 +436,10 @@ void test()
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags,
|
||||
receive_handler());
|
||||
socket1.async_receive(null_buffers(), in_flags, receive_handler());
|
||||
socket1.async_receive(buffer(mutable_char_buffer), immediate);
|
||||
socket1.async_receive(null_buffers(), immediate);
|
||||
socket1.async_receive(buffer(mutable_char_buffer), in_flags, immediate);
|
||||
socket1.async_receive(null_buffers(), in_flags, immediate);
|
||||
int i22 = socket1.async_receive(buffer(mutable_char_buffer), lazy);
|
||||
(void)i22;
|
||||
int i23 = socket1.async_receive(null_buffers(), lazy);
|
||||
@@ -428,6 +466,14 @@ void test()
|
||||
endpoint, in_flags, receive_handler());
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, receive_handler());
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, immediate);
|
||||
socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, in_flags, immediate);
|
||||
socket1.async_receive_from(null_buffers(),
|
||||
endpoint, in_flags, immediate);
|
||||
int i26 = socket1.async_receive_from(buffer(mutable_char_buffer),
|
||||
endpoint, lazy);
|
||||
(void)i26;
|
||||
|
||||
@@ -55,6 +55,7 @@ void test()
|
||||
char mutable_char_buffer[128] = "";
|
||||
const char const_char_buffer[128] = "";
|
||||
posix::descriptor_base::bytes_readable io_control_command;
|
||||
archetypes::immediate_handler immediate;
|
||||
archetypes::lazy_handler lazy;
|
||||
boost::system::error_code ec;
|
||||
|
||||
@@ -134,6 +135,7 @@ void test()
|
||||
descriptor1.wait(posix::descriptor_base::wait_write, ec);
|
||||
|
||||
descriptor1.async_wait(posix::descriptor_base::wait_read, &wait_handler);
|
||||
descriptor1.async_wait(posix::descriptor_base::wait_read, immediate);
|
||||
int i1 = descriptor1.async_wait(posix::descriptor_base::wait_write, lazy);
|
||||
(void)i1;
|
||||
|
||||
@@ -152,6 +154,9 @@ void test()
|
||||
write_some_handler);
|
||||
descriptor1.async_write_some(null_buffers(),
|
||||
write_some_handler);
|
||||
descriptor1.async_write_some(buffer(mutable_char_buffer), immediate);
|
||||
descriptor1.async_write_some(buffer(const_char_buffer), immediate);
|
||||
descriptor1.async_write_some(null_buffers(), immediate);
|
||||
int i2 = descriptor1.async_write_some(buffer(mutable_char_buffer), lazy);
|
||||
(void)i2;
|
||||
int i3 = descriptor1.async_write_some(buffer(const_char_buffer), lazy);
|
||||
@@ -165,6 +170,8 @@ void test()
|
||||
|
||||
descriptor1.async_read_some(buffer(mutable_char_buffer), read_some_handler);
|
||||
descriptor1.async_read_some(null_buffers(), read_some_handler);
|
||||
descriptor1.async_read_some(buffer(mutable_char_buffer), immediate);
|
||||
descriptor1.async_read_some(null_buffers(), immediate);
|
||||
int i5 = descriptor1.async_read_some(buffer(mutable_char_buffer), lazy);
|
||||
(void)i5;
|
||||
int i6 = descriptor1.async_read_some(null_buffers(), lazy);
|
||||
|
||||
Reference in New Issue
Block a user