From: Frederik Carlier Date: Fri, 19 Feb 2016 15:18:42 +0000 (+0100) Subject: Add placeholders for missing methods: X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=3309b3cb839a3efa1710144d4d1535cbaa757144;p=mono.git Add placeholders for missing methods: * WSDualHttpBinding: Add additional constructor overloads to match .NET 4.5 * Dispatcher: Add support for the various InvokeAsync methods --- diff --git a/mcs/class/System.ServiceModel/System.ServiceModel/WSDualHttpBinding.cs b/mcs/class/System.ServiceModel/System.ServiceModel/WSDualHttpBinding.cs index a531b34cf61..789a602e9df 100644 --- a/mcs/class/System.ServiceModel/System.ServiceModel/WSDualHttpBinding.cs +++ b/mcs/class/System.ServiceModel/System.ServiceModel/WSDualHttpBinding.cs @@ -58,7 +58,12 @@ namespace System.ServiceModel { } - protected WSDualHttpBinding (WSDualHttpSecurityMode securityMode) + public WSDualHttpBinding(string configName) + : this (WSDualHttpSecurityMode.Message) + { + } + + public WSDualHttpBinding (WSDualHttpSecurityMode securityMode) { security = new WSDualHttpSecurity (securityMode); } diff --git a/mcs/class/WindowsBase/System.Windows.Threading/Dispatcher.cs b/mcs/class/WindowsBase/System.Windows.Threading/Dispatcher.cs index a28f7a29d0d..1eeb9c9a368 100644 --- a/mcs/class/WindowsBase/System.Windows.Threading/Dispatcher.cs +++ b/mcs/class/WindowsBase/System.Windows.Threading/Dispatcher.cs @@ -1,22 +1,22 @@ // TODO: -// DispatcherObject returned by BeginInvoke must allow: -// * Waiting until delegate is invoked. -// See: BeginInvoke documentation for details +// DispatcherObject returned by BeginInvoke must allow: +// * Waiting until delegate is invoked. +// See: BeginInvoke documentation for details // -// Implement the "Invoke" methods, they are currently not working. +// Implement the "Invoke" methods, they are currently not working. // -// Add support for disabling the dispatcher and resuming it. -// Add support for Waiting for new tasks to be pushed, so that we dont busy loop. -// Add support for aborting an operation (emit the hook.operationaborted too) +// Add support for disabling the dispatcher and resuming it. +// Add support for Waiting for new tasks to be pushed, so that we dont busy loop. +// Add support for aborting an operation (emit the hook.operationaborted too) // // Very confusing information about Shutdown: it states that shutdown is // not over, until all events are unwinded, and also states that all events // are aborted at that point. See 'Dispatcher.InvokeShutdown' docs, // // Testing reveals that -// -> InvokeShutdown() stops processing, even if events are available, -// there is no "unwinding" of events, even of higher priority events, -// they are just ignored. +// -> InvokeShutdown() stops processing, even if events are available, +// there is no "unwinding" of events, even of higher priority events, +// they are just ignored. // // The documentation for the Dispatcher family is poorly written, complete // sections are cut-and-pasted that add no value and the important pieces @@ -43,9 +43,11 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // // Copyright (c) 2006 Novell, Inc. (http://www.novell.com) +// Copyright (c) 2016 Quamotion (http://quamotion.mobi) // // Authors: // Miguel de Icaza (miguel@novell.com) +// Frederik Carlier (frederik.carlier@quamotion.mobi) // using System; using System.Collections; @@ -181,6 +183,21 @@ namespace System.Windows.Threading { return op; } + public DispatcherOperation InvokeAsync (Action callback) + { + return this.BeginInvoke(callback); + } + + public DispatcherOperation InvokeAsync (Action callback, DispatcherPriority priority) + { + return this.BeginInvoke(callback, priority); + } + + public DispatcherOperation InvokeAsync (Action callback, DispatcherPriority priority, CancellationToken cancellationToken) + { + return this.BeginInvoke(callback, priority); + } + public object Invoke (Delegate method, params object[] args) { throw new NotImplementedException (); @@ -521,32 +538,33 @@ namespace System.Windows.Threading { public void Enqueue (object obj) { - if (size == array.Length) - Grow (); - array[tail] = obj; - tail = (tail+1) % array.Length; - size++; + if (size == array.Length) + Grow (); + array[tail] = obj; + tail = (tail+1) % array.Length; + size++; } public object Dequeue () - { - if (size < 1) - throw new InvalidOperationException (); - object result = array[head]; - array [head] = null; - head = (head + 1) % array.Length; - size--; - return result; - } - - void Grow () { - int newc = array.Length * 2; - object[] new_contents = new object[newc]; - array.CopyTo (new_contents, 0); - array = new_contents; - head = 0; - tail = head + size; - } + { + if (size < 1) + throw new InvalidOperationException (); + object result = array[head]; + array [head] = null; + head = (head + 1) % array.Length; + size--; + return result; + } + + void Grow () + { + int newc = array.Length * 2; + object[] new_contents = new object[newc]; + array.CopyTo (new_contents, 0); + array = new_contents; + head = 0; + tail = head + size; + } public int Count { get { diff --git a/mcs/class/WindowsBase/System.Windows.Threading/DispatcherOperation.cs b/mcs/class/WindowsBase/System.Windows.Threading/DispatcherOperation.cs index 5c06c41ac26..36299db37d2 100644 --- a/mcs/class/WindowsBase/System.Windows.Threading/DispatcherOperation.cs +++ b/mcs/class/WindowsBase/System.Windows.Threading/DispatcherOperation.cs @@ -29,6 +29,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Security; using System.Threading; +using System.Threading.Tasks; namespace System.Windows.Threading { @@ -90,6 +91,12 @@ namespace System.Windows.Threading { throw new NotImplementedException (); } + public Task Task { + get { + throw new NotImplementedException(); + } + } + public DispatcherOperationStatus Status { get { return status;