xtd 0.2.0
io_control_code.h
Go to the documentation of this file.
1 #pragma once
5 #include "../../enum.h"
6 
8 #undef unix
9 
12 namespace xtd {
14  namespace net {
16  namespace sockets {
28  enum class io_control_code : uint64 {
30  enable_circular_queuing = 671088642ul,
32  flush = 671088644ul,
34  address_list_change = 671088663ul,
36  data_to_read = 1074030207ul,
38  oob_data_read = 1074033415ul,
40  get_broadcast_address = 1207959557ul,
42  address_list_query = 1207959574ul,
44  query_target_pnp_handle = 1207959576ul,
46  async_io = 2147772029ul,
48  non_blocking_io = 2147772030ul,
50  associate_handle = 2281701377ul,
52  multipoint_loopback = 2281701385ul,
54  multicast_scope = 2281701386ul,
56  set_qos = 2281701387ul,
58  set_group_qos = 2281701388ul,
60  routing_interface_change = 2281701397ul,
62  namespace_change = 2281701401ul,
64  receive_all = 2550136833ul,
66  receive_all_multicast = 2550136834ul,
68  receive_all_igmp_multicast = 2550136835ul,
70  keep_alive_values = 2550136836ul,
72  absorb_router_alert = 2550136837ul,
74  unicast_interface = 2550136838ul,
76  limit_broadcasts = 2550136839ul,
78  bind_to_interface = 2550136840ul,
80  multicast_interface = 2550136841ul,
82  add_multicast_group_on_interface = 2550136842ul,
86  get_extension_function_pointer = 3355443206ul,
88  get_qos = 3355443207ul,
90  get_group_qos = 3355443208ul,
92  translate_handle = 3355443213ul,
94  routing_interface_query = 3355443220ul,
96  address_list_sort = 3355443225ul
97  };
98  }
99  }
100 }
101 
103 template<> struct xtd::enum_register<xtd::net::sockets::io_control_code> {
104  explicit operator auto() const noexcept {return xtd::enum_collection<xtd::net::sockets::io_control_code> {{xtd::net::sockets::io_control_code::enable_circular_queuing, "enable_circular_queuing"}, {xtd::net::sockets::io_control_code::flush, "flush"}, {xtd::net::sockets::io_control_code::address_list_change, "address_list_change"}, {xtd::net::sockets::io_control_code::data_to_read, "data_to_read"}, {xtd::net::sockets::io_control_code::oob_data_read, "oob_data_read"}, {xtd::net::sockets::io_control_code::get_broadcast_address, "get_broadcast_address"}, {xtd::net::sockets::io_control_code::address_list_query, "address_list_query"}, {xtd::net::sockets::io_control_code::query_target_pnp_handle, "query_target_pnp_handle"}, {xtd::net::sockets::io_control_code::async_io, "async_io"}, {xtd::net::sockets::io_control_code::non_blocking_io, "non_blocking_io"}, {xtd::net::sockets::io_control_code::associate_handle, "associate_handle"}, {xtd::net::sockets::io_control_code::multipoint_loopback, "multipoint_loopback"}, {xtd::net::sockets::io_control_code::multicast_scope, "multicast_scope"}, {xtd::net::sockets::io_control_code::set_qos, "set_qos"}, {xtd::net::sockets::io_control_code::set_group_qos, "set_group_qos"}, {xtd::net::sockets::io_control_code::routing_interface_change, "routing_interface_change"}, {xtd::net::sockets::io_control_code::namespace_change, "namespace_change"}, {xtd::net::sockets::io_control_code::receive_all, "receive_all"}, {xtd::net::sockets::io_control_code::receive_all_multicast, "receive_all_multicast"}, {xtd::net::sockets::io_control_code::receive_all_igmp_multicast, "receive_all_igmp_multicast"}, {xtd::net::sockets::io_control_code::keep_alive_values, "keep_alive_values"}, {xtd::net::sockets::io_control_code::absorb_router_alert, "absorb_router_alert"}, {xtd::net::sockets::io_control_code::unicast_interface, "unicast_interface"}, {xtd::net::sockets::io_control_code::limit_broadcasts, "limit_broadcasts"}, {xtd::net::sockets::io_control_code::bind_to_interface, "bind_to_interface"}, {xtd::net::sockets::io_control_code::multicast_interface, "multicast_interface"}, {xtd::net::sockets::io_control_code::add_multicast_group_on_interface, "add_multicast_group_on_interface"}, {xtd::net::sockets::io_control_code::delete_multicast_group_from_interface, "delete_multicast_group_from_interface"}, {xtd::net::sockets::io_control_code::get_extension_function_pointer, "get_extension_function_pointer"}, {xtd::net::sockets::io_control_code::get_qos, "get_qos"}, {xtd::net::sockets::io_control_code::get_group_qos, "get_group_qos"}, {xtd::net::sockets::io_control_code::translate_handle, "translate_handle"}, {xtd::net::sockets::io_control_code::routing_interface_query, "routing_interface_query"}, {xtd::net::sockets::io_control_code::address_list_sort, "address_list_sort"}};}
105 };
Return information about out-of-band data waiting to be received. When using this control code on str...
Return a SOCKADDR structure that contains the broadcast address for the address family of the current...
Sets the interface used for outgoing multicast packets. The interface is identified by its index...
Control the number of times a multicast packet can be forwarded by a router, also known as the Time t...
Sets the interface used for outgoing unicast packets. This value is equal to the Winsock†2 SIO_UCAST...
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.
Remove the socket from a multicast group. This control code is supported on Windows 2000 and later op...
io_control_code
Specifies the IO control codes supported by the xtd::net::sockets::socket::io_control method...
Definition: io_control_code.h:28
Sort the structure returned by the xtd::net::sockets::io_control_code::address_list_query field and a...
Replace the oldest queued datagram with an incoming datagram when the incoming message queues are ful...
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
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.
Enable receiving notification when the list of local interfaces for the socket&#39;s protocol family chan...
Bind the socket to a specified interface index. This control code is supported on Windows 2000 and la...
Enable receiving all IPv4 packets on the network. The socket must have address family xtd::net::socke...
std::vector< std::pair< enum_t, xtd::ustring > > enum_collection
Represents a pair of an enum_t value and a string of an enum of type enum_t.
Definition: enum_collection.h:19
Retrieve the underlying provider&#39;s SOCKET handle. This handle can be used to receive plug-and-play ev...
Return the list of local interfaces that the socket can bind to. This control code is supported on Wi...
This value is equal to the Winsock†2 SIO_LIMIT_BROADCASTS constant.
Return the Quality of Service (QOS) attributes for the socket group. This value is reserved for futur...
Associate this socket with the specified handle of a companion interface. Refer to the appropriate pr...
Return the interface addresses that can be used to connect to the specified remote address...
Control the blocking behavior of the socket. If the argument specified with this control code is zero...
This value is equal to the Winsock†2 SIO_ABSORB_RTRALERT constant.
Sets the Quality of Service (QOS) attributes for the socket group. This value is reserved for future ...
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 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.
Discard the contents of the sending queue. This value is equal to the Winsock†2 SIO_FLUSH constant...
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.
Enable notification for when data is waiting to be received. This value is equal to the Winsock†2 FI...
uint_least64_t uint64
Represents a 64-bit unsigned integer.
Definition: types.h:250
Control whether multicast data sent by the socket appears as incoming data in the sockets receive que...
Return the number of bytes available for reading. This value is equal to the Winsock†2 FIONREAD cons...
Join a multicast group using an interface identified by its index. This control code is supported on ...
Control sending TCP keep-alive packets and the interval at which they are sent. This control code is ...
Sets the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements f...
Enable receiving notification when the local interface used to access a remote endpoint changes...
Provides the registration struct for enumerations.
Definition: enum_register.h:36