[Network] Robustify, I ran into hard to diagnose bugs due to Dipose() being called, and figured this was a good time to robustify our use of disposed objects, so did that now

This commit is contained in:
Miguel de Icaza 2018-07-12 15:23:48 -04:00
Родитель 78458beacf
Коммит cf62ae9886
14 изменённых файлов: 155 добавлений и 219 удалений

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

@ -45,7 +45,7 @@ namespace Network {
if (txt == null)
throw new ArgumentNullException (nameof (txt));
var n = System.Text.Encoding.UTF8.GetByteCount (txt);
nw_advertise_descriptor_set_txt_record (handle, txt, (IntPtr) n);
nw_advertise_descriptor_set_txt_record (GetHandle (), txt, (IntPtr) n);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -59,8 +59,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool NoAutoRename {
set => nw_advertise_descriptor_set_no_auto_rename (handle, value);
get => nw_advertise_descriptor_get_no_auto_rename (handle);
set => nw_advertise_descriptor_set_no_auto_rename (GetHandle (), value);
get => nw_advertise_descriptor_get_no_auto_rename (GetHandle ());
}
}
}

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

@ -58,7 +58,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWEndpoint Endpoint {
get {
var x = nw_connection_copy_endpoint (handle);
var x = nw_connection_copy_endpoint (GetHandle ());
if (x == IntPtr.Zero)
return null;
return new NWEndpoint (x, owns: true);
@ -72,7 +72,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWParameters Parameters {
get {
var x = nw_connection_copy_parameters (handle);
var x = nw_connection_copy_parameters (GetHandle());
if (x == IntPtr.Zero)
return null;
return new NWParameters (x, owns: true);
@ -101,7 +101,7 @@ namespace Network {
public unsafe void SetStateChangeHandler (Action<NWConnectionState,NWError> stateHandler)
{
if (stateHandler == null){
nw_connection_set_state_changed_handler (handle, null);
nw_connection_set_state_changed_handler (GetHandle(), null);
return;
}
@ -112,7 +112,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_stateChangeHandler, stateHandler);
nw_connection_set_state_changed_handler (handle, (void*) block_ptr_handler);
nw_connection_set_state_changed_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -138,7 +138,7 @@ namespace Network {
public unsafe void SetBooleanChangeHandler (Action<bool> callback)
{
if (callback == null){
nw_connection_set_viability_changed_handler (handle, null);
nw_connection_set_viability_changed_handler (GetHandle(), null);
return;
}
unsafe {
@ -148,7 +148,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_BooleanChangeHandler, callback);
nw_connection_set_viability_changed_handler (handle, (void*) block_ptr_handler);
nw_connection_set_viability_changed_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -161,7 +161,7 @@ namespace Network {
public unsafe void SetBetterPathAvailableHandler (Action<bool> callback)
{
if (callback == null){
nw_connection_set_better_path_available_handler (handle, null);
nw_connection_set_better_path_available_handler (GetHandle(), null);
return;
}
unsafe {
@ -171,7 +171,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_BooleanChangeHandler, callback);
nw_connection_set_better_path_available_handler (handle, (void*) block_ptr_handler);
nw_connection_set_better_path_available_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -204,7 +204,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_PathChanged, callback);
nw_connection_set_path_changed_handler (handle, (void*) block_ptr_handler);
nw_connection_set_path_changed_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -218,7 +218,7 @@ namespace Network {
{
if (queue == null)
throw new ArgumentNullException (nameof (queue));
nw_connection_set_queue (handle, queue.handle);
nw_connection_set_queue (GetHandle(), queue.handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -226,35 +226,35 @@ namespace Network {
static extern void nw_connection_start (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Start () => nw_connection_start (handle);
public void Start () => nw_connection_start (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_connection_restart (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Restart () => nw_connection_restart (handle);
public void Restart () => nw_connection_restart (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_connection_cancel (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Cancel () => nw_connection_cancel (handle);
public void Cancel () => nw_connection_cancel (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_connection_force_cancel (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ForceCancel () => nw_connection_force_cancel (handle);
public void ForceCancel () => nw_connection_force_cancel (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern void nw_connection_cancel_current_endpoint (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void CancelCurrentEndpoint () => nw_connection_cancel_current_endpoint (handle);
public void CancelCurrentEndpoint () => nw_connection_cancel_current_endpoint (GetHandle());
delegate void nw_connection_receive_completion_t (IntPtr block,
IntPtr dispatchData,
@ -305,7 +305,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_ReceiveCompletion, callback);
nw_connection_receive (handle, minimumIncompleteLength, maximumLength, (void*) block_ptr_handler);
nw_connection_receive (GetHandle(), minimumIncompleteLength, maximumLength, (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -323,7 +323,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_ReceiveCompletion, callback);
nw_connection_receive_message (handle, (void*) block_ptr_handler);
nw_connection_receive_message (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -359,7 +359,7 @@ namespace Network {
//
unsafe void LowLevelSend (IntPtr handle, DispatchData buffer, IntPtr contentContext, bool isComplete, void *callback)
{
nw_connection_send (handle: handle,
nw_connection_send (handle: GetHandle(),
dispatchData: buffer == null ? IntPtr.Zero : buffer.Handle,
contentContext: contentContext,
isComplete: isComplete,
@ -402,7 +402,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_SendCompletion, callback);
LowLevelSend (handle, buffer, context.Handle, isComplete, block_ptr_handler);
LowLevelSend (GetHandle(), buffer, context.Handle, isComplete, block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -423,7 +423,7 @@ namespace Network {
if (context == null)
throw new ArgumentNullException (nameof (context));
LowLevelSend (handle, buffer, context.Handle, isComplete, (void *) NW_CONNECTION_SEND_IDEMPOTENT_CONTENT ());
LowLevelSend (GetHandle(), buffer, context.Handle, isComplete, (void *) NW_CONNECTION_SEND_IDEMPOTENT_CONTENT ());
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -441,7 +441,7 @@ namespace Network {
extern static string nw_connection_copy_description (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string Description => nw_connection_copy_description (handle);
public string Description => nw_connection_copy_description (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -450,7 +450,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWPath CurrentPath {
get {
var x = nw_connection_copy_current_path (handle);
var x = nw_connection_copy_current_path (GetHandle());
if (x == IntPtr.Zero)
return null;
return new NWPath (x, owns: true);
@ -467,7 +467,7 @@ namespace Network {
if (definition == null)
throw new ArgumentNullException (nameof (definition));
var x = nw_connection_copy_protocol_metadata (handle, definition.handle);
var x = nw_connection_copy_protocol_metadata (GetHandle(), definition.handle);
if (x == IntPtr.Zero)
return null;
return new NWProtocolMetadata (x, owns: true);
@ -477,7 +477,7 @@ namespace Network {
[DllImport (Constants.NetworkLibrary)]
extern static uint nw_connection_get_maximum_datagram_size (IntPtr handle);
public uint MaximumDatagramSize => nw_connection_get_maximum_datagram_size (handle);
public uint MaximumDatagramSize => nw_connection_get_maximum_datagram_size (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -486,7 +486,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Batch (Action method)
{
BlockLiteral.SimpleCall (method, (arg)=> nw_connection_batch (handle, arg));
BlockLiteral.SimpleCall (method, (arg)=> nw_connection_batch (GetHandle(), arg));
}
}
}

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

@ -59,7 +59,7 @@ namespace Network {
[DllImport (Constants.NetworkLibrary)]
extern static IntPtr nw_content_context_get_identifier (IntPtr handle);
public string Identifier => Marshal.PtrToStringAnsi (nw_content_context_get_identifier (handle));
public string Identifier => Marshal.PtrToStringAnsi (nw_content_context_get_identifier (GetHandle()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -72,8 +72,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool IsFinal {
get => nw_content_context_get_is_final (handle);
set => nw_content_context_set_is_final (handle, value);
get => nw_content_context_get_is_final (GetHandle());
set => nw_content_context_set_is_final (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -86,8 +86,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public ulong ExpirationMilliseconds {
get => nw_content_context_get_expiration_milliseconds (handle);
set => nw_content_context_set_expiration_milliseconds (handle, value);
get => nw_content_context_get_expiration_milliseconds (GetHandle());
set => nw_content_context_set_expiration_milliseconds (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -100,8 +100,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public double RelativePriority {
get => nw_content_context_get_relative_priority (handle);
set => nw_content_context_set_relative_priority (handle, value);
get => nw_content_context_get_relative_priority (GetHandle());
set => nw_content_context_set_relative_priority (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -115,13 +115,13 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWContentContext Antecedent {
get {
var h = nw_content_context_copy_antecedent (handle);
var h = nw_content_context_copy_antecedent (GetHandle());
if (h == IntPtr.Zero)
return null;
return new NWContentContext (h, owns: true);
}
set {
nw_content_context_set_antecedent (handle, value == null ? IntPtr.Zero : value.Handle);
nw_content_context_set_antecedent (GetHandle(), value == null ? IntPtr.Zero : value.Handle);
}
}
@ -133,7 +133,7 @@ namespace Network {
{
if (protocolDefinition == null)
throw new ArgumentNullException (nameof (protocolDefinition));
var x = nw_content_context_copy_protocol_metadata (handle, protocolDefinition.handle);
var x = nw_content_context_copy_protocol_metadata (GetHandle(), protocolDefinition.handle);
if (x == IntPtr.Zero)
return null;
return new NWProtocolMetadata (x, owns: true);
@ -148,7 +148,7 @@ namespace Network {
{
if (protocolMetadata == null)
throw new ArgumentNullException (nameof (protocolMetadata));
nw_content_context_set_metadata_for_protocol (handle, protocolMetadata.Handle);
nw_content_context_set_metadata_for_protocol (GetHandle(), protocolMetadata.Handle);
}
delegate void ProtocolIterator (IntPtr block, IntPtr definition, IntPtr metadata);
@ -188,7 +188,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_ProtocolIterator, callback);
nw_content_context_foreach_protocol_metadata (handle, (void*) block_ptr_handler);
nw_content_context_foreach_protocol_metadata (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}

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

@ -32,7 +32,7 @@ namespace Network {
extern static NWEndpointType nw_endpoint_get_type (OS_nw_endpoint handle);
[Mac(10,14)][iOS(12,0)][TV(12,0)]
public NWEndpointType Type => nw_endpoint_get_type (handle);
public NWEndpointType Type => nw_endpoint_get_type (GetHandle());
[Mac(10,14)][iOS(12,0)][TV(12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -56,14 +56,14 @@ namespace Network {
static extern IntPtr nw_endpoint_get_hostname (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string Hostname => Marshal.PtrToStringAnsi (nw_endpoint_get_hostname (handle));
public string Hostname => Marshal.PtrToStringAnsi (nw_endpoint_get_hostname (GetHandle()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern string nw_endpoint_copy_port_string (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string Port => nw_endpoint_copy_port_string (handle);
public string Port => nw_endpoint_copy_port_string (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -71,7 +71,7 @@ namespace Network {
static extern ushort nw_endpoint_get_port (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public ushort PortNumber => nw_endpoint_get_port (handle);
public ushort PortNumber => nw_endpoint_get_port (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -86,7 +86,7 @@ namespace Network {
static extern string nw_endpoint_copy_address_string (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string Address => nw_endpoint_copy_address_string (handle);
public string Address => nw_endpoint_copy_address_string (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -113,21 +113,21 @@ namespace Network {
static extern unsafe IntPtr nw_endpoint_get_bonjour_service_name (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string BonjourServiceName => Marshal.PtrToStringAnsi (nw_endpoint_get_bonjour_service_name (handle));
public string BonjourServiceName => Marshal.PtrToStringAnsi (nw_endpoint_get_bonjour_service_name (GetHandle()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_endpoint_get_bonjour_service_type (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string BonjourServiceType => Marshal.PtrToStringAnsi (nw_endpoint_get_bonjour_service_type (handle));
public string BonjourServiceType => Marshal.PtrToStringAnsi (nw_endpoint_get_bonjour_service_type (GetHandle()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern IntPtr nw_endpoint_get_bonjour_service_domain (OS_nw_endpoint endpoint);
[TV (12,0), Mac (10,14), iOS (12,0)]
public string BonjourServiceDomain => Marshal.PtrToStringAnsi (nw_endpoint_get_bonjour_service_domain (handle));
public string BonjourServiceDomain => Marshal.PtrToStringAnsi (nw_endpoint_get_bonjour_service_domain (GetHandle()));
}
}

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

@ -34,14 +34,14 @@ namespace Network {
static extern NWErrorDomain nw_error_get_error_domain (IntPtr error);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWErrorDomain ErrorDomain => nw_error_get_error_domain (handle);
public NWErrorDomain ErrorDomain => nw_error_get_error_domain (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern int nw_error_get_error_code (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public int ErrorCode => nw_error_get_error_code (handle);
public int ErrorCode => nw_error_get_error_code (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -50,7 +50,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public CFException CFError {
get {
return CFException.FromCFError (nw_error_copy_cf_error (handle), true);
return CFException.FromCFError (nw_error_copy_cf_error (GetHandle()), true);
}
}
}

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

@ -24,19 +24,19 @@ namespace Network {
[DllImport (Constants.NetworkLibrary)]
static extern NWInterfaceType nw_interface_get_type (OS_nw_interface iface);
public NWInterfaceType InterfaceType => nw_interface_get_type (handle);
public NWInterfaceType InterfaceType => nw_interface_get_type (GetHandle());
[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 (handle));
public string Name => Marshal.PtrToStringAnsi (nw_interface_get_name (GetHandle()));
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
static extern uint nw_interface_get_index (OS_nw_interface iface);
public uint Index => nw_interface_get_index (handle);
public uint Index => nw_interface_get_index (GetHandle());
}
public enum NWInterfaceType {

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

@ -22,40 +22,9 @@ namespace Network {
}
public class NWListener : INativeObject, IDisposable {
IntPtr handle;
public IntPtr Handle {
get { return handle; }
}
public NWListener (IntPtr handle, bool owns)
public class NWListener : NativeObject {
public NWListener (IntPtr handle, bool owns) : base (handle, owns)
{
this.handle = handle;
if (owns == false)
CFObject.CFRetain (handle);
}
public NWListener (IntPtr handle) : this (handle, false)
{
}
~NWListener ()
{
Dispose (false);
}
public void Dispose ()
{
Dispose (true);
GC.SuppressFinalize (this);
}
public virtual void Dispose (bool disposing)
{
if (handle != IntPtr.Zero) {
CFObject.CFRelease (handle);
handle = IntPtr.Zero;
}
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -75,7 +44,7 @@ namespace Network {
handle = nw_listener_create_with_port (port, parameters.handle);
if (handle == IntPtr.Zero)
return null;
return new NWListener (handle);
return new NWListener (handle, owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -93,7 +62,7 @@ namespace Network {
handle = nw_listener_create (parameters.handle);
if (handle == IntPtr.Zero)
return null;
return new NWListener (handle);
return new NWListener (handle, owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -112,7 +81,7 @@ namespace Network {
var handle = nw_listener_create_with_connection (connection.handle, parameters.handle);
if (handle == IntPtr.Zero)
return null;
return new NWListener (handle);
return new NWListener (handle, owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -125,7 +94,7 @@ namespace Network {
if (queue == null)
throw new ArgumentNullException (nameof(queue));
nw_listener_set_queue (handle, queue.handle);
nw_listener_set_queue (GetHandle(), queue.handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -133,14 +102,14 @@ namespace Network {
extern static ushort nw_listener_get_port (IntPtr listener);
[TV (12,0), Mac (10,14), iOS (12,0)]
public ushort Port => nw_listener_get_port (handle);
public ushort Port => nw_listener_get_port (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static void nw_listener_start (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Start () => nw_listener_start (handle);
public void Start () => nw_listener_start (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -148,7 +117,7 @@ namespace Network {
extern static void nw_listener_cancel (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public void Cancel () => nw_listener_cancel (handle);
public void Cancel () => nw_listener_cancel (GetHandle());
delegate void nw_listener_state_changed_handler_t (IntPtr block, NWListenerState state, IntPtr nwerror);
static nw_listener_state_changed_handler_t static_ListenerStateChanged = TrampolineListenerStateChanged;
@ -173,7 +142,7 @@ namespace Network {
{
unsafe {
if (callback == null){
nw_listener_set_state_changed_handler (handle, null);
nw_listener_set_state_changed_handler (GetHandle(), null);
return;
}
@ -183,7 +152,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_ListenerStateChanged, callback);
nw_listener_set_state_changed_handler (handle, (void*) block_ptr_handler);
nw_listener_set_state_changed_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -210,7 +179,7 @@ namespace Network {
{
unsafe {
if (callback == null){
nw_listener_set_new_connection_handler (handle, null);
nw_listener_set_new_connection_handler (GetHandle(), null);
return;
}
@ -220,7 +189,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_NewConnection, callback);
nw_listener_set_new_connection_handler (handle, (void*) block_ptr_handler);
nw_listener_set_new_connection_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -250,7 +219,7 @@ namespace Network {
{
unsafe {
if (callback == null){
nw_listener_set_advertised_endpoint_changed_handler (handle, null);
nw_listener_set_advertised_endpoint_changed_handler (GetHandle(), null);
return;
}
@ -260,7 +229,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_AdvertisedEndpointChangedHandler, callback);
nw_listener_set_advertised_endpoint_changed_handler (handle, (void*) block_ptr_handler);
nw_listener_set_advertised_endpoint_changed_handler (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -272,7 +241,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void SetAdvertiseDescriptor (NWAdvertiseDescriptor descriptor)
{
nw_listener_set_advertise_descriptor (handle, descriptor == null ? IntPtr.Zero : descriptor.handle);
nw_listener_set_advertise_descriptor (GetHandle(), descriptor == null ? IntPtr.Zero : descriptor.handle);
}
}
}

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

@ -191,7 +191,7 @@ namespace Network {
public NWParameters Clone ()
{
return new NWParameters (nw_parameters_copy (handle), owns: true);
return new NWParameters (nw_parameters_copy (GetHandle()), owns: true);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -203,8 +203,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWMultiPathService MultipathService {
get => nw_parameters_get_multipath_service (handle);
set => nw_parameters_set_multipath_service (handle, value);
get => nw_parameters_get_multipath_service (GetHandle());
set => nw_parameters_set_multipath_service (GetHandle(), value);
}
@ -213,7 +213,7 @@ namespace Network {
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 (handle), owns: true);
public NWProtocolStack ProtocolStack => new NWProtocolStack (nw_parameters_copy_default_protocol_stack (GetHandle()), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -226,8 +226,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool LocalOnly {
get => nw_parameters_get_local_only (handle);
set => nw_parameters_set_local_only (handle, value);
get => nw_parameters_get_local_only (GetHandle());
set => nw_parameters_set_local_only (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -241,8 +241,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool PreferNoProxy {
get => nw_parameters_get_prefer_no_proxy (handle);
set => nw_parameters_set_prefer_no_proxy (handle, value);
get => nw_parameters_get_prefer_no_proxy (GetHandle());
set => nw_parameters_set_prefer_no_proxy (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -254,8 +254,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWParametersExpiredDnsBehavior ExpiredDnsBehavior {
get => nw_parameters_get_expired_dns_behavior (handle);
set => nw_parameters_set_expired_dns_behavior (handle, value);
get => nw_parameters_get_expired_dns_behavior (GetHandle());
set => nw_parameters_set_expired_dns_behavior (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -265,7 +265,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void RequireInterface (NWInterface iface)
{
nw_parameters_require_interface (handle, iface == null ? IntPtr.Zero : iface.handle);
nw_parameters_require_interface (GetHandle(), iface == null ? IntPtr.Zero : iface.handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -275,12 +275,12 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWInterface Interface {
get {
var iface = nw_parameters_copy_required_interface (handle);
var iface = nw_parameters_copy_required_interface (GetHandle());
if (iface == IntPtr.Zero)
return null;
return new NWInterface (handle, owns: true);
return new NWInterface (GetHandle(), owns: true);
}
}
@ -294,7 +294,7 @@ namespace Network {
if (iface == null)
throw new ArgumentNullException (nameof (iface));
nw_parameters_prohibit_interface (handle, iface.handle);
nw_parameters_prohibit_interface (GetHandle(), iface.handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -304,7 +304,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ClearProhibitedInterfaces ()
{
nw_parameters_clear_prohibited_interfaces (handle);
nw_parameters_clear_prohibited_interfaces (GetHandle());
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -317,8 +317,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWInterfaceType RequiredIntefaceType {
get => nw_parameters_get_required_interface_type (handle);
set => nw_parameters_set_required_interface_type (handle, value);
get => nw_parameters_get_required_interface_type (GetHandle());
set => nw_parameters_set_required_interface_type (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -329,7 +329,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ProhibitInterfaceType (NWInterfaceType ifaceType)
{
nw_parameters_prohibit_interface_type (handle, ifaceType);
nw_parameters_prohibit_interface_type (GetHandle(), ifaceType);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -339,7 +339,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void ClearProhibitedInterfaceTypes ()
{
nw_parameters_clear_prohibited_interface_types (handle);
nw_parameters_clear_prohibited_interface_types (GetHandle());
}
@ -375,7 +375,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_iterateProhibitedHandler, iterationCallback);
nw_parameters_iterate_prohibited_interfaces (handle, (void*) block_ptr_handler);
nw_parameters_iterate_prohibited_interfaces (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -409,7 +409,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_IterateProhibitedTypeHandler, callback);
nw_parameters_iterate_prohibited_interface_types (handle, (void*) block_ptr_handler);
nw_parameters_iterate_prohibited_interface_types (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -425,8 +425,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool ProhibitExpensive {
get => nw_parameters_get_prohibit_expensive (handle);
set => nw_parameters_set_prohibit_expensive (handle, value);
get => nw_parameters_get_prohibit_expensive (GetHandle());
set => nw_parameters_set_prohibit_expensive (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -440,8 +440,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool ReuseLocalAddress {
get => nw_parameters_get_reuse_local_address (handle);
set => nw_parameters_set_reuse_local_address (handle, value);
get => nw_parameters_get_reuse_local_address (GetHandle());
set => nw_parameters_set_reuse_local_address (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -455,8 +455,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool FastOpenEnabled {
get => nw_parameters_get_fast_open_enabled (handle);
set => nw_parameters_set_fast_open_enabled (handle, value);
get => nw_parameters_get_fast_open_enabled (GetHandle());
set => nw_parameters_set_fast_open_enabled (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -469,8 +469,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWServiceClass ServiceClass {
get => nw_parameters_get_service_class (handle);
set => nw_parameters_set_service_class (handle, value);
get => nw_parameters_get_service_class (GetHandle());
set => nw_parameters_set_service_class (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -484,15 +484,15 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWEndpoint LocalEndpoint {
get {
var x = nw_parameters_copy_local_endpoint (handle);
var x = nw_parameters_copy_local_endpoint (GetHandle());
if (x == IntPtr.Zero)
return null;
return new NWEndpoint (handle, owns: true);
return new NWEndpoint (x, owns: true);
}
set {
nw_parameters_set_local_endpoint (handle, value == null ? IntPtr.Zero : value.handle);
nw_parameters_set_local_endpoint (GetHandle(), value == null ? IntPtr.Zero : value.handle);
}
}
}

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

@ -29,7 +29,7 @@ namespace Network {
extern static NWPathStatus nw_path_get_status (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWPathStatus Status => nw_path_get_status (handle);
public NWPathStatus Status => nw_path_get_status (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -37,7 +37,7 @@ namespace Network {
extern static bool nw_path_is_expensive (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool IsExpensive => nw_path_is_expensive (handle);
public bool IsExpensive => nw_path_is_expensive (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -45,7 +45,7 @@ namespace Network {
extern static bool nw_path_has_ipv4 (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool HasIpV4 => nw_path_has_ipv4 (handle);
public bool HasIpV4 => nw_path_has_ipv4 (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -53,7 +53,7 @@ namespace Network {
extern static bool nw_path_has_ipv6 (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool HasIpV6 => nw_path_has_ipv6 (handle);
public bool HasIpV6 => nw_path_has_ipv6 (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -61,7 +61,7 @@ namespace Network {
extern static bool nw_path_has_dns (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool HasDns => nw_path_has_dns (handle);
public bool HasDns => nw_path_has_dns (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -69,7 +69,7 @@ namespace Network {
extern static bool nw_path_uses_interface_type (IntPtr handle, NWInterfaceType type);
[TV (12,0), Mac (10,14), iOS (12,0)]
public bool UsesInterfaceType (NWInterfaceType type) => nw_path_uses_interface_type (handle, type);
public bool UsesInterfaceType (NWInterfaceType type) => nw_path_uses_interface_type (GetHandle(), type);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -78,7 +78,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWEndpoint EffectiveLocalEndpoint {
get {
var x = nw_path_copy_effective_local_endpoint (handle);
var x = nw_path_copy_effective_local_endpoint (GetHandle());
if (x == IntPtr.Zero)
return null;
return new NWEndpoint (x, owns: true);
@ -92,7 +92,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWEndpoint EffectiveRemoteEndpoint {
get {
var x = nw_path_copy_effective_remote_endpoint (handle);
var x = nw_path_copy_effective_remote_endpoint (GetHandle());
if (x == IntPtr.Zero)
return null;
return new NWEndpoint (x, owns: true);
@ -110,7 +110,7 @@ namespace Network {
if (other == null)
return false;
return nw_path_is_equal (handle, other.handle);
return nw_path_is_equal (GetHandle(), other.handle);
}
delegate void nw_path_enumerate_interfaces_block_t (IntPtr block, IntPtr iface);
@ -142,7 +142,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_Enumerator, callback);
nw_path_enumerate_interfaces (handle, (void*) block_ptr_handler);
nw_path_enumerate_interfaces (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}

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

@ -15,41 +15,8 @@ using CoreFoundation;
namespace Network {
public class NWPathMonitor : INativeObject, IDisposable {
IntPtr handle;
public IntPtr Handle {
get { return handle; }
}
public NWPathMonitor (IntPtr handle, bool owns)
{
this.handle = handle;
if (owns == false)
CFObject.CFRetain (handle);
}
public NWPathMonitor (IntPtr handle) : this (handle, false)
{
}
~NWPathMonitor ()
{
Dispose (false);
}
public void Dispose ()
{
Dispose (true);
GC.SuppressFinalize (this);
}
public virtual void Dispose (bool disposing)
{
if (handle != IntPtr.Zero) {
CFObject.CFRelease (handle);
handle = IntPtr.Zero;
}
}
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)]
@ -76,14 +43,14 @@ namespace Network {
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 (handle);
public void Cancel () => nw_path_monitor_cancel (GetHandle());
[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 (handle);
public void Start () => nw_path_monitor_start (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -94,7 +61,7 @@ namespace Network {
{
if (queue == null)
throw new ArgumentNullException (nameof (queue));
nw_path_monitor_set_queue (handle, queue.handle);
nw_path_monitor_set_queue (GetHandle(), queue.handle);
}
}

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

@ -37,7 +37,7 @@ namespace Network {
return false;
if (!(other is NWProtocolDefinition))
return false;
return nw_protocol_definition_is_equal (handle, (other as NWProtocolDefinition).handle);
return nw_protocol_definition_is_equal (GetHandle(), (other as NWProtocolDefinition).handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -103,21 +103,21 @@ namespace Network {
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 (handle, noDelay);
public void TcpSetNoDelay (bool noDelay) => nw_tcp_options_set_no_delay (GetHandle(), 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 (handle, noPush);
public void TcpSetNoPush (bool noPush) => nw_tcp_options_set_no_push (GetHandle(), 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 (handle, noOptions);
public void TcpSetNoOptions (bool noOptions) => nw_tcp_options_set_no_options (GetHandle(), noOptions);
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -125,86 +125,86 @@ namespace Network {
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 (handle, enableKeepalive);
public void TcpSetEnableKeepAlive (bool enableKeepalive) => nw_tcp_options_set_enable_keepalive (GetHandle(), 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 (handle, keepaliveCount);
public void TcpSetKeepaliveCount (uint keepaliveCount) => nw_tcp_options_set_keepalive_count (GetHandle(), 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 (handle, keepaliveIdleTime);
public void TcpSetKeepaliveIdleTime (uint keepaliveIdleTime) => nw_tcp_options_set_keepalive_idle_time (GetHandle(), 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 (handle, keepaliveInterval);
public void TcpSetKeepaliveInterval (uint keepaliveInterval) => nw_tcp_options_set_keepalive_interval (GetHandle(), 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 (handle, maximumSegmentSize);
public void TcpSetMaximumSegmentSize (uint maximumSegmentSize) => nw_tcp_options_set_maximum_segment_size (GetHandle(), 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 (handle, connectionTimeout);
public void TcpSetConnectionTimeout (uint connectionTimeout) => nw_tcp_options_set_connection_timeout (GetHandle(), 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 (handle, persistTimeout);
public void TcpSetPersistTimeout (uint persistTimeout) => nw_tcp_options_set_persist_timeout (GetHandle(), 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 (handle, retransmitConnectionDropTime);
public void TcpSetRetransmitConnectionDropTime (uint retransmitConnectionDropTime) => nw_tcp_options_set_retransmit_connection_drop_time (GetHandle(), 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 (handle, retransmitFinDrop);
public void TcpSetRetransmitFinDrop (bool retransmitFinDrop) => nw_tcp_options_set_retransmit_fin_drop (GetHandle(), 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 (handle, disableAckStretching);
public void TcpSetDisableAckStretching (bool disableAckStretching) => nw_tcp_options_set_disable_ack_stretching (GetHandle(), 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 (handle, enableFastOpen);
public void TcpSetEnableFastOpen (bool enableFastOpen) => nw_tcp_options_set_enable_fast_open (GetHandle(), 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 (handle, disableEcn);
public void TcpSetDisableEcn (bool disableEcn) => nw_tcp_options_set_disable_ecn (GetHandle(), disableEcn);
[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 (handle, preferNoChecksums);
public void UdpSetPreferNoChecksum (bool preferNoChecksums) => nw_udp_options_set_prefer_no_checksum (GetHandle(), preferNoChecksums);
}
}

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

@ -60,28 +60,28 @@ namespace Network {
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 (handle), owns: true);
public NWProtocolDefinition ProtocolDefinition => new NWProtocolDefinition (nw_protocol_metadata_copy_definition (GetHandle()), 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 (handle);
public bool IsIP => nw_protocol_metadata_is_ip (GetHandle());
[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 (handle);
public bool IsUdp => nw_protocol_metadata_is_udp (GetHandle());
[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 (handle);
public bool IsTls => nw_protocol_metadata_is_tls (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -93,8 +93,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWIPEcnFlag IPMetadataEcnFlag {
get => nw_ip_metadata_get_ecn_flag (handle);
set => nw_ip_metadata_set_ecn_flag (handle, value);
get => nw_ip_metadata_get_ecn_flag (GetHandle());
set => nw_ip_metadata_set_ecn_flag (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -107,8 +107,8 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public NWServiceClass ServiceClass {
get => nw_ip_metadata_get_service_class (handle);
set => nw_ip_metadata_set_service_class (handle, value);
get => nw_ip_metadata_get_service_class (GetHandle());
set => nw_ip_metadata_set_service_class (GetHandle(), value);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -116,13 +116,13 @@ namespace Network {
extern static uint nw_tcp_get_available_receive_buffer (IntPtr handle);
[TV (12,0), Mac (10,14), iOS (12,0)]
public uint TcpGetAvaialbleReceiveBuffer () => nw_tcp_get_available_receive_buffer (handle);
public uint TcpGetAvaialbleReceiveBuffer () => nw_tcp_get_available_receive_buffer (GetHandle());
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
extern static 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 (handle);
public uint TcpGetAvailableSendBuffer () => nw_tcp_get_available_send_buffer (GetHandle());
}
}

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

@ -25,7 +25,7 @@ namespace Network {
[DllImport (Constants.NetworkLibrary)]
static extern OS_nw_protocol_definition nw_protocol_options_copy_definition (OS_nw_protocol_options options);
public NWProtocolDefinition ProtocolDefinition => new NWProtocolDefinition (nw_protocol_options_copy_definition (handle), owns: true);
public NWProtocolDefinition ProtocolDefinition => new NWProtocolDefinition (nw_protocol_options_copy_definition (GetHandle()), owns: true);
[TV (12,0), Mac (10,14), iOS (12,0)]
[DllImport (Constants.NetworkLibrary)]
@ -34,7 +34,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void SetVersion (NWIPVersion version)
{
nw_ip_options_set_version (handle, version);
nw_ip_options_set_version (GetHandle(), version);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -43,7 +43,7 @@ namespace Network {
public void SetHopLimit (byte hopLimit)
{
nw_ip_options_set_hop_limit (handle, hopLimit);
nw_ip_options_set_hop_limit (GetHandle(), hopLimit);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -53,7 +53,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void SetUseMinimumMtu (bool useMinimumMtu)
{
nw_ip_options_set_use_minimum_mtu (handle, useMinimumMtu);
nw_ip_options_set_use_minimum_mtu (GetHandle(), useMinimumMtu);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -63,7 +63,7 @@ namespace Network {
[TV (12,0), Mac (10,14), iOS (12,0)]
public void SetDisableFragmentation (bool disableFragmentation)
{
nw_ip_options_set_disable_fragmentation (handle, disableFragmentation);
nw_ip_options_set_disable_fragmentation (GetHandle(), disableFragmentation);
}

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

@ -32,7 +32,7 @@ namespace Network {
{
if (options == null)
throw new ArgumentNullException (nameof (options));
nw_protocol_stack_prepend_application_protocol (handle, options.Handle);
nw_protocol_stack_prepend_application_protocol (GetHandle(), options.Handle);
}
[TV (12,0), Mac (10,14), iOS (12,0)]
@ -41,7 +41,7 @@ namespace Network {
public void ClearApplicationProtocols ()
{
nw_protocol_stack_clear_application_protocols (handle);
nw_protocol_stack_clear_application_protocols (GetHandle());
}
delegate void nw_protocol_stack_iterate_protocols_block_t (IntPtr block, IntPtr options);
@ -71,7 +71,7 @@ namespace Network {
block_ptr_handler = &block_handler;
block_handler.SetupBlockUnsafe (static_iterateHandler, callback);
nw_protocol_stack_iterate_application_protocols (Handle, (void*) block_ptr_handler);
nw_protocol_stack_iterate_application_protocols (GetHandle(), (void*) block_ptr_handler);
block_ptr_handler->CleanupBlock ();
}
}
@ -86,8 +86,8 @@ namespace Network {
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
public NWProtocolOptions TransportProtocol {
get => new NWProtocolOptions (nw_protocol_stack_copy_transport_protocol (handle), owns: true);
set => nw_protocol_stack_set_transport_protocol (handle, value.Handle);
get => new NWProtocolOptions (nw_protocol_stack_copy_transport_protocol (GetHandle()), owns: true);
set => nw_protocol_stack_set_transport_protocol (GetHandle(), value.Handle);
}
[TV (12, 0), Mac (10, 14), iOS (12, 0)]
@ -95,6 +95,6 @@ namespace Network {
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 (handle), owns: true);
public NWProtocolOptions InternetProtocol => new NWProtocolOptions (nw_protocol_stack_copy_internet_protocol (GetHandle()), owns: true);
}
}