diff --git a/src/bindings/mono/eldbus_mono/eldbus_connection.cs b/src/bindings/mono/eldbus_mono/eldbus_connection.cs
index 955bd0a80e..c2120600d3 100644
--- a/src/bindings/mono/eldbus_mono/eldbus_connection.cs
+++ b/src/bindings/mono/eldbus_mono/eldbus_connection.cs
@@ -1,554 +1,554 @@
/*
* Copyright 2019 by its authors. See AUTHORS.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma warning disable 1591
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using static eldbus.EldbusConnectionNativeFunctions;
namespace eldbus
{
[EditorBrowsable(EditorBrowsableState.Never)]
-public static class EldbusConnectionNativeFunctions
+internal static class EldbusConnectionNativeFunctions
{
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_connection_get(eldbus.Connection.Type type);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_private_connection_get(eldbus.Connection.Type type);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_address_connection_get(string address);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_private_address_connection_get(string address);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_connection_ref(IntPtr conn);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_connection_unref(IntPtr conn);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_connection_free_cb_add(IntPtr conn, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_connection_free_cb_del(IntPtr conn, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_connection_data_set(IntPtr conn, IntPtr key, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_connection_data_get(IntPtr conn, IntPtr key);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_connection_data_del(IntPtr conn, IntPtr key);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_connection_event_callback_add(IntPtr conn, int type, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_connection_event_callback_del(IntPtr conn, int type, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_connection_send(IntPtr conn, IntPtr msg, IntPtr cb, IntPtr cb_data, double timeout);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_connection_unique_name_get(IntPtr conn);
// FreeDesktop.Org Methods
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_name_request(IntPtr conn, string bus, uint flags, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_name_release(IntPtr conn, string bus, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_name_owner_get(IntPtr conn, string bus, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_name_owner_has(IntPtr conn, string bus, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_names_list(IntPtr conn, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_names_activatable_list(IntPtr conn, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_hello(IntPtr conn, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_name_start(IntPtr conn, string bus, uint flags, IntPtr cb, IntPtr cb_data);
// typedef void (*Eldbus_Name_Owner_Changed_Cb)(void *data, const char *bus, const char *old_id, const char *new_id);
// [DllImport(efl.Libs.Eldbus)] public static extern void
// eldbus_name_owner_changed_callback_add(IntPtr conn, string bus, Eldbus_Name_Owner_Changed_Cb cb, IntPtr cb_data, [MarshalAs(UnmanagedType.U1)] bool allow_initial_call);
// [DllImport(efl.Libs.Eldbus)] public static extern void
// eldbus_name_owner_changed_callback_del(IntPtr conn, string bus, Eldbus_Name_Owner_Changed_Cb cb, IntPtr cb_data);
}
/// Represents a DBus connection.
/// Since EFL 1.23.
///
public class Connection : IDisposable
{
///
/// The type of the Connection.
/// Since EFL 1.23.
///
public enum Type
{
///
/// Unknown type.
/// It's a sentinel.
/// Since EFL 1.23.
///
Unknown = 0, // sentinel, not a real type
///
/// Session type.
/// Since EFL 1.23.
///
Session,
///
/// System type.
/// Since EFL 1.23.
///
System,
///
/// Starter type.
/// Since EFL 1.23.
///
Starter,
///
/// Address type.
/// Since EFL 1.23.
///
Address,
///
/// Last type.
/// It's a sentinel.
/// Since EFL 1.23.
///
Last // sentinel, not a real type
};
[EditorBrowsable(EditorBrowsableState.Never)]
public IntPtr Handle {get;set;} = IntPtr.Zero;
/// Whether this wrapper owns the native handle.
/// Since EFL 1.23.
///
public bool Own {get;set;} = true;
private void InitNew(IntPtr handle, bool own)
{
Handle = handle;
Own = own;
CheckHandle();
}
private void CheckHandle()
{
if (Handle == IntPtr.Zero)
{
eldbus.Common.RaiseNullHandle();
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public Connection(IntPtr handle, bool own)
{
InitNew(handle, own);
}
///
/// Constructor.
/// Since EFL 1.23.
///
/// The type of the connection.
public Connection(eldbus.Connection.Type type)
{
InitNew(eldbus_connection_get(type), true);
}
///
/// Constructor.
/// Since EFL 1.23.
///
/// The address of the connection.
public Connection(string address)
{
InitNew(eldbus_address_connection_get(address), true);
}
///
/// Gets a Connection with a type.
/// Since EFL 1.23.
///
///
/// A Connection with the type.
public static eldbus.Connection GetPrivate(eldbus.Connection.Type type)
{
return new eldbus.Connection(eldbus_private_connection_get(type), true);
}
///
/// Gets a Connection with a address.
/// Since EFL 1.23.
///
/// The address of the connection.
public static eldbus.Connection GetPrivate(string address)
{
return new eldbus.Connection(eldbus_private_address_connection_get(address), true);
}
///
/// Finalizer to be called from the Garbage Collector.
/// Since EFL 1.23.
///
~Connection()
{
Dispose(false);
}
/// Disposes of this wrapper, releasing the native array 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;
Handle = IntPtr.Zero;
if (h == IntPtr.Zero)
{
return;
}
if (Own)
{
if (disposing)
{
eldbus_connection_unref(h);
}
else
{
Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_connection_unref, h);
}
}
}
/// 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;
Handle = IntPtr.Zero;
return h;
}
///
/// Send a message.
/// Since EFL 1.23.
///
/// The message that will be sent.
/// The function that is executed when a response arrives..
/// The timeout of the message.
/// A
public eldbus.Pending Send(eldbus.Message msg, eldbus.MessageDelegate dlgt = null, double timeout = -1)
{
CheckHandle();
if (msg == null)
{
throw new ArgumentNullException("msg");
}
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_connection_send(Handle, msg.Handle, cb_wrapper, cb_data, timeout);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_connection_send");
}
msg.Ref();
return new eldbus.Pending(pending_hdl, false);
}
///
/// Gets a unique name assigned by the message bus.
/// Since EFL 1.23.
///
/// The unique name string.
public string GetUniqueName()
{
CheckHandle();
var ptr = eldbus_connection_unique_name_get(Handle);
if (ptr == IntPtr.Zero)
{
return null;
}
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// Send a RequestName method.
/// Since EFL 1.23.
///
/// The name of the bus.
/// Parameter of the RequestName method.
/// The function to call when receiving answer.
/// A
public eldbus.Pending NameRequest(string bus, uint flags, eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
if (bus == null)
{
throw new ArgumentNullException("bus");
}
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_name_request(Handle, bus, flags, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_name_request");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send a ReleaseName method.
/// Since EFL 1.23.
///
/// The name of the bus.
/// The function to call when receiving answer.
/// A
public eldbus.Pending NameRelease(string bus, eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
if (bus == null)
{
throw new ArgumentNullException("bus");
}
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_name_release(Handle, bus, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_name_release");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send a GetNameOwner method.
/// Since EFL 1.23.
///
/// The name of the bus.
/// The function to call when receiving answer.
/// A
public eldbus.Pending GetNameOwner(string bus, eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
if (bus == null)
{
throw new ArgumentNullException("bus");
}
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_name_owner_get(Handle, bus, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_name_owner_get");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send NameHasOwner method.
/// Since EFL 1.23.
///
/// The name of the bus.
/// The function to call when receiving the answer.
/// A
public eldbus.Pending HasNameOwner(string bus, eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
if (bus == null)
{
throw new ArgumentNullException("bus");
}
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_name_owner_has(Handle, bus, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_name_owner_has");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send ListNames method.
/// Since EFL 1.23.
///
/// The function to call when receiving answer.
/// A
public eldbus.Pending NameList(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_names_list(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_names_list");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send ListActivatableNames method.
/// Since EFL 1.23.
///
/// The function to call when receiving a method.
/// A
public eldbus.Pending ActivatableList(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_names_activatable_list(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_names_activatable_list");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send Hello method.
/// Since EFL 1.23.
///
/// The function to call when receiving answer.
/// A
public eldbus.Pending Hello(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_hello(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_hello");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Send StartServiceByName method.
/// Since EFL 1.23.
///
/// The name of the bus.
/// Parameter of the StartServiceByName.
/// The function to call when receiving answer.
/// A
public eldbus.Pending NameStart(string bus, uint flags, eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
if (bus == null)
{
throw new ArgumentNullException("bus");
}
IntPtr cb_wrapper = (dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr());
IntPtr cb_data = (dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt));
var pending_hdl = eldbus_name_start(Handle, bus, flags, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_name_start");
}
return new eldbus.Pending(pending_hdl, false);
}
}
}
diff --git a/src/bindings/mono/eldbus_mono/eldbus_message.cs b/src/bindings/mono/eldbus_mono/eldbus_message.cs
index 9a83666f38..71baf6d83f 100644
--- a/src/bindings/mono/eldbus_mono/eldbus_message.cs
+++ b/src/bindings/mono/eldbus_mono/eldbus_message.cs
@@ -1,1421 +1,1421 @@
/*
* Copyright 2019 by its authors. See AUTHORS.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma warning disable 1591
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using static eldbus.EldbusMessageNativeFunctions;
namespace eldbus
{
[EditorBrowsable(EditorBrowsableState.Never)]
-public static class EldbusMessageNativeFunctions
+internal static class EldbusMessageNativeFunctions
{
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_ref(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_unref(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_path_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_interface_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_member_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_destination_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_sender_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_signature_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_method_call_new(string dest, string path, string iface, string method);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_signal_new(string path, string _interface, string name);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_error_new(IntPtr msg, string error_name, string error_msg);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_method_return_new(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_error_get(IntPtr msg, out IntPtr name, out IntPtr text);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out byte value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out Int16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out UInt16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out Int32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out UInt32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out Int64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out UInt64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out double value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_get(IntPtr msg, string signature, out IntPtr value);
// [DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
// eldbus_message_arguments_vget(IntPtr msg, string signature, va_list ap);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, byte value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, Int16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, UInt16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, Int32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, UInt32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, Int64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, UInt64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, double value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_arguments_append(IntPtr msg, string signature, string value);
// [DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
// eldbus_message_arguments_vappend(IntPtr msg, string signature, va_list ap);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_iter_container_new(IntPtr iter, int type, string contained_signature);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, byte value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, Int16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, UInt16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, Int32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, UInt32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, Int64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, UInt64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, double value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_basic_append(IntPtr iter, int type, string value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_arguments_append(IntPtr iter, string signature, out IntPtr value);
// [DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
// eldbus_message_iter_arguments_vappend(IntPtr iter, string signature, va_list ap);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_fixed_array_append(IntPtr iter, int type, IntPtr array, uint size);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_container_close(IntPtr iter, IntPtr sub);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_message_iter_get(IntPtr msg);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out byte value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out Int16 value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out UInt16 value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out Int32 value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out UInt32 value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out Int64 value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out UInt64 value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out double value);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_basic_get(IntPtr iter, out IntPtr value);
[DllImport(efl.Libs.Eldbus)] public static extern string
eldbus_message_iter_signature_get(IntPtr iter);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_next(IntPtr iter);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out byte value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out Int16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out UInt16 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out Int32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out UInt32 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out Int64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out UInt64 value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out double value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_get_and_next(IntPtr iter, char signature, out IntPtr value);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_fixed_array_get(IntPtr iter, int signature, out IntPtr value, out int n_elements);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_message_iter_arguments_get(IntPtr iter, string signature, out IntPtr value);
// [DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
// eldbus_message_iter_arguments_vget(IntPtr iter, string signature, va_list ap);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_message_iter_del(IntPtr iter);
}
/// Represents a DBus message.
/// Since EFL 1.23.
///
public class Message : IDisposable
{
[EditorBrowsable(EditorBrowsableState.Never)]
public IntPtr Handle {get;set;} = IntPtr.Zero;
public bool Own {get;set;} = true;
private void InitNew(IntPtr handle, bool own)
{
Handle = handle;
Own = own;
CheckHandle();
}
private void CheckHandle()
{
if (Handle == IntPtr.Zero)
{
eldbus.Common.RaiseNullHandle();
}
}
[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;
Handle = IntPtr.Zero;
if (h == IntPtr.Zero)
{
return;
}
if (Own)
{
if (disposing)
{
eldbus_message_unref(h);
}
else
{
Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_message_unref, h);
}
}
}
/// 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;
Handle = IntPtr.Zero;
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);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_message_method_call_new");
}
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);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_message_signal_new");
}
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();
var ptr = eldbus_message_path_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// The eldbus message interface.
/// Since EFL 1.23.
///
/// A string containing the dbus message interface.
public string GetInterface()
{
CheckHandle();
var ptr = eldbus_message_interface_get(Handle);
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();
var ptr = eldbus_message_member_get(Handle);
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();
var ptr = eldbus_message_destination_get(Handle);
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();
var ptr = eldbus_message_sender_get(Handle);
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();
var ptr = eldbus_message_signature_get(Handle);
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();
var ptr = eldbus_message_error_new(Handle, error_name, error_msg);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_message_error_new");
}
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();
var ptr = eldbus_message_method_return_new(Handle);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_message_method_return_new");
}
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();
IntPtr name_ptr;
IntPtr text_ptr;
bool r = eldbus_message_error_get(Handle, out name_ptr, out text_ptr);
name = Eina.StringConversion.NativeUtf8ToManagedString(name_ptr);
text = Eina.StringConversion.NativeUtf8ToManagedString(text_ptr);
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();
Int32 aux;
var r = eldbus_message_arguments_get(Handle, Argument.BooleanType.Signature, out aux);
val = (aux != 0);
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();
IntPtr aux;
var r = eldbus_message_arguments_get(Handle, Argument.StringType.Signature, out aux);
val = Eina.StringConversion.NativeUtf8ToManagedString(aux);
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();
IntPtr aux;
var r = eldbus_message_arguments_get(Handle, Argument.ObjectPathType.Signature, out aux);
val = Eina.StringConversion.NativeUtf8ToManagedString(aux);
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();
IntPtr aux;
var r = eldbus_message_arguments_get(Handle, Argument.SignatureType.Signature, out aux);
val = Eina.StringConversion.NativeUtf8ToManagedString(aux);
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();
Int32 aux;
var r = eldbus_message_arguments_get(Handle, Argument.UnixFdType.Signature, out aux);
val = aux;
return r;
}
///
/// Appends the arguments.
/// Since EFL 1.23.
///
/// The arguments to be appended.
public void Append(params BasicMessageArgument[] args)
{
CheckHandle();
foreach (BasicMessageArgument arg in args)
{
arg.AppendTo(this);
}
}
///
/// 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();
var ptr = eldbus_message_iter_get(Handle);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `MessageIterator' object from eldbus_message_iter_get");
}
return new eldbus.MessageIterator(ptr, IntPtr.Zero);
}
}
///
/// 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)
{
Handle = handle;
Parent = parent;
CheckHandle();
}
private void CheckHandle()
{
if (Handle == IntPtr.Zero)
{
eldbus.Common.RaiseNullHandle();
}
}
[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;
Handle = IntPtr.Zero;
Parent = IntPtr.Zero;
return h;
}
///
/// Appends the arguments.
/// Since EFL 1.23.
///
/// The arguments to be appended.
public void Append(params BasicMessageArgument[] args)
{
CheckHandle();
foreach (BasicMessageArgument arg in args)
{
arg.AppendTo(this);
}
}
///
/// 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();
IntPtr new_iter = IntPtr.Zero;
if (signature[0] == 'v')
{
new_iter = eldbus_message_iter_container_new(Handle, 'v', signature.Substring(1));
}
else if (!eldbus_message_iter_arguments_append(Handle, signature, out new_iter))
{
throw new SEHException("Eldbus: could not append container type");
}
if (new_iter == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `MessageIterator' object from eldbus_message_iter_arguments_append");
}
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();
IntPtr new_iter = eldbus_message_iter_container_new(Handle, type, contained_signature);
if (new_iter == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `MessageIterator' object from eldbus_message_iter_container_new");
}
return new eldbus.MessageIterator(new_iter, Handle);
}
///
/// Closes a container-typed value appended to the message.
/// Since EFL 1.23.
///
public void CloseContainer()
{
CheckHandle();
if (Parent == IntPtr.Zero)
{
throw new SEHException("Eldbus: can not close MessageIterator open container without a parent");
}
if (!eldbus_message_iter_container_close(Parent, Handle))
{
throw new SEHException("Eldbus: could not close MessageIterator");
}
Handle = IntPtr.Zero;
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();
Int32 aux;
bool r = eldbus_message_iter_get_and_next(Handle, Argument.BooleanType.Code, out aux);
val = (aux != 0);
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();
IntPtr aux;
bool r = eldbus_message_iter_get_and_next(Handle, Argument.StringType.Code, out aux);
val = Eina.StringConversion.NativeUtf8ToManagedString(aux);
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();
IntPtr aux;
bool r = eldbus_message_iter_get_and_next(Handle, Argument.ObjectPathType.Code, out aux);
val = Eina.StringConversion.NativeUtf8ToManagedString(aux);
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();
IntPtr aux;
bool r = eldbus_message_iter_get_and_next(Handle, Argument.SignatureType.Code, out aux);
val = Eina.StringConversion.NativeUtf8ToManagedString(aux);
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();
Int32 aux;
bool r = eldbus_message_iter_get_and_next(Handle, Argument.UnixFdType.Code, out aux);
val = aux;
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();
IntPtr hdl = IntPtr.Zero;
bool r = eldbus_message_iter_get_and_next(Handle, typecode, out hdl);
if (hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get argument");
}
iter = new eldbus.MessageIterator(hdl, Handle);
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();
IntPtr hdl = IntPtr.Zero;
if (!eldbus_message_iter_arguments_get(Handle, signatue, out hdl) || hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get argument");
}
iter = new eldbus.MessageIterator(hdl, Handle);
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();
Int32 aux;
eldbus_message_iter_basic_get(Handle, out aux);
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();
IntPtr aux;
eldbus_message_iter_basic_get(Handle, out aux);
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();
IntPtr aux;
eldbus_message_iter_basic_get(Handle, out aux);
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();
IntPtr aux;
eldbus_message_iter_basic_get(Handle, out aux);
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();
Int32 aux;
eldbus_message_iter_basic_get(Handle, out aux);
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();
IntPtr hdl = IntPtr.Zero;
if (!eldbus_message_iter_arguments_get(Handle, signatue, out hdl) || hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get argument");
}
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();
eldbus_message_iter_del(Handle);
Handle = IntPtr.Zero;
Parent = IntPtr.Zero;
}
private void GetFixedArrayInternal(int type_code, out IntPtr value, out int n_elements)
{
CheckHandle();
if (!eldbus_message_iter_fixed_array_get(Handle, type_code, out value, out n_elements))
{
throw new SEHException("Eldbus: could not get fixed array");
}
}
///
/// 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;
int n_elements;
GetFixedArrayInternal(Argument.ByteType.Code, out value, out n_elements);
array = new byte[n_elements];
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;
int n_elements;
GetFixedArrayInternal(Argument.BooleanType.Code, out value, out n_elements);
var aux = new Int32[n_elements];
Marshal.Copy(value, aux, 0, n_elements);
// array = aux.Select(Convert.ToBoolean).ToArray();
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;
int n_elements;
GetFixedArrayInternal(Argument.Int16Type.Code, out value, out n_elements);
array = new Int16[n_elements];
Marshal.Copy(value, array, 0, n_elements);
}
// public void GetFixedArray(out UInt16[] array)
// {
// IntPtr value;
// int n_elements;
// GetFixedArrayInternal(Argument.UInt16Type.Code, out value, out n_elements);
// array = new UInt16[n_elements];
// 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;
int n_elements;
GetFixedArrayInternal(Argument.Int32Type.Code, out value, out n_elements);
array = new Int32[n_elements];
Marshal.Copy(value, array, 0, n_elements);
}
// public void GetFixedArray(out UInt32[] array)
// {
// IntPtr value;
// int n_elements;
// GetFixedArrayInternal(Argument.UInt32Type.Code, out value, out n_elements);
// array = new UInt32[n_elements];
// 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;
int n_elements;
GetFixedArrayInternal(Argument.Int64Type.Code, out value, out n_elements);
array = new Int64[n_elements];
Marshal.Copy(value, array, 0, n_elements);
}
// public void GetFixedArray(out UInt64[] array)
// {
// IntPtr value;
// int n_elements;
// GetFixedArrayInternal(Argument.UInt64Type.Code, out value, out n_elements);
// array = new UInt64[n_elements];
// 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;
int n_elements;
GetFixedArrayInternal(Argument.DoubleType.Code, out value, out n_elements);
var aux = new Int32[n_elements];
Marshal.Copy(value, aux, 0, n_elements);
array = Array.ConvertAll(aux, e => new UnixFd(e));
}
}
}
diff --git a/src/bindings/mono/eldbus_mono/eldbus_object.cs b/src/bindings/mono/eldbus_mono/eldbus_object.cs
index 9c3a509551..329bd34a54 100644
--- a/src/bindings/mono/eldbus_mono/eldbus_object.cs
+++ b/src/bindings/mono/eldbus_mono/eldbus_object.cs
@@ -1,449 +1,449 @@
/*
* Copyright 2019 by its authors. See AUTHORS.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma warning disable 1591
using System.Runtime.InteropServices;
using System.ComponentModel;
using static eldbus.EldbusObjectNativeFunctions;
using IntPtr = System.IntPtr;
namespace eldbus
{
[EditorBrowsable(EditorBrowsableState.Never)]
-public static class EldbusObjectNativeFunctions
+internal static class EldbusObjectNativeFunctions
{
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_get(IntPtr conn, string bus, string path);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_ref(IntPtr obj);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_object_unref(IntPtr obj);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_object_free_cb_add(IntPtr obj, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_object_free_cb_del(IntPtr obj, IntPtr cb, IntPtr data);
// typedef enum
// {
// ELDBUS_OBJECT_EVENT_IFACE_ADDED = 0, /**< a parent path must have a ObjectManager interface */
// ELDBUS_OBJECT_EVENT_IFACE_REMOVED, /**< a parent path must have a ObjectManager interface */
// ELDBUS_OBJECT_EVENT_PROPERTY_CHANGED, /**< a property has changes */
// ELDBUS_OBJECT_EVENT_PROPERTY_REMOVED, /**< a property was removed */
// ELDBUS_OBJECT_EVENT_DEL,
// ELDBUS_OBJECT_EVENT_LAST /**< sentinel, not a real event type */
// } Eldbus_Object_Event_Type;
//
// [DllImport(efl.Libs.Eldbus)] public static extern void
// eldbus_object_event_callback_add(IntPtr obj, Eldbus_Object_Event_Type type, IntPtr cb, IntPtr cb_data);
//
// [DllImport(efl.Libs.Eldbus)] public static extern void
// eldbus_object_event_callback_del(IntPtr obj, Eldbus_Object_Event_Type type, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_connection_get(IntPtr obj);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_bus_name_get(IntPtr obj);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_path_get(IntPtr obj);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_send(IntPtr obj, IntPtr msg, IntPtr cb, IntPtr cb_data, double timeout);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_signal_handler_add(IntPtr obj, string _interface, string member, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_method_call_new(IntPtr obj, string _interface, string member);
// FreeDesktop.Org Methods
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_peer_ping(IntPtr obj, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_peer_machine_id_get(IntPtr obj, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_introspect(IntPtr obj, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_object_managed_objects_get(IntPtr obj, IntPtr cb, IntPtr data);
// [DllImport(efl.Libs.Eldbus)] public static extern IntPtr
// eldbus_object_manager_interfaces_added(IntPtr obj, Eldbus_Signal_Cb cb, IntPtr cb_data);
//
// [DllImport(efl.Libs.Eldbus)] public static extern IntPtr
// eldbus_object_manager_interfaces_removed(IntPtr obj, Eldbus_Signal_Cb cb, IntPtr cb_data);
}
/// Represents a DBus object.
/// Since EFL 1.23.
///
public class Object : System.IDisposable
{
[EditorBrowsable(EditorBrowsableState.Never)]
public IntPtr Handle {get;set;} = IntPtr.Zero;
/// Whether this managed list owns the native one.
/// Since EFL 1.23.
///
public bool Own {get;set;} = true;
[EditorBrowsable(EditorBrowsableState.Never)]
private void InitNew(IntPtr handle, bool own)
{
Handle = handle;
Own = own;
CheckHandle();
}
private void CheckHandle()
{
if (Handle == IntPtr.Zero)
{
eldbus.Common.RaiseNullHandle();
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public Object(IntPtr handle, bool own)
{
InitNew(handle, own);
}
///
/// Constructor.
/// Since EFL 1.23.
///
/// where object
/// belongs.
/// The name of the bus or unique id who listens for calls
/// of this object
/// The object path of this object.
public Object(eldbus.Connection conn, string bus, string path)
{
if (conn == null)
{
throw new System.ArgumentNullException("conn");
}
if (bus == null)
{
throw new System.ArgumentNullException("bus");
}
if (path == null)
{
throw new System.ArgumentNullException("path");
}
var handle = eldbus_object_get(conn.Handle, bus, path);
if (handle == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Object' object from eldbus_object_get");
}
InitNew(handle, true);
}
/// Finalizes with garbage collector.
/// Since EFL 1.23.
///
~Object()
{
Dispose(false);
}
/// Disposes of this list.
/// Since EFL 1.23.
///
/// Whether this was called from the finalizer (false) or from the
/// method.
protected virtual void Dispose(bool disposing)
{
IntPtr h = Handle;
Handle = IntPtr.Zero;
if (h == IntPtr.Zero)
{
return;
}
if (Own)
{
if (disposing)
{
eldbus_object_unref(h);
}
else
{
Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_object_unref, h);
}
}
}
/// Disposes of this list.
/// Since EFL 1.23.
///
public void Dispose()
{
Dispose(true);
System.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;
Handle = IntPtr.Zero;
return h;
}
///
/// Get the object associated with a
///
/// Since EFL 1.23.
///
/// The object
public eldbus.Connection GetConnection()
{
CheckHandle();
var conn = eldbus_object_connection_get(Handle);
if (conn == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Connection' object from eldbus_object_connection_get");
}
return new eldbus.Connection(conn, false);
}
///
/// Get the name associated with a
/// Since EFL 1.23.
///
/// A string corresponding to the
/// name
public string GetBusName()
{
CheckHandle();
var ptr = eldbus_object_bus_name_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// Get the path associated with a
/// Since EFL 1.23.
///
/// A string corresponding to the
/// path.
public string GetPath()
{
CheckHandle();
var ptr = eldbus_object_path_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// Increse object reference
/// Since EFL 1.23.
///
public void Ref()
{
CheckHandle();
eldbus_object_ref(Handle);
}
///
/// Decrease object reference.
/// If reference == 0 object will be freed and all its children.
///
/// Since EFL 1.23.
///
///
public void Unref()
{
CheckHandle();
eldbus_object_unref(Handle);
}
///
/// Send a message
/// Since EFL 1.23.
///
/// The message will be sent in connection to this object.
/// The function to call when receiving answer.
/// Timeout.
/// A
public eldbus.Pending Send(eldbus.Message msg, eldbus.MessageDelegate dlgt = null, double timeout = -1)
{
CheckHandle();
if (msg == null)
{
throw new System.ArgumentNullException("msg");
}
IntPtr cb_wrapper = dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr();
IntPtr cb_data = dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt);
var pending_hdl = eldbus_object_send(Handle, msg.Handle, cb_wrapper, cb_data, timeout);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_object_send");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Call a dbus method on the .
/// Since EFL 1.23.
///
/// The interface name.
/// Name of the method to be called.
/// A new
public eldbus.Message NewMethodCall(string _interface, string member)
{
CheckHandle();
var hdl = eldbus_object_method_call_new(Handle, _interface, member);
if (hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_object_method_call_new");
}
return new eldbus.Message(hdl, false);
}
///
/// Call the method Ping on the eldbus.
/// Since EFL 1.23.
///
/// The function to call when receiving answer.
/// A
public eldbus.Pending PeerPing(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr();
IntPtr cb_data = dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt);
var pending_hdl = eldbus_object_peer_ping(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_object_peer_ping");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Call the method GetMachineId on the eldbus.
/// Since EFL 1.23.
///
/// The function to call when receiving answer.
/// A
public eldbus.Pending GetPeerMachineId(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr();
IntPtr cb_data = dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt);
var pending_hdl = eldbus_object_peer_machine_id_get(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_object_peer_machine_id_get");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Call the method Introspect on the eldbus.
/// Since EFL 1.23.
///
/// The function to call when receiving answer.
/// A
public eldbus.Pending Introspect(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr();
IntPtr cb_data = dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt);
var pending_hdl = eldbus_object_introspect(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_object_introspect");
}
return new eldbus.Pending(pending_hdl, false);
}
///
/// Call the method GetmanagedObjects on eldbus.
/// Since EFL 1.23.
///
/// The function to call when receiving answer.
/// A
public eldbus.Pending GetManagedObjects(eldbus.MessageDelegate dlgt = null)
{
CheckHandle();
IntPtr cb_wrapper = dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr();
IntPtr cb_data = dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt);
var pending_hdl = eldbus_object_managed_objects_get(Handle, cb_wrapper, cb_data);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_object_managed_objects_get");
}
return new eldbus.Pending(pending_hdl, false);
}
}
}
diff --git a/src/bindings/mono/eldbus_mono/eldbus_pending.cs b/src/bindings/mono/eldbus_mono/eldbus_pending.cs
index f26d5f1ed5..246b888646 100644
--- a/src/bindings/mono/eldbus_mono/eldbus_pending.cs
+++ b/src/bindings/mono/eldbus_mono/eldbus_pending.cs
@@ -1,167 +1,167 @@
/*
* Copyright 2019 by its authors. See AUTHORS.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma warning disable 1591
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using static eldbus.EldbusPendingNativeFunctions;
namespace eldbus
{
[EditorBrowsable(EditorBrowsableState.Never)]
-public static class EldbusPendingNativeFunctions
+internal static class EldbusPendingNativeFunctions
{
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_pending_data_set(IntPtr pending, string key, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_pending_data_get(IntPtr pending, string key);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_pending_data_del(IntPtr pending, string key);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_pending_cancel(IntPtr pending);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_pending_destination_get(IntPtr pending);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_pending_path_get(IntPtr pending);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_pending_interface_get(IntPtr pending);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_pending_method_get(IntPtr pending);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_pending_free_cb_add(IntPtr pending, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_pending_free_cb_del(IntPtr pending, IntPtr cb, IntPtr data);
}
/// Represents a DBus pending.
/// Since EFL 1.23.
///
public class Pending
{
[EditorBrowsable(EditorBrowsableState.Never)]
public IntPtr Handle {get;set;} = IntPtr.Zero;
/// Whether this managed list owns the native one.
/// Since EFL 1.23.
///
public bool Own {get;set;} = true;
private void InitNew(IntPtr handle, bool own)
{
Handle = handle;
Own = own;
CheckHandle();
}
private void CheckHandle()
{
if (Handle == IntPtr.Zero)
{
eldbus.Common.RaiseNullHandle();
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public Pending(IntPtr handle, bool own)
{
InitNew(handle, own);
}
///
/// Releases the native handler.
/// Since EFL 1.23.
///
/// The native handler.
public IntPtr Release()
{
IntPtr h = Handle;
Handle = IntPtr.Zero;
return h;
}
///
/// Cancel the pending message.
/// Since EFL 1.23.
///
public void Cancel()
{
CheckHandle();
eldbus_pending_cancel(Handle);
}
///
/// Get the destination of the pending message.
/// Since EFL 1.23.
///
/// A string corresponding to the destination of the
/// message
public string GetDestination()
{
CheckHandle();
var ptr = eldbus_pending_destination_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// Get the path of the pending message.
/// Since EFL 1.23.
///
/// A string corresponding to the path of the message.
public string GetPath()
{
CheckHandle();
var ptr = eldbus_pending_path_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// Get the interface of the pending message.
/// Since EFL 1.23.
///
/// A string corresponding to the interface of the
/// message.
public string GetInterface()
{
CheckHandle();
var ptr = eldbus_pending_interface_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
///
/// Get the method of the pending message.
/// Since EFL 1.23.
///
/// A string corresponding to the method of the message.
public string GetMethod()
{
CheckHandle();
var ptr = eldbus_pending_method_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
}
}
diff --git a/src/bindings/mono/eldbus_mono/eldbus_proxy.cs b/src/bindings/mono/eldbus_mono/eldbus_proxy.cs
index 8fd5921b8b..7fc48d3095 100644
--- a/src/bindings/mono/eldbus_mono/eldbus_proxy.cs
+++ b/src/bindings/mono/eldbus_mono/eldbus_proxy.cs
@@ -1,289 +1,289 @@
/*
* Copyright 2019 by its authors. See AUTHORS.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma warning disable 1591
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using static eldbus.EldbusProxyNativeFunctions;
namespace eldbus
{
[EditorBrowsable(EditorBrowsableState.Never)]
-public static class EldbusProxyNativeFunctions
+internal static class EldbusProxyNativeFunctions
{
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_get(IntPtr obj, string _interface);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_ref(IntPtr proxy);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_proxy_unref(IntPtr proxy);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_object_get(IntPtr proxy);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_interface_get(IntPtr proxy);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_proxy_data_set(IntPtr proxy, string key, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_data_get(IntPtr proxy, string key);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_data_del(IntPtr proxy, string key);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_proxy_free_cb_add(IntPtr proxy, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_proxy_free_cb_del(IntPtr proxy, IntPtr cb, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_method_call_new(IntPtr proxy, string member);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_send(IntPtr proxy, IntPtr msg, IntPtr cb, IntPtr cb_data, double timeout);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_send_and_block(IntPtr proxy, IntPtr msg, double timeout);
// [DllImport(efl.Libs.Eldbus)] public static extern IntPtr
// eldbus_proxy_call(IntPtr proxy, string member, IntPtr cb, IntPtr cb_data, double timeout, string signature, ...);
//
// [DllImport(efl.Libs.Eldbus)] public static extern IntPtr
// eldbus_proxy_vcall(IntPtr proxy, string member, IntPtr cb, IntPtr cb_data, double timeout, string signature, va_list ap);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_proxy_signal_handler_add(IntPtr proxy, string member, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_proxy_event_callback_add(IntPtr proxy, int type, IntPtr cb, IntPtr cb_data);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_proxy_event_callback_del(IntPtr proxy, int type, IntPtr cb, IntPtr cb_data);
}
/// Represents a DBus proxy object.
/// Since EFL 1.23.
///
public class Proxy : IDisposable
{
[EditorBrowsable(EditorBrowsableState.Never)]
public IntPtr Handle {get;set;} = IntPtr.Zero;
/// Whether this managed list owns the native one.
/// Since EFL 1.23.
///
public bool Own {get;set;} = true;
private void InitNew(IntPtr handle, bool own)
{
Handle = handle;
Own = own;
CheckHandle();
}
private void CheckHandle()
{
if (Handle == IntPtr.Zero)
{
eldbus.Common.RaiseNullHandle();
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
public Proxy(IntPtr handle, bool own)
{
InitNew(handle, own);
}
///
/// Constructor
/// Since EFL 1.23.
///
/// The .
/// The interface name.
public Proxy(eldbus.Object obj, string _interface)
{
InitNew(eldbus_proxy_get(obj.Handle, _interface), true);
}
/// Finalizes with garbage collector.
/// Since EFL 1.23.
///
~Proxy()
{
Dispose(false);
}
/// Disposes of this list.
/// Since EFL 1.23.
///
/// Whether this was called from the finalizer (false) or from the
/// method.
protected virtual void Dispose(bool disposing)
{
IntPtr h = Handle;
Handle = IntPtr.Zero;
if (h == IntPtr.Zero)
{
return;
}
if (Own)
{
if (disposing)
{
eldbus_proxy_unref(h);
}
else
{
Efl.Eo.Globals.ThreadSafeFreeCbExec(eldbus_proxy_unref, h);
}
}
}
/// Disposes of this list.
/// 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;
Handle = IntPtr.Zero;
return h;
}
eldbus.Object GetObject()
{
CheckHandle();
var ptr = eldbus_proxy_object_get(Handle);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Object' object from eldbus_proxy_object_get");
}
return new eldbus.Object(ptr, false);
}
string GetInterface()
{
CheckHandle();
var ptr = eldbus_proxy_interface_get(Handle);
return Eina.StringConversion.NativeUtf8ToManagedString(ptr);
}
eldbus.Message NewMethodCall(string member)
{
CheckHandle();
if (member == null)
{
throw new ArgumentNullException("member");
}
var ptr = eldbus_proxy_method_call_new(Handle, member);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_proxy_method_call_new");
}
return new eldbus.Message(ptr, false);
}
eldbus.Pending Send(eldbus.Message msg, eldbus.MessageDelegate dlgt = null, double timeout = -1)
{
CheckHandle();
if (msg == null)
{
throw new ArgumentNullException("msg");
}
// Native send() takes ownership of the message. We ref here to keep the IDisposable
// behavior simpler and keeping the original object alive in case the user wants.
msg.Ref();
IntPtr cb_wrapper = dlgt == null ? IntPtr.Zero : eldbus.Common.GetMessageCbWrapperPtr();
IntPtr cb_data = dlgt == null ? IntPtr.Zero : Marshal.GetFunctionPointerForDelegate(dlgt);
var pending_hdl = eldbus_proxy_send(Handle, msg.Handle, cb_wrapper, cb_data, timeout);
if (pending_hdl == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Pending' object from eldbus_proxy_send");
}
return new eldbus.Pending(pending_hdl, false);
}
eldbus.Message SendAndBlock(eldbus.Message msg, double timeout = -1)
{
CheckHandle();
var ptr = eldbus_proxy_send_and_block(Handle, msg.Handle, timeout);
if (ptr == IntPtr.Zero)
{
throw new SEHException("Eldbus: could not get `Message' object from eldbus_proxy_send_and_block");
}
return new eldbus.Message(ptr, true);
}
eldbus.Pending Call(string member, eldbus.MessageDelegate dlgt, double timeout, params BasicMessageArgument[] args)
{
CheckHandle();
using (var msg = NewMethodCall(member))
{
foreach (BasicMessageArgument arg in args)
{
arg.AppendTo(msg);
}
return Send(msg, dlgt, timeout);
}
}
eldbus.Pending Call(string member, params BasicMessageArgument[] args)
{
return Call(member, null, -1.0, args);
}
}
}
diff --git a/src/bindings/mono/eldbus_mono/eldbus_service.cs b/src/bindings/mono/eldbus_mono/eldbus_service.cs
index e022886476..048f96d8d0 100644
--- a/src/bindings/mono/eldbus_mono/eldbus_service.cs
+++ b/src/bindings/mono/eldbus_mono/eldbus_service.cs
@@ -1,85 +1,85 @@
/*
* Copyright 2019 by its authors. See AUTHORS.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma warning disable 1591
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using static eldbus.EldbusServiceNativeFunctions;
namespace eldbus
{
[EditorBrowsable(EditorBrowsableState.Never)]
-public static class EldbusServiceNativeFunctions
+internal static class EldbusServiceNativeFunctions
{
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_interface_register(IntPtr conn, string path, IntPtr desc);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_interface_fallback_register(IntPtr conn, string path, IntPtr desc);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_interface_register2(IntPtr conn, string path, IntPtr desc);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_interface_fallback_register2(IntPtr conn, string path, IntPtr desc);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_service_interface_unregister(IntPtr iface);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_service_object_unregister(IntPtr iface);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_connection_get(IntPtr iface);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_object_path_get(IntPtr iface);
// [DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
// eldbus_service_signal_emit(IntPtr iface, uint signal_id, ...);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_signal_new(IntPtr iface, uint signal_id);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_service_signal_send(IntPtr iface, IntPtr signal_msg);
[DllImport(efl.Libs.Eldbus)] public static extern void
eldbus_service_object_data_set(IntPtr iface, string key, IntPtr data);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_object_data_get(IntPtr iface, string key);
[DllImport(efl.Libs.Eldbus)] public static extern IntPtr
eldbus_service_object_data_del(IntPtr iface, string key);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_service_property_changed(IntPtr iface, string name);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_service_property_invalidate_set(IntPtr iface, string name, [MarshalAs(UnmanagedType.U1)] bool is_invalidate);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_service_object_manager_attach(IntPtr iface);
[DllImport(efl.Libs.Eldbus)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
eldbus_service_object_manager_detach(IntPtr iface);
}
}