diff options
author | Jb Evain <jb@evain.net> | 2018-10-22 00:51:46 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2018-11-02 10:30:11 +0300 |
commit | c41cd66598eee4db1acdc9d8aa6452e58cd30f60 (patch) | |
tree | 32180b28a912b8cd7ee9e1c5a521b7234fc40a3b /mcs/class/Mono.Debugger.Soft | |
parent | 0e392596cf7b260887866cbee6e1dac36cb954d8 (diff) |
Make all invokable mirrors share an interface
Diffstat (limited to 'mcs/class/Mono.Debugger.Soft')
3 files changed, 13 insertions, 3 deletions
diff --git a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ObjectMirror.cs b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ObjectMirror.cs index 40015eb9671..826615d3187 100644 --- a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ObjectMirror.cs +++ b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ObjectMirror.cs @@ -22,7 +22,17 @@ namespace Mono.Debugger.Soft public Value[] OutArgs { get; set; } } - public class ObjectMirror : Value { + public interface IInvokable { + Value InvokeMethod (ThreadMirror thread, MethodMirror method, IList<Value> arguments); + Value InvokeMethod (ThreadMirror thread, MethodMirror method, IList<Value> arguments, InvokeOptions options); + IAsyncResult BeginInvokeMethod (ThreadMirror thread, MethodMirror method, IList<Value> arguments, InvokeOptions options, AsyncCallback callback, object state); + Value EndInvokeMethod (IAsyncResult asyncResult); + InvokeResult EndInvokeMethodWithResult (IAsyncResult asyncResult); + Task<Value> InvokeMethodAsync (ThreadMirror thread, MethodMirror method, IList<Value> arguments, InvokeOptions options = InvokeOptions.None); + Task<InvokeResult> InvokeMethodAsyncWithResult (ThreadMirror thread, MethodMirror method, IList<Value> arguments, InvokeOptions options = InvokeOptions.None); + } + + public class ObjectMirror : Value, IInvokable { TypeMirror type; AppDomainMirror domain; diff --git a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/StructMirror.cs b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/StructMirror.cs index 1744d20f20b..a72c15b5d27 100644 --- a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/StructMirror.cs +++ b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/StructMirror.cs @@ -7,7 +7,7 @@ namespace Mono.Debugger.Soft /* * Represents a valuetype value in the debuggee */ - public class StructMirror : Value { + public class StructMirror : Value, IInvokable { TypeMirror type; Value[] fields; diff --git a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/TypeMirror.cs b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/TypeMirror.cs index d59643a501a..33eebf5421c 100644 --- a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/TypeMirror.cs +++ b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/TypeMirror.cs @@ -12,7 +12,7 @@ namespace Mono.Debugger.Soft * It might be better to make this a subclass of Type, but that could be * difficult as some of our methods like GetMethods () return Mirror objects. */ - public class TypeMirror : Mirror + public class TypeMirror : Mirror, IInvokable { MethodMirror[] methods; AssemblyMirror ass; |