-
Notifications
You must be signed in to change notification settings - Fork 64
Expand file tree
/
Copy pathWriteMethodWithCharSequenceArrays.txt
More file actions
81 lines (71 loc) · 3.86 KB
/
WriteMethodWithCharSequenceArrays.txt
File metadata and controls
81 lines (71 loc) · 3.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// Metadata.xml XPath class reference: path="/api/package[@name='com.example']/class[@name='MyClass']"
[global::Android.Runtime.Register ("com/example/MyClass", DoNotGenerateAcw=true)]
public partial class MyClass : Java.Lang.Object {
static readonly JniPeerMembers _members = new XAPeerMembers ("com/example/MyClass", typeof (MyClass));
internal static new IntPtr class_ref {
get { return _members.JniPeerType.PeerReference.Handle; }
}
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
get { return _members; }
}
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
protected override IntPtr ThresholdClass {
get { return _members.JniPeerType.PeerReference.Handle; }
}
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
protected override global::System.Type ThresholdType {
get { return _members.ManagedPeerType; }
}
protected MyClass (IntPtr javaReference, JniHandleOwnership transfer) : base (javaReference, transfer)
{
}
static Delegate? cb_echo_arrayLjava_lang_CharSequence_;
#pragma warning disable 0169
static Delegate GetEcho_arrayLjava_lang_CharSequence_Handler ()
{
if (cb_echo_arrayLjava_lang_CharSequence_ == null)
cb_echo_arrayLjava_lang_CharSequence_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_L (n_Echo_arrayLjava_lang_CharSequence_));
return cb_echo_arrayLjava_lang_CharSequence_;
}
static IntPtr n_Echo_arrayLjava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_messages)
{
var __this = global::Java.Lang.Object.GetObject<Com.Example.MyClass> (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!;
var messages = (Java.Lang.ICharSequence[]?) JNIEnv.GetArray (native_messages, JniHandleOwnership.DoNotTransfer, typeof (Java.Lang.ICharSequence));
IntPtr __ret = JNIEnv.NewArray (__this.EchoFormatted (messages));
if (messages != null)
JNIEnv.CopyArray (messages, native_messages);
return __ret;
}
#pragma warning restore 0169
// Metadata.xml XPath method reference: path="/api/package[@name='com.example']/class[@name='MyClass']/method[@name='echo' and count(parameter)=1 and parameter[1][@type='java.lang.CharSequence[]']]"
[Register ("echo", "([Ljava/lang/CharSequence;)[Ljava/lang/CharSequence;", "GetEcho_arrayLjava_lang_CharSequence_Handler")]
public virtual unsafe Java.Lang.ICharSequence[]? EchoFormatted (Java.Lang.ICharSequence[]? messages)
{
const string __id = "echo.([Ljava/lang/CharSequence;)[Ljava/lang/CharSequence;";
IntPtr native_messages = JNIEnv.NewArray (messages);
try {
JniArgumentValue* __args = stackalloc JniArgumentValue [1];
__args [0] = new JniArgumentValue (native_messages);
var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
return (Java.Lang.ICharSequence[]?) JNIEnv.GetArray (__rm.Handle, JniHandleOwnership.TransferLocalRef, typeof (Java.Lang.ICharSequence));
} finally {
if (messages != null) {
JNIEnv.CopyArray (native_messages, messages);
JNIEnv.DeleteLocalRef (native_messages);
}
global::System.GC.KeepAlive (messages);
}
}
public string[]? Echo (string[]? messages)
{
var jlca_messages = CharSequence.ArrayFromStringArray (messages);
Java.Lang.ICharSequence[]? __result = EchoFormatted (jlca_messages);
var __rsval = CharSequence.ArrayToStringArray (__result);
if (jlca_messages != null) foreach (var s in jlca_messages) s?.Dispose ();
return __rsval;
}
}