diff --git a/src/bindings/mono/eldbus_mono/eldbus_message.cs b/src/bindings/mono/eldbus_mono/eldbus_message.cs index 2bd7431c98..56fa30b9af 100644 --- a/src/bindings/mono/eldbus_mono/eldbus_message.cs +++ b/src/bindings/mono/eldbus_mono/eldbus_message.cs @@ -2,12 +2,14 @@ using System; using System.Runtime.InteropServices; +using System.ComponentModel; using static eldbus.EldbusMessageNativeFunctions; namespace eldbus { +[EditorBrowsable(EditorBrowsableState.Never)] public static class EldbusMessageNativeFunctions { [DllImport(efl.Libs.Eldbus)] public static extern IntPtr @@ -190,11 +192,11 @@ public static class EldbusMessageNativeFunctions /// Represents a DBus message. -/// -/// Since EFL 1.23. +/// Since EFL 1.23. /// public class Message : IDisposable { + [EditorBrowsable(EditorBrowsableState.Never)] public IntPtr Handle {get;set;} = IntPtr.Zero; public bool Own {get;set;} = true; @@ -213,16 +215,26 @@ public class Message : IDisposable } } + [EditorBrowsable(EditorBrowsableState.Never)] public Message(IntPtr handle, bool own) { InitNew(handle, own); } + /// Finalizes with garbage collector. + /// Since EFL 1.23. + /// ~Message() { Dispose(false); } + + /// Disposes of this wrapper, releasing the native if owned. + /// Since EFL 1.23. + /// + /// True if this was called from public method. False if + /// called from the C# finalizer. protected virtual void Dispose(bool disposing) { IntPtr h = Handle; @@ -245,17 +257,28 @@ public class Message : IDisposable } } + /// Releases the native resources held by this instance. + /// Since EFL 1.23. + /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } + /// Releases the native resources held by this instance. + /// Since EFL 1.23. + /// public void Free() { Dispose(); } + /// + /// Releases the native handler. + /// Since EFL 1.23. + /// + /// The native handler. public IntPtr Release() { IntPtr h = Handle; @@ -263,6 +286,15 @@ public class Message : IDisposable return h; } + /// + /// Create a new message to invoke a method on a remote object. + /// Since EFL 1.23. + /// + /// The bus name or unique id of the remote application. + /// The object path. + /// The interface name. + /// The name of the method to be called. + /// A new . public static eldbus.Message NewMethodCall(string dest, string path, string iface, string method) { var ptr = eldbus_message_method_call_new(dest, path, iface, method); @@ -274,6 +306,14 @@ public class Message : IDisposable return new eldbus.Message(ptr, true); } + /// + /// Create a new signal message. + /// Since EFL 1.23. + /// + /// The object path. + /// The interface name. + /// The name of the signal to be broadcasted. + /// A new . public static eldbus.Message NewSignal(string path, string _interface, string name) { var ptr = eldbus_message_signal_new(path, _interface, name); @@ -285,18 +325,31 @@ public class Message : IDisposable return new eldbus.Message(ptr, true); } + /// + /// Increase message reference. + /// Since EFL 1.23. + /// public void Ref() { CheckHandle(); eldbus_message_ref(Handle); } + /// + /// Decrease message reference. + /// Since EFL 1.23. + /// public void Unref() { CheckHandle(); eldbus_message_unref(Handle); } + /// + /// Get the eldbus message path. + /// Since EFL 1.23. + /// + /// A string containing the dbus message path. public string GetPath() { CheckHandle(); @@ -304,6 +357,11 @@ public class Message : IDisposable return Eina.StringConversion.NativeUtf8ToManagedString(ptr); } + /// + /// The eldbus message interface. + /// Since EFL 1.23. + /// + /// A string containing the dbus message interface. public string GetInterface() { CheckHandle(); @@ -311,6 +369,11 @@ public class Message : IDisposable return Eina.StringConversion.NativeUtf8ToManagedString(ptr); } + /// + /// Get the eldbus message member. + /// Since EFL 1.23. + /// + /// A string containing the dbus message destination. public string GetMember() { CheckHandle(); @@ -318,6 +381,11 @@ public class Message : IDisposable return Eina.StringConversion.NativeUtf8ToManagedString(ptr); } + /// + /// Get the eldbus message destination. + /// Since EFL 1.23. + /// + /// A string containing the dbus message destination. public string GetDestination() { CheckHandle(); @@ -325,6 +393,11 @@ public class Message : IDisposable return Eina.StringConversion.NativeUtf8ToManagedString(ptr); } + /// + /// Get the eldbus message sender. + /// Since EFL 1.23. + /// + /// A string containing the dbus message sender. public string GetSender() { CheckHandle(); @@ -332,6 +405,11 @@ public class Message : IDisposable return Eina.StringConversion.NativeUtf8ToManagedString(ptr); } + /// + /// Get the eldbus message signature. + /// Since EFL 1.23. + /// + /// A string containing the dbus message signature. public string GetSignature() { CheckHandle(); @@ -339,6 +417,13 @@ public class Message : IDisposable return Eina.StringConversion.NativeUtf8ToManagedString(ptr); } + /// + /// Create a new message that is an error reply to another message. + /// Since EFL 1.23. + /// + /// The error name. + /// The error message string. + /// A new . public eldbus.Message NewError(string error_name, string error_msg) { CheckHandle(); @@ -351,6 +436,11 @@ public class Message : IDisposable return new eldbus.Message(ptr, false); } + /// + /// Create a message that is a reply to a method call. + /// Since EFL 1.23. + /// + /// A new . public eldbus.Message NewMethodReturn() { CheckHandle(); @@ -363,6 +453,13 @@ public class Message : IDisposable return new eldbus.Message(ptr, false); } + /// + /// Get the error text and name from a . + /// Since EFL 1.23. + /// + /// Store the error name. + /// Store the error text.. + /// true on success, false otherwise. public bool GetError(out string name, out string text) { CheckHandle(); @@ -374,12 +471,24 @@ public class Message : IDisposable return r; } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A byte that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out byte val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.ByteType.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A bool that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out bool val) { CheckHandle(); @@ -389,48 +498,96 @@ public class Message : IDisposable return r; } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A int16 that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out Int16 val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.Int16Type.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A unsigned int16 that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out UInt16 val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.UInt16Type.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A int32 that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out Int32 val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.Int32Type.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A unsigned int32 that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out UInt32 val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.UInt32Type.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A int64 that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out Int64 val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.Int64Type.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A unsigned int64 that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out UInt64 val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.UInt64Type.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A double that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out double val) { CheckHandle(); return eldbus_message_arguments_get(Handle, Argument.DoubleType.Signature, out val); } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A string that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out string val) { CheckHandle(); @@ -440,6 +597,12 @@ public class Message : IDisposable return r; } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out eldbus.ObjectPath val) { CheckHandle(); @@ -449,6 +612,12 @@ public class Message : IDisposable return r; } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out eldbus.SignatureString val) { CheckHandle(); @@ -458,6 +627,12 @@ public class Message : IDisposable return r; } + /// + /// Get the arguments from an . + /// Since EFL 1.23. + /// + /// A that store the message arguments. + /// true if the arguments were read successfully. public bool Get(out eldbus.UnixFd val) { CheckHandle(); @@ -467,6 +642,11 @@ public class Message : IDisposable return r; } + /// + /// Appends the arguments. + /// Since EFL 1.23. + /// + /// The arguments to be appended. public void Append(params BasicMessageArgument[] args) { CheckHandle(); @@ -476,12 +656,23 @@ public class Message : IDisposable } } + /// + /// Create and append a typed iterator to another iterator. + /// Since EFL 1.23. + /// + /// The signature to be appended. + /// A . public eldbus.MessageIterator AppendOpenContainer(string signature) { var iter = GetMessageIterator(); return iter.AppendOpenContainer(signature); } + /// + /// Get the main from the . + /// Since EFL 1.23. + /// + /// A public eldbus.MessageIterator GetMessageIterator() { CheckHandle(); @@ -495,9 +686,19 @@ public class Message : IDisposable } } +/// +/// Iterator to a . +/// Since EFL 1.23. +/// public class MessageIterator { + [EditorBrowsable(EditorBrowsableState.Never)] public IntPtr Handle {get;set;} = IntPtr.Zero; + + /// + /// The parent of the iterator. + /// Since EFL 1.23. + /// public IntPtr Parent {get;set;} = IntPtr.Zero; private void InitNew(IntPtr handle, IntPtr parent) @@ -515,11 +716,17 @@ public class MessageIterator } } + [EditorBrowsable(EditorBrowsableState.Never)] public MessageIterator(IntPtr handle, IntPtr parent) { InitNew(handle, parent); } + /// + /// Releases the native handler. + /// Since EFL 1.23. + /// + /// The native handler. public IntPtr Release() { IntPtr h = Handle; @@ -528,6 +735,11 @@ public class MessageIterator return h; } + /// + /// Appends the arguments. + /// Since EFL 1.23. + /// + /// The arguments to be appended. public void Append(params BasicMessageArgument[] args) { CheckHandle(); @@ -538,6 +750,12 @@ public class MessageIterator } } + /// + /// Create and append a typed iterator to another iterator. + /// Since EFL 1.23. + /// + /// The signature to be appended. + /// A . public eldbus.MessageIterator AppendOpenContainer(string signature) { CheckHandle(); @@ -561,6 +779,13 @@ public class MessageIterator return new eldbus.MessageIterator(new_iter, Handle); } + /// + /// Appends a signature to a container. + /// Since EFL 1.23. + /// + /// The type of the iterator. + /// The signature to be appended. + /// A . public eldbus.MessageIterator AppendOpenContainer(char type, string contained_signature) { CheckHandle(); @@ -575,6 +800,10 @@ public class MessageIterator return new eldbus.MessageIterator(new_iter, Handle); } + /// + /// Closes a container-typed value appended to the message. + /// Since EFL 1.23. + /// public void CloseContainer() { CheckHandle(); @@ -593,17 +822,38 @@ public class MessageIterator Parent = IntPtr.Zero; } + /// + /// Returns the current signature of a message iterator. + /// Since EFL 1.23. + /// + /// A string containing the message iterator signature. public string GetSignature() { return eldbus_message_iter_signature_get(Handle); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A byte that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out byte val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.ByteType.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A bool that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out bool val) { CheckHandle(); @@ -613,48 +863,112 @@ public class MessageIterator return r; } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A int16 that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out Int16 val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.Int16Type.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A unsigned int16 that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out UInt16 val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.UInt16Type.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A int32 that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out Int32 val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.Int32Type.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A unsigned int32 that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out UInt32 val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.UInt32Type.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A int64 that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out Int64 val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.Int64Type.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A unsigned int64 that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out UInt64 val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.UInt64Type.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A double that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out double val) { CheckHandle(); return eldbus_message_iter_get_and_next(Handle, Argument.DoubleType.Code, out val); } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A string that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out string val) { CheckHandle(); @@ -664,6 +978,14 @@ public class MessageIterator return r; } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out eldbus.ObjectPath val) { CheckHandle(); @@ -673,6 +995,14 @@ public class MessageIterator return r; } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out eldbus.SignatureString val) { CheckHandle(); @@ -682,6 +1012,14 @@ public class MessageIterator return r; } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A that store the data. + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out eldbus.UnixFd val) { CheckHandle(); @@ -691,6 +1029,17 @@ public class MessageIterator return r; } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A that store + /// the data. + /// The type of the + /// . + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out eldbus.MessageIterator iter, char typecode) { CheckHandle(); @@ -706,6 +1055,17 @@ public class MessageIterator return r; } + /// + /// Get a complete type from if is + /// not at the end of iterator and move to next field. + /// Since EFL 1.23. + /// + /// A that store + /// the data. + /// The signatue of the + /// . + /// if iterator was reach to end or if the type different of the + /// type that iterator pointes return false. public bool GetAndNext(out eldbus.MessageIterator iter, string signatue) { CheckHandle(); @@ -720,12 +1080,22 @@ public class MessageIterator return Next(); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out byte val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out bool val) { CheckHandle(); @@ -734,48 +1104,88 @@ public class MessageIterator val = (aux != 0); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out Int16 val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out UInt16 val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out Int32 val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out UInt32 val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out Int64 val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out UInt64 val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out double val) { CheckHandle(); eldbus_message_iter_basic_get(Handle, out val); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out string val) { CheckHandle(); @@ -784,6 +1194,11 @@ public class MessageIterator val = Eina.StringConversion.NativeUtf8ToManagedString(aux); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out eldbus.ObjectPath val) { CheckHandle(); @@ -792,6 +1207,11 @@ public class MessageIterator val = Eina.StringConversion.NativeUtf8ToManagedString(aux); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out eldbus.SignatureString val) { CheckHandle(); @@ -800,6 +1220,11 @@ public class MessageIterator val = Eina.StringConversion.NativeUtf8ToManagedString(aux); } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. public void Get(out eldbus.UnixFd val) { CheckHandle(); @@ -808,6 +1233,12 @@ public class MessageIterator val = aux; } + /// + /// Get a basic type from . + /// Since EFL 1.23. + /// + /// The basic type of the iterator. + /// The signatue of the . public void Get(out eldbus.MessageIterator iter, string signatue) { CheckHandle(); @@ -820,12 +1251,21 @@ public class MessageIterator iter = new eldbus.MessageIterator(hdl, Handle); } + /// + /// Moves the iterator to the next field, if any. + /// Since EFL 1.23. + /// + /// If iterator was reach to end return false. public bool Next() { CheckHandle(); return eldbus_message_iter_next(Handle); } + /// + /// Manually delete the iterator. + /// Since EFL 1.23. + /// public void Del() { CheckHandle(); @@ -846,6 +1286,11 @@ public class MessageIterator } } + /// + /// Copy the iterator to a given array. + /// Since EFL 1.23. + /// + /// The array to receive the copy. public void GetFixedArray(out byte[] array) { IntPtr value; @@ -855,6 +1300,11 @@ public class MessageIterator Marshal.Copy(value, array, 0, n_elements); } + /// + /// Copy the iterator to a given array. + /// Since EFL 1.23. + /// + /// The array to receive the copy. public void GetFixedArray(out bool[] array) { IntPtr value; @@ -867,6 +1317,11 @@ public class MessageIterator array = Array.ConvertAll(aux, Convert.ToBoolean); } + /// + /// Copy the iterator to a given array. + /// Since EFL 1.23. + /// + /// The array to receive the copy. public void GetFixedArray(out Int16[] array) { IntPtr value; @@ -885,6 +1340,11 @@ public class MessageIterator // Marshal.Copy(value, array, 0, n_elements); // } + /// + /// Copy the iterator to a given array. + /// Since EFL 1.23. + /// + /// The array to receive the copy. public void GetFixedArray(out Int32[] array) { IntPtr value; @@ -903,6 +1363,11 @@ public class MessageIterator // Marshal.Copy(value, array, 0, n_elements); // } + /// + /// Copy the iterator to a given array. + /// Since EFL 1.23. + /// + /// The array to receive the copy. public void GetFixedArray(out Int64[] array) { IntPtr value; @@ -921,6 +1386,11 @@ public class MessageIterator // Marshal.Copy(value, array, 0, n_elements); // } + /// + /// Copy the iterator to a given array. + /// Since EFL 1.23. + /// + /// The array to receive the copy. public void GetFixedArray(out eldbus.UnixFd[] array) { IntPtr value;