Xamarin.Mac SDK API diff: 6.8.3 vs 6.10.0

Xamarin.Mac.dll

Namespace Network

Type Changed: Network.NWFramer

Added properties:

public System.Action<NWFramer> CleanupHandler { set; }
public NWEndpoint Endpoint { get; }
public NWFramerInputDelegate InputHandler { set; }
public NWEndpoint LocalEndpoint { get; }
public System.Action<NWFramer,Network.NWFramerMessage,System.nuint,System.Boolean> OutputHandler { set; }
public NWParameters Parameters { get; }
public System.Action<NWFramer> StopHandler { set; }
public System.Action<NWFramer> WakeupHandler { set; }

Added methods:

public static T CreateOptions<T> (NWProtocolDefinition protocolDefinition);
public void DeliverInput (System.ReadOnlySpan<byte> buffer, NWFramerMessage message, bool isComplete);
public bool DeliverInputNoCopy (nuint length, NWFramerMessage message, bool isComplete);
public void MarkFailedWithError (int errorCode);
public void MarkReady ();
public bool ParseInput (nuint minimumIncompleteLength, nuint maximumLength, System.Memory<byte> tempBuffer, NWFramerParseCompletionDelegate handler);
public bool ParseOutput (nuint minimumIncompleteLength, nuint maximumLength, System.Memory<byte> tempBuffer, System.Action<System.Memory<byte>> handler);
public void PassThroughInput ();
public void PassThroughOutput ();
public bool PrependApplicationProtocol (NWProtocolOptions options);
public void ScheduleAsync (System.Action handler);
public void ScheduleWakeup (ulong milliseconds);
public void WriteOutput (CoreFoundation.DispatchData data);
public void WriteOutput (System.ReadOnlySpan<byte> data);
public bool WriteOutputNoCopy (nuint outputLength);

Type Changed: Network.NWParameters

Added method:

public static NWParameters CreateCustomIP (byte protocolNumber, System.Action<NWProtocolOptions> configureCustomIP);

New Type: Network.NWEthernetChannel

public class NWEthernetChannel : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWEthernetChannel (ushort ethernetType, NWInterface networkInterface);
	// methods
	public void Cancel ();
	public void Send (System.ReadOnlySpan<byte> content, ushort vlanTag, string remoteAddress, System.Action<NWError> callback);
	public void SetQueue (CoreFoundation.DispatchQueue queue);
	public void SetReceiveHandler (NWEthernetChannelReceiveDelegate handler);
	public void SetStateChangesHandler (System.Action<NWBrowserState,Network.NWError> handler);
	public void Start ();
}

New Type: Network.NWEthernetChannelReceiveDelegate

public sealed delegate NWEthernetChannelReceiveDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWEthernetChannelReceiveDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (CoreFoundation.DispatchData content, ushort vlanTag, string localAddress, string remoteAddress, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (CoreFoundation.DispatchData content, ushort vlanTag, string localAddress, string remoteAddress);
}

New Type: Network.NWEthernetChannelState

[Serializable]
public enum NWEthernetChannelState {
	Cancelled = 5,
	Failed = 4,
	Invalid = 0,
	Preparing = 2,
	Ready = 3,
	Waiting = 1,
}

New Type: Network.NWFramerInputDelegate

public sealed delegate NWFramerInputDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWFramerInputDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NWFramer framer, System.AsyncCallback callback, object object);
	public virtual nuint EndInvoke (System.IAsyncResult result);
	public virtual nuint Invoke (NWFramer framer);
}

New Type: Network.NWFramerParseCompletionDelegate

public sealed delegate NWFramerParseCompletionDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NWFramerParseCompletionDelegate (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (System.Memory<byte> buffer, bool isCompleted, System.AsyncCallback callback, object object);
	public virtual nuint EndInvoke (System.IAsyncResult result);
	public virtual nuint Invoke (System.Memory<byte> buffer, bool isCompleted);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "6.8.3";
+public const string Version = "6.10.0";

Type Changed: ObjCRuntime.Runtime

Added method:

public static T GetINativeObject<T> (IntPtr ptr, bool forced_type, bool owns);