Put availability attributes on the type instead of each member when it's the same for all members.

This commit is contained in:
Rolf Bjarne Kvinge 2018-08-02 10:09:53 +02:00
Родитель bdb3ff9049
Коммит bbfb76135a
8 изменённых файлов: 8 добавлений и 174 удалений

Просмотреть файл

@ -18,6 +18,7 @@ namespace Network {
// The content context, there are a few pre-configured content contexts for sending
// available as static properties on this class
//
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWContentContext : NativeObject {
bool global;
public NWContentContext (IntPtr handle, bool owns) : base (handle, owns)
@ -44,7 +45,6 @@ namespace Network {
base.Release ();
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_content_context_create (string contextIdentifier);
@ -55,64 +55,51 @@ namespace Network {
InitializeHandle (nw_content_context_create (contextIdentifier));
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_content_context_get_identifier (IntPtr handle);
public string Identifier => Marshal.PtrToStringAnsi (nw_content_context_get_identifier (GetCheckedHandle ()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
extern static bool nw_content_context_get_is_final (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_content_context_set_is_final (IntPtr handle, [MarshalAs (UnmanagedType.I1)] bool is_final);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool IsFinal {
get => nw_content_context_get_is_final (GetCheckedHandle ());
set => nw_content_context_set_is_final (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static /* uint64_t */ ulong nw_content_context_get_expiration_milliseconds (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_content_context_set_expiration_milliseconds (IntPtr handle, /* uint64_t */ ulong value);
[TV (12,0), Mac (10,14), iOS (12,0)]
public ulong ExpirationMilliseconds {
get => nw_content_context_get_expiration_milliseconds (GetCheckedHandle ());
set => nw_content_context_set_expiration_milliseconds (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static double nw_content_context_get_relative_priority (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_content_context_set_relative_priority (IntPtr handle, double value);
[TV (12,0), Mac (10,14), iOS (12,0)]
public double RelativePriority {
get => nw_content_context_get_relative_priority (GetCheckedHandle ());
set => nw_content_context_set_relative_priority (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_content_context_copy_antecedent (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_content_context_set_antecedent (IntPtr handle, IntPtr value);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWContentContext Antecedent {
get {
var h = nw_content_context_copy_antecedent (GetCheckedHandle ());
@ -125,7 +112,6 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_content_context_copy_protocol_metadata (IntPtr handle, IntPtr protocol);
@ -139,11 +125,9 @@ namespace Network {
return new NWProtocolMetadata (x, owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_content_context_set_metadata_for_protocol (IntPtr handle, IntPtr protocolMetadata);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void SetMetadata (NWProtocolMetadata protocolMetadata)
{
if (protocolMetadata == null)
@ -169,11 +153,9 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_content_context_foreach_protocol_metadata (IntPtr handle, ref BlockLiteral callback);
[TV (12,0), Mac (10,14), iOS (12,0)]
[BindingImpl (BindingImplOptions.Optimizable)]
public void IterateProtocolMetadata (Action<NWProtocolDefinition,NWProtocolMetadata> callback)
{

Просмотреть файл

@ -17,22 +17,20 @@ using OS_nw_interface=System.IntPtr;
namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWInterface : NativeObject {
public NWInterface (IntPtr handle, bool owns) : base (handle, owns) {}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWInterfaceType nw_interface_get_type (OS_nw_interface iface);
public NWInterfaceType InterfaceType => nw_interface_get_type (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_interface_get_name (OS_nw_interface iface);
public string Name => Marshal.PtrToStringAnsi (nw_interface_get_name (GetCheckedHandle ()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern /* uint32_t */ uint nw_interface_get_index (OS_nw_interface iface);

Просмотреть файл

@ -29,6 +29,7 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWParameters : NativeObject {
public NWParameters (IntPtr handle, bool owns) : base (handle, owns) {}
@ -64,7 +65,6 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static unsafe extern nw_parameters_t nw_parameters_create_secure_tcp (void *configure_tls, void *configure_tcp);
@ -72,7 +72,6 @@ namespace Network {
// If you pass null, to either configureTls, or configureTcp they will use the default options
//
[BindingImpl (BindingImplOptions.Optimizable)]
[TV (12,0), Mac (10,14), iOS (12,0)]
public unsafe static NWParameters CreateSecureTcp (Action<NWProtocolOptions> configureTls = null, Action<NWProtocolOptions> configureTcp = null)
{
var tlsHandler = new BlockLiteral ();
@ -102,7 +101,6 @@ namespace Network {
}
[BindingImpl (BindingImplOptions.Optimizable)]
[TV (12,0), Mac (10,14), iOS (12,0)]
// If you pass null to configureTcp, it will use the default options
public unsafe static NWParameters CreateTcp (Action<NWProtocolOptions> configureTcp = null)
{
@ -124,14 +122,12 @@ namespace Network {
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern unsafe nw_parameters_t nw_parameters_create_secure_udp (void *configure_tls, void *configure_tcp);
//
// If you pass null, to either configureTls, or configureTcp they will use the default options
//
[TV (12,0), Mac (10,14), iOS (12,0)]
[BindingImpl (BindingImplOptions.Optimizable)]
public unsafe static NWParameters CreateSecureUdp (Action<NWProtocolOptions> configureTls = null, Action<NWProtocolOptions> configureUdp = null)
{
@ -163,7 +159,6 @@ namespace Network {
}
// If you pass null to configureTcp, it will use the default options
[TV (12,0), Mac (10,14), iOS (12,0)]
[BindingImpl (BindingImplOptions.Optimizable)]
public unsafe static NWParameters CreateUdp (Action<NWProtocolOptions> configureUdp = null)
{
@ -183,7 +178,6 @@ namespace Network {
return new NWParameters (ptr, owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern nw_parameters_t nw_parameters_create ();
@ -192,7 +186,6 @@ namespace Network {
InitializeHandle (nw_parameters_create ());
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern nw_parameters_t nw_parameters_copy (nw_parameters_t handle);
@ -201,84 +194,66 @@ namespace Network {
return new NWParameters (nw_parameters_copy (GetCheckedHandle ()), owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
static extern void nw_parameters_set_multipath_service (nw_parameters_t parameters, NWMultiPathService multipath_service);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWMultiPathService nw_parameters_get_multipath_service (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWMultiPathService MultipathService {
get => nw_parameters_get_multipath_service (GetCheckedHandle ());
set => nw_parameters_set_multipath_service (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_parameters_copy_default_protocol_stack (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWProtocolStack ProtocolStack => new NWProtocolStack (nw_parameters_copy_default_protocol_stack (GetCheckedHandle ()), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_local_only (nw_parameters_t parameters, [MarshalAs (UnmanagedType.I1)] bool local_only);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_parameters_get_local_only (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool LocalOnly {
get => nw_parameters_get_local_only (GetCheckedHandle ());
set => nw_parameters_set_local_only (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_prefer_no_proxy (nw_parameters_t parameters, [MarshalAs (UnmanagedType.I1)] bool prefer_no_proxy);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_parameters_get_prefer_no_proxy (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool PreferNoProxy {
get => nw_parameters_get_prefer_no_proxy (GetCheckedHandle ());
set => nw_parameters_set_prefer_no_proxy (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
static extern void nw_parameters_set_expired_dns_behavior (nw_parameters_t parameters, NWParametersExpiredDnsBehavior expired_dns_behavior);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWParametersExpiredDnsBehavior nw_parameters_get_expired_dns_behavior (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWParametersExpiredDnsBehavior ExpiredDnsBehavior {
get => nw_parameters_get_expired_dns_behavior (GetCheckedHandle ());
set => nw_parameters_set_expired_dns_behavior (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_require_interface (nw_parameters_t parameters, IntPtr handleInterface);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void RequireInterface (NWInterface iface)
{
nw_parameters_require_interface (GetCheckedHandle (), iface.GetHandle ());
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_parameters_copy_required_interface (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWInterface Interface {
get {
var iface = nw_parameters_copy_required_interface (GetCheckedHandle ());
@ -290,11 +265,9 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_prohibit_interface (nw_parameters_t parameters, IntPtr handleInterface);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ProhibitInterface (NWInterface iface)
{
if (iface == null)
@ -303,45 +276,36 @@ namespace Network {
nw_parameters_prohibit_interface (GetCheckedHandle (), iface.Handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_clear_prohibited_interfaces (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ClearProhibitedInterfaces ()
{
nw_parameters_clear_prohibited_interfaces (GetCheckedHandle ());
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_required_interface_type (nw_parameters_t parameters, NWInterfaceType ifaceType);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWInterfaceType nw_parameters_get_required_interface_type (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWInterfaceType RequiredInterfaceType {
get => nw_parameters_get_required_interface_type (GetCheckedHandle ());
set => nw_parameters_set_required_interface_type (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_prohibit_interface_type (nw_parameters_t parameters, NWInterfaceType type);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ProhibitInterfaceType (NWInterfaceType ifaceType)
{
nw_parameters_prohibit_interface_type (GetCheckedHandle (), ifaceType);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_clear_prohibited_interface_types (nw_parameters_t parameters);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ClearProhibitedInterfaceTypes ()
{
nw_parameters_clear_prohibited_interface_types (GetCheckedHandle ());
@ -364,11 +328,9 @@ namespace Network {
return false;
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_iterate_prohibited_interfaces (nw_parameters_t parameters, ref BlockLiteral callback);
[TV (12,0), Mac (10,14), iOS (12,0)]
[BindingImpl (BindingImplOptions.Optimizable)]
public void IterateProhibitedInterfaces (Func<NWInterface,bool> iterationCallback)
{
@ -395,12 +357,10 @@ namespace Network {
return false;
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_iterate_prohibited_interface_types (IntPtr handle, ref BlockLiteral callback);
[BindingImpl (BindingImplOptions.Optimizable)]
[TV (12,0), Mac (10,14), iOS (12,0)]
public void IterateProhibitedInterfaces (Func<NWInterfaceType,bool> callback)
{
BlockLiteral block_handler = new BlockLiteral ();
@ -413,74 +373,59 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_parameters_get_prohibit_expensive (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_prohibit_expensive (IntPtr handle, [MarshalAs (UnmanagedType.I1)] bool prohibit_expensive);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool ProhibitExpensive {
get => nw_parameters_get_prohibit_expensive (GetCheckedHandle ());
set => nw_parameters_set_prohibit_expensive (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_parameters_get_reuse_local_address (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_reuse_local_address (IntPtr handle, [MarshalAs (UnmanagedType.I1)] bool reuse_local_address);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool ReuseLocalAddress {
get => nw_parameters_get_reuse_local_address (GetCheckedHandle ());
set => nw_parameters_set_reuse_local_address (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_parameters_get_fast_open_enabled (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_fast_open_enabled (IntPtr handle, [MarshalAs (UnmanagedType.I1)] bool fast_open_enabled);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool FastOpenEnabled {
get => nw_parameters_get_fast_open_enabled (GetCheckedHandle ());
set => nw_parameters_set_fast_open_enabled (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWServiceClass nw_parameters_get_service_class (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_service_class (IntPtr handle, NWServiceClass service_class);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWServiceClass ServiceClass {
get => nw_parameters_get_service_class (GetCheckedHandle ());
set => nw_parameters_set_service_class (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_parameters_copy_local_endpoint (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_parameters_set_local_endpoint (IntPtr handle, IntPtr endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWEndpoint LocalEndpoint {
get {
var x = nw_parameters_copy_local_endpoint (GetCheckedHandle ());

Просмотреть файл

@ -15,48 +15,39 @@ using CoreFoundation;
namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWPathMonitor : NativeObject {
public NWPathMonitor (IntPtr handle, bool owns) : base (handle, owns) {}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_path_monitor_create ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWPathMonitor ()
{
InitializeHandle (nw_path_monitor_create ());
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_path_monitor_create_with_type (NWInterfaceType interfaceType);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWPathMonitor (NWInterfaceType interfaceType)
{
InitializeHandle (nw_path_monitor_create_with_type (interfaceType));
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_path_monitor_cancel (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Cancel () => nw_path_monitor_cancel (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_path_monitor_start (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Start () => nw_path_monitor_start (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_path_monitor_set_queue (IntPtr handle, IntPtr queue);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void SetQueue (DispatchQueue queue)
{
if (queue == null)

Просмотреть файл

@ -23,10 +23,10 @@ namespace Network {
Version6 = 2,
}
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWProtocolDefinition : NativeObject {
public NWProtocolDefinition (IntPtr handle, bool owns) : base (handle, owns) {}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_protocol_definition_is_equal (OS_nw_protocol_definition definition1, OS_nw_protocol_definition definition2);
@ -40,32 +40,24 @@ namespace Network {
return nw_protocol_definition_is_equal (GetCheckedHandle (), otherDefinition.Handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_copy_ip_definition ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolDefinition IPDefinition => new NWProtocolDefinition (nw_protocol_copy_ip_definition (), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_copy_tcp_definition ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolDefinition TcpDefinition => new NWProtocolDefinition (nw_protocol_copy_tcp_definition (), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_copy_udp_definition ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolDefinition UdpDefinition => new NWProtocolDefinition (nw_protocol_copy_udp_definition (), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_copy_tls_definition ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolDefinition TlsDefinition => new NWProtocolDefinition (nw_protocol_copy_tls_definition (), owns: true);
}

Просмотреть файл

@ -35,13 +35,12 @@ namespace Network {
Ce = 3,
}
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWProtocolMetadata : NativeObject {
#if false
// Officially listed on header files, but seems to not work on Mac/iOS
// https://bugreport.apple.com/web/?problemID=42443077
//[TV (12,0), Mac (10,14), iOS (12,0)]
[TV (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_metadata nw_ip_create_metadata ();
@ -60,81 +59,64 @@ namespace Network {
public NWProtocolMetadata (IntPtr handle, bool owns) : base (handle, owns) {}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_metadata_copy_definition (OS_nw_protocol_metadata metadata);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWProtocolDefinition ProtocolDefinition => new NWProtocolDefinition (nw_protocol_metadata_copy_definition (GetCheckedHandle ()), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_protocol_metadata_is_ip (OS_nw_protocol_metadata metadata);
public bool IsIP => nw_protocol_metadata_is_ip (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_protocol_metadata_is_udp (OS_nw_protocol_metadata metadata);
public bool IsUdp => nw_protocol_metadata_is_udp (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
[return: MarshalAs (UnmanagedType.I1)]
static extern bool nw_protocol_metadata_is_tls (OS_nw_protocol_metadata metadata);
public bool IsTls => nw_protocol_metadata_is_tls (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_tls_copy_sec_protocol_metadata (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public SecProtocolMetadata SecProtocolMetadata => new SecProtocolMetadata (nw_tls_copy_sec_protocol_metadata (GetCheckedHandle ()), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_ip_metadata_set_ecn_flag (OS_nw_protocol_metadata metadata, NWIPEcnFlag ecn_flag);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWIPEcnFlag nw_ip_metadata_get_ecn_flag (OS_nw_protocol_metadata metadata);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWIPEcnFlag IPMetadataEcnFlag {
get => nw_ip_metadata_get_ecn_flag (GetCheckedHandle ());
set => nw_ip_metadata_set_ecn_flag (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_ip_metadata_set_service_class (OS_nw_protocol_metadata metadata, NWServiceClass service_class);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern NWServiceClass nw_ip_metadata_get_service_class (OS_nw_protocol_metadata metadata);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWServiceClass ServiceClass {
get => nw_ip_metadata_get_service_class (GetCheckedHandle ());
set => nw_ip_metadata_set_service_class (GetCheckedHandle (), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static /* uint32_t */ uint nw_tcp_get_available_receive_buffer (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public uint TcpGetAvailableReceiveBuffer () => nw_tcp_get_available_receive_buffer (GetCheckedHandle ());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static /* uint32_t */ uint nw_tcp_get_available_send_buffer (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public uint TcpGetAvailableSendBuffer () => nw_tcp_get_available_send_buffer (GetCheckedHandle ());
}
}

Просмотреть файл

@ -18,40 +18,34 @@ using IntPtr=System.IntPtr;
namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWProtocolOptions : NativeObject {
public NWProtocolOptions (IntPtr handle, bool owns) : base (handle, owns) {}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_options_copy_definition (IntPtr options);
public NWProtocolDefinition ProtocolDefinition => new NWProtocolDefinition (nw_protocol_options_copy_definition (GetCheckedHandle ()), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_tls_create_options ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolOptions CreateTls ()
{
return new NWProtocolOptions (nw_tls_create_options (), owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_tcp_create_options ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolOptions CreateTcp ()
{
return new NWProtocolOptions (nw_tcp_create_options (), owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_udp_create_options ();
[TV (12,0), Mac (10,14), iOS (12,0)]
public static NWProtocolOptions CreateUdp ()
{
return new NWProtocolOptions (nw_udp_create_options (), owns: true);
@ -60,17 +54,14 @@ namespace Network {
//
// IP Options
//
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_ip_options_set_version (IntPtr options, NWIPVersion version);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void IPSetVersion (NWIPVersion version)
{
nw_ip_options_set_version (GetCheckedHandle (), version);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_ip_options_set_hop_limit (IntPtr options, byte hop_limit);
@ -79,21 +70,17 @@ namespace Network {
nw_ip_options_set_hop_limit (GetCheckedHandle (), hopLimit);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_ip_options_set_use_minimum_mtu (IntPtr options, [MarshalAs (UnmanagedType.I1)] bool use_minimum_mtu);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void IPSetUseMinimumMtu (bool useMinimumMtu)
{
nw_ip_options_set_use_minimum_mtu (GetCheckedHandle (), useMinimumMtu);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_ip_options_set_disable_fragmentation (IntPtr options, [MarshalAs (UnmanagedType.I1)] bool disable_fragmentation);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void IPSetDisableFragmentation (bool disableFragmentation)
{
nw_ip_options_set_disable_fragmentation (GetCheckedHandle (), disableFragmentation);
@ -102,126 +89,92 @@ namespace Network {
//
// TCP Options
//
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_no_delay (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool noDelay);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetNoDelay (bool noDelay) => nw_tcp_options_set_no_delay (GetCheckedHandle (), noDelay);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_no_push (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool noPush);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetNoPush (bool noPush) => nw_tcp_options_set_no_push (GetCheckedHandle (), noPush);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_no_options (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool noOptions);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetNoOptions (bool noOptions) => nw_tcp_options_set_no_options (GetCheckedHandle (), noOptions);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_enable_keepalive (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool enableKeepAlive);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetEnableKeepAlive (bool enableKeepAlive) => nw_tcp_options_set_enable_keepalive (GetCheckedHandle (), enableKeepAlive);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_keepalive_count (IntPtr handle, uint keepaliveCount);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetKeepAliveCount (uint keepaliveCount) => nw_tcp_options_set_keepalive_count (GetCheckedHandle (), keepaliveCount);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_keepalive_idle_time (IntPtr handle, uint keepaliveIdleTime);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetKeepAliveIdleTime (uint keepaliveIdleTime) => nw_tcp_options_set_keepalive_idle_time (GetCheckedHandle (), keepaliveIdleTime);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_keepalive_interval (IntPtr handle, uint keepaliveInterval);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetKeepAliveInterval (uint keepaliveInterval) => nw_tcp_options_set_keepalive_interval (GetCheckedHandle (), keepaliveInterval);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_maximum_segment_size (IntPtr handle, uint maximumSegmentSize);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetMaximumSegmentSize (uint maximumSegmentSize) => nw_tcp_options_set_maximum_segment_size (GetCheckedHandle (), maximumSegmentSize);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_connection_timeout (IntPtr handle, uint connectionTimeout);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetConnectionTimeout (uint connectionTimeout) => nw_tcp_options_set_connection_timeout (GetCheckedHandle (), connectionTimeout);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_persist_timeout (IntPtr handle, uint persistTimeout);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetPersistTimeout (uint persistTimeout) => nw_tcp_options_set_persist_timeout (GetCheckedHandle (), persistTimeout);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_retransmit_connection_drop_time (IntPtr handle, uint retransmitConnectionDropTime);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetRetransmitConnectionDropTime (uint retransmitConnectionDropTime) => nw_tcp_options_set_retransmit_connection_drop_time (GetCheckedHandle (), retransmitConnectionDropTime);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_retransmit_fin_drop (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool retransmitFinDrop);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetRetransmitFinDrop (bool retransmitFinDrop) => nw_tcp_options_set_retransmit_fin_drop (GetCheckedHandle (), retransmitFinDrop);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_disable_ack_stretching (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool disableAckStretching);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetDisableAckStretching (bool disableAckStretching) => nw_tcp_options_set_disable_ack_stretching (GetCheckedHandle (), disableAckStretching);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_enable_fast_open (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool enableFastOpen);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetEnableFastOpen (bool enableFastOpen) => nw_tcp_options_set_enable_fast_open (GetCheckedHandle (), enableFastOpen);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_tcp_options_set_disable_ecn (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool disableEcn);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void TcpSetDisableEcn (bool disableEcn) => nw_tcp_options_set_disable_ecn (GetCheckedHandle (), disableEcn);
//
// UDP Options
//
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_udp_options_set_prefer_no_checksum (IntPtr handle, [MarshalAs (UnmanagedType.U1)] bool preferNoChecksums);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void UdpSetPreferNoChecksum (bool preferNoChecksums) => nw_udp_options_set_prefer_no_checksum (GetCheckedHandle (), preferNoChecksums);
//
// TLS options
//
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_tls_copy_sec_protocol_options (IntPtr options);
[TV (12,0), Mac (10,14), iOS (12,0)]
public SecProtocolOptions TlsProtocolOptions => new SecProtocolOptions (nw_tls_copy_sec_protocol_options (GetCheckedHandle ()), owns: true);
}
}

Просмотреть файл

@ -20,14 +20,13 @@ using nw_protocol_options_t=System.IntPtr;
namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public class NWProtocolStack : NativeObject {
public NWProtocolStack (IntPtr handle, bool owns) : base (handle, owns) {}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_protocol_stack_prepend_application_protocol (nw_protocol_stack_t stack, nw_protocol_options_t options);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void PrependApplicationProtocol (NWProtocolOptions options)
{
if (options == null)
@ -35,7 +34,6 @@ namespace Network {
nw_protocol_stack_prepend_application_protocol (GetCheckedHandle (), options.Handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_protocol_stack_clear_application_protocols (nw_protocol_stack_t stack);
@ -58,11 +56,9 @@ namespace Network {
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_protocol_stack_iterate_application_protocols (nw_protocol_stack_t stack, ref BlockLiteral completion);
[TV (12,0), Mac (10,14), iOS (12,0)]
[BindingImpl (BindingImplOptions.Optimizable)]
public void IterateProtocols (Action<NWProtocolOptions> callback)
{
@ -76,25 +72,20 @@ namespace Network {
}
}
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_protocol_stack_copy_transport_protocol (nw_protocol_stack_t stack);
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_protocol_stack_set_transport_protocol (nw_protocol_stack_t stack, IntPtr value);
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
public NWProtocolOptions TransportProtocol {
get => new NWProtocolOptions (nw_protocol_stack_copy_transport_protocol (GetCheckedHandle ()), owns: true);
set => nw_protocol_stack_set_transport_protocol (GetCheckedHandle (), value.GetHandle ());
}
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_protocol_stack_copy_internet_protocol (nw_protocol_stack_t stack);
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
public NWProtocolOptions InternetProtocol => new NWProtocolOptions (nw_protocol_stack_copy_internet_protocol (GetCheckedHandle ()), owns: true);
}
}