xtd - Reference Guide  0.2.0
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
10 
13 namespace xtd {
15  namespace net {
17  namespace sockets {
27  enum class io_control_code : uint64_t {
29  enable_circular_queuing = 671088642UL,
31  flush = 671088644UL,
33  address_list_change = 671088663UL,
35  data_to_read = 1074030207UL,
37  oob_data_read = 1074033415UL,
39  get_broadcast_address = 1207959557UL,
41  address_list_query = 1207959574UL,
43  query_target_pnp_handle = 1207959576UL,
45  async_io = 2147772029UL,
47  non_blocking_io = 2147772030UL,
49  associate_handle = 2281701377UL,
51  multipoint_loopback = 2281701385UL,
53  multicast_scope = 2281701386UL,
55  set_qos = 2281701387UL,
57  set_group_qos = 2281701388UL,
59  routing_interface_change = 2281701397UL,
61  namespace_change = 2281701401UL,
63  receive_all = 2550136833UL,
65  receive_all_multicast = 2550136834UL,
67  receive_all_igmp_multicast = 2550136835UL,
69  keep_alive_values = 2550136836UL,
71  absorb_router_alert = 2550136837UL,
73  unicast_interface = 2550136838UL,
75  limit_broadcasts = 2550136839UL,
77  bind_to_interface = 2550136840UL,
79  multicast_interface = 2550136841UL,
81  add_multicast_group_on_interface = 2550136842UL,
85  get_extension_function_pointer = 3355443206UL,
87  get_qos = 3355443207UL,
89  get_group_qos = 3355443208UL,
91  translate_handle = 3355443213UL,
93  routing_interface_query = 3355443220UL,
95  address_list_sort = 3355443225UL
96  };
97 
99  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"}});}
100  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"}});}
102  }
103  }
104 }
Set the Quality of Service (QOS) attributes for the socket group. This value is reserved for future u...
Control whether the socket receives notification when a namespace query becomes invalid. This control code is supported on Windows XP and later operating systems. This value is equal to the Winsock†2 SIO_NSP_NOTIFY_CHANGE constant.
Return a handle for the socket that is valid in the context of a companion interface. This value is equal to the Winsock†2 SIO_TRANSLATE_HANDLE constant.
Return the number of bytes available for reading. This value is equal to the Winsock†2 FIONREAD cons...
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Bind the socket to a specified interface index. This control code is supported on Windows 2000 and la...
Sort the structure returned by the xtd::net::sockets::io_control_code::address_list_query field and a...
Control the number of times a multicast packet can be forwarded by a router, also known as the Time t...
This value is equal to the Winsock†2 SIO_ABSORB_RTRALERT constant.
Associate this socket with the specified handle of a companion interface. Refer to the appropriate pr...
Retrieve the underlying provider&#39;s SOCKET handle. This handle can be used to receive plug-and-play ev...
Control the blocking behavior of the socket. If the argument specified with this control code is zero...
std::string to_string(const date_time &value, const std::string &fmt, const std::locale &loc)
Convert a specified value into a string with specified format and locale.
Definition: date_time.h:1110
Remove the socket from a multicast group. This control code is supported on Windows 2000 and later op...
Control sending TCP keep-alive packets and the interval at which they are sent. This control code is ...
This value is equal to the Winsock†2 SIO_LIMIT_BROADCASTS constant.
Discard the contents of the sending queue. This value is equal to the Winsock†2 SIO_FLUSH constant...
Enable receiving all multicast IPv4 packets on the network. These are packets with destination addres...
Retrieve the QOS structure associated with the socket. This control is only supported on platforms th...
Return a SOCKADDR structure that contains the broadcast address for the address family of the current...
Set the interface used for outgoing multicast packets. The interface is identified by its index...
Obtain provider-specific functions that are not part of the Winsock specification. Functions are specified using their provider-assigned GUID. This value is equal to the Winsock†2 SIO_GET_EXTENSION_FUNCTION_POINTER constant.
Return the Quality of Service (QOS) attributes for the socket group. This value is reserved for futur...
Enable receiving notification when the list of local interfaces for the socket&#39;s protocol family chan...
Return the list of local interfaces that the socket can bind to. This control code is supported on Wi...
Enable receiving all IPv4 packets on the network. The socket must have address family xtd::net::socke...
Control whether multicast data sent by the socket appears as incoming data in the sockets receive que...
Join a multicast group using an interface identified by its index. This control code is supported on ...
Enable notification for when data is waiting to be received. This value is equal to the Winsock†2 FI...
Replace the oldest queued datagram with an incoming datagram when the incoming message queues are ful...
Enable receiving all Internet Group Management Protocol (IGMP) packets on the network. The socket must have address family xtd::net::sockets::address_family::inter_network, the socket type must be xtd::net::sockets::socket_type::raw, and the protocol type must be xtd::net::sockets::protocol_type::igmp. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock†2 SIO_RCVALL_IGMPMCAST constant.
Return information about out-of-band data waiting to be received. When using this control code on str...
Set the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements fo...
Set the interface used for outgoing unicast packets. This value is equal to the Winsock†2 SIO_UCAST_...
io_control_code
Specifies the IO control codes supported by the xtd::net::sockets::socket::io_control method...
Definition: io_control_code.h:27
Return the interface addresses that can be used to connect to the specified remote address...
Enable receiving notification when the local interface used to access a remote endpoint changes...