xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
io_control_code.h
Go to the documentation of this file.
1 #pragma once
5 
6 #include "../../ustring.h"
7 
9 #undef unix
11 
13 namespace xtd {
15  namespace net {
17  namespace sockets {
24  enum class io_control_code : uint64_t {
26  enable_circular_queuing = 671088642UL,
28  flush = 671088644UL,
30  address_list_change = 671088663UL,
32  data_to_read = 1074030207UL,
34  oob_data_read = 1074033415UL,
36  get_broadcast_address = 1207959557UL,
38  address_list_query = 1207959574UL,
40  query_target_pnp_handle = 1207959576UL,
42  async_io = 2147772029UL,
44  non_blocking_io = 2147772030UL,
46  associate_handle = 2281701377UL,
48  multipoint_loopback = 2281701385UL,
50  multicast_scope = 2281701386UL,
52  set_qos = 2281701387UL,
54  set_group_qos = 2281701388UL,
56  routing_interface_change = 2281701397UL,
58  namespace_change = 2281701401UL,
60  receive_all = 2550136833UL,
62  receive_all_multicast = 2550136834UL,
64  receive_all_igmp_multicast = 2550136835UL,
66  keep_alive_values = 2550136836UL,
68  absorb_router_alert = 2550136837UL,
70  unicast_interface = 2550136838UL,
72  limit_broadcasts = 2550136839UL,
74  bind_to_interface = 2550136840UL,
76  multicast_interface = 2550136841UL,
78  add_multicast_group_on_interface = 2550136842UL,
82  get_extension_function_pointer = 3355443206UL,
84  get_qos = 3355443207UL,
86  get_group_qos = 3355443208UL,
88  translate_handle = 3355443213UL,
90  routing_interface_query = 3355443220UL,
92  address_list_sort = 3355443225UL
93  };
94 
96  inline std::ostream& operator<<(std::ostream& os, io_control_code value) {return os << to_string(value, {{io_control_code::enable_circular_queuing, "enable_circular_queuing"}, {io_control_code::flush, "flush"}, {io_control_code::address_list_change, "address_list_change"}, {io_control_code::data_to_read, "data_to_read"}, {io_control_code::oob_data_read, "oob_data_read"}, {io_control_code::get_broadcast_address, "get_broadcast_address"}, {io_control_code::address_list_query, "address_list_query"}, {io_control_code::query_target_pnp_handle, "query_target_pnp_handle"}, {io_control_code::async_io, "async_io"}, {io_control_code::non_blocking_io, "non_blocking_io"}, {io_control_code::associate_handle, "associate_handle"}, {io_control_code::multipoint_loopback, "multipoint_loopback"}, {io_control_code::multicast_scope, "multicast_scope"}, {io_control_code::set_qos, "set_qos"}, {io_control_code::set_group_qos, "set_group_qos"}, {io_control_code::routing_interface_change, "routing_interface_change"}, {io_control_code::namespace_change, "namespace_change"}, {io_control_code::receive_all, "receive_all"}, {io_control_code::receive_all_multicast, "receive_all_multicast"}, {io_control_code::receive_all_igmp_multicast, "receive_all_igmp_multicast"}, {io_control_code::keep_alive_values, "keep_alive_values"}, {io_control_code::absorb_router_alert, "absorb_router_alert"}, {io_control_code::unicast_interface, "unicast_interface"}, {io_control_code::limit_broadcasts, "limit_broadcasts"}, {io_control_code::bind_to_interface, "bind_to_interface"}, {io_control_code::multicast_interface, "multicast_interface"}, {io_control_code::add_multicast_group_on_interface, "add_multicast_group_on_interface"}, {io_control_code::delete_multicast_group_from_interface, "delete_multicast_group_from_interface"}, {io_control_code::get_extension_function_pointer, "get_extension_function_pointer"}, {io_control_code::get_qos, "get_qos"}, {io_control_code::get_group_qos, "get_group_qos"}, {io_control_code::translate_handle, "translate_handle"}, {io_control_code::routing_interface_query, "routing_interface_query"}, {io_control_code::address_list_sort, "address_list_sort"}});}
97  inline std::wostream& operator<<(std::wostream& os, io_control_code value) {return os << to_string(value, {{io_control_code::enable_circular_queuing, L"enable_circular_queuing"}, {io_control_code::flush, L"flush"}, {io_control_code::address_list_change, L"address_list_change"}, {io_control_code::data_to_read, L"data_to_read"}, {io_control_code::oob_data_read, L"oob_data_read"}, {io_control_code::get_broadcast_address, L"get_broadcast_address"}, {io_control_code::address_list_query, L"address_list_query"}, {io_control_code::query_target_pnp_handle, L"query_target_pnp_handle"}, {io_control_code::async_io, L"async_io"}, {io_control_code::non_blocking_io, L"non_blocking_io"}, {io_control_code::associate_handle, L"associate_handle"}, {io_control_code::multipoint_loopback, L"multipoint_loopback"}, {io_control_code::multicast_scope, L"multicast_scope"}, {io_control_code::set_qos, L"set_qos"}, {io_control_code::set_group_qos, L"set_group_qos"}, {io_control_code::routing_interface_change, L"routing_interface_change"}, {io_control_code::namespace_change, L"namespace_change"}, {io_control_code::receive_all, L"receive_all"}, {io_control_code::receive_all_multicast, L"receive_all_multicast"}, {io_control_code::receive_all_igmp_multicast, L"receive_all_igmp_multicast"}, {io_control_code::keep_alive_values, L"keep_alive_values"}, {io_control_code::absorb_router_alert, L"absorb_router_alert"}, {io_control_code::unicast_interface, L"unicast_interface"}, {io_control_code::limit_broadcasts, L"limit_broadcasts"}, {io_control_code::bind_to_interface, L"bind_to_interface"}, {io_control_code::multicast_interface, L"multicast_interface"}, {io_control_code::add_multicast_group_on_interface, L"add_multicast_group_on_interface"}, {io_control_code::delete_multicast_group_from_interface, L"delete_multicast_group_from_interface"}, {io_control_code::get_extension_function_pointer, L"get_extension_function_pointer"}, {io_control_code::get_qos, L"get_qos"}, {io_control_code::get_group_qos, L"get_group_qos"}, {io_control_code::translate_handle, L"translate_handle"}, {io_control_code::routing_interface_query, L"routing_interface_query"}, {io_control_code::address_list_sort, L"address_list_sort"}});}
99  }
100  }
101 }
io_control_code
Specifies the IO control codes supported by the xtd::net::sockets::socket::io_control method.
Definition: io_control_code.h:24
std::string to_string(const value_t &value, const std::string &fmt, const std::locale &loc)
Convert a specified value into a string with specified format and locale.
Definition: to_string.h:37
@ multicast_interface
Set the interface used for outgoing multicast packets. The interface is identified by its index....
@ multipoint_loopback
Control whether multicast data sent by the socket appears as incoming data in the sockets receive que...
@ receive_all
Enable receiving all IPv4 packets on the network. The socket must have address family System::Net::So...
@ async_io
Enable notification for when data is waiting to be received. This value is equal to the Winsock†2 FIO...
@ keep_alive_values
Control sending TCP keep-alive packets and the interval at which they are sent. This control code is ...
@ unicast_interface
Set the interface used for outgoing unicast packets. This value is equal to the Winsock†2 SIO_UCAST_I...
@ get_extension_function_pointer
Obtain provider-specific functions that are not part of the Winsock specification....
@ associate_handle
Associate this socket with the specified handle of a companion interface. Refer to the appropriate pr...
@ translate_handle
Return a handle for the socket that is valid in the context of a companion interface....
@ get_qos
Retrieve the QOS structure associated with the socket. This control is only supported on platforms th...
@ address_list_sort
Sort the structure returned by the System::Net::Sockets::IOControlCode.AddressListQuery field and add...
@ routing_interface_query
Return the interface addresses that can be used to connect to the specified remote address....
@ address_list_query
Return the list of local interfaces that the socket can bind to. This control code is supported on Wi...
@ data_to_read
Return the number of bytes available for reading. This value is equal to the Winsock†2 FIONREAD const...
@ receive_all_igmp_multicast
Enable receiving all Internet Group Management Protocol (IGMP) packets on the network....
@ absorb_router_alert
This value is equal to the Winsock†2 SIO_ABSORB_RTRALERT constant.
@ non_blocking_io
Control the blocking behavior of the socket. If the argument specified with this control code is zero...
@ flush
Discard the contents of the sending queue. This value is equal to the Winsock†2 SIO_FLUSH constant.
@ bind_to_interface
Bind the socket to a specified interface index. This control code is supported on Windows 2000 and la...
@ multicast_scope
Control the number of times a multicast packet can be forwarded by a router, also known as the Time t...
@ get_group_qos
Return the Quality of Service (QOS) attributes for the socket group. This value is reserved for futur...
@ receive_all_multicast
Enable receiving all multicast IPv4 packets on the network. These are packets with destination addres...
@ limit_broadcasts
This value is equal to the Winsock†2 SIO_LIMIT_BROADCASTS constant.
@ enable_circular_queuing
Replace the oldest queued datagram with an incoming datagram when the incoming message queues are ful...
@ oob_data_read
Return information about out-of-band data waiting to be received. When using this control code on str...
@ set_qos
Set the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements fo...
@ routing_interface_change
Enable receiving notification when the local interface used to access a remote endpoint changes....
@ query_target_pnp_handle
Retrieve the underlying provider's SOCKET handle. This handle can be used to receive plug-and-play ev...
@ address_list_change
Enable receiving notification when the list of local interfaces for the socket's protocol family chan...
@ set_group_qos
Set the Quality of Service (QOS) attributes for the socket group. This value is reserved for future u...
@ namespace_change
Control whether the socket receives notification when a namespace query becomes invalid....
@ get_broadcast_address
Return a SOCKADDR structure that contains the broadcast address for the address family of the current...
@ delete_multicast_group_from_interface
Remove the socket from a multicast group. This control code is supported on Windows 2000 and later op...
@ add_multicast_group_on_interface
Join a multicast group using an interface identified by its index. This control code is supported on ...
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17