mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-01-03 02:10:15 +01:00
2003-06-29 Havoc Pennington <hp@pobox.com>
* mono/Test.cs (class Test): fire up a main loop and run it * mono/DBus.cs (DBus): don't g_thread_init since it can only be done once, the app has to do it 2003-06-26 Havoc Pennington <hp@pobox.com> * mono/Connection.cs: set up connection with the glib main loop
This commit is contained in:
parent
23c9bbf77f
commit
a7560f4567
4 changed files with 53 additions and 16 deletions
11
ChangeLog
11
ChangeLog
|
|
@ -1,3 +1,14 @@
|
|||
2003-06-29 Havoc Pennington <hp@pobox.com>
|
||||
|
||||
* mono/Test.cs (class Test): fire up a main loop and run it
|
||||
|
||||
* mono/DBus.cs (DBus): don't g_thread_init since it can only be
|
||||
done once, the app has to do it
|
||||
|
||||
2003-06-26 Havoc Pennington <hp@pobox.com>
|
||||
|
||||
* mono/Connection.cs: set up connection with the glib main loop
|
||||
|
||||
2003-07-01 Havoc Pennington <hp@redhat.com>
|
||||
|
||||
* doc/dbus-specification.sgml: clarify the format of a type code,
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ namespace DBus {
|
|||
error.Free ();
|
||||
throw e;
|
||||
}
|
||||
dbus_connection_setup_with_g_main (raw, IntPtr.Zero);
|
||||
}
|
||||
|
||||
// Keep in sync with C
|
||||
|
|
|
|||
|
|
@ -15,19 +15,10 @@ namespace DBus {
|
|||
internal const string GThreadname = "libgthread-2.0.so.0";
|
||||
|
||||
internal static void Init () {
|
||||
if (!initialized) {
|
||||
initialized = true;
|
||||
g_thread_init (IntPtr.Zero);
|
||||
dbus_gthread_init ();
|
||||
}
|
||||
}
|
||||
|
||||
private static bool initialized = false;
|
||||
|
||||
[DllImport (DBus.Internals.DBusGLibname, EntryPoint="dbus_gthread_init")]
|
||||
private extern static void dbus_gthread_init ();
|
||||
|
||||
[DllImport (DBus.Internals.GThreadname, EntryPoint="g_thread_init")]
|
||||
private extern static void g_thread_init (IntPtr vtable);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
48
mono/Test.cs
48
mono/Test.cs
|
|
@ -1,19 +1,53 @@
|
|||
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
class Test {
|
||||
static void Main() {
|
||||
DBus.Message m;
|
||||
static void Main() {
|
||||
g_thread_init (IntPtr.Zero);
|
||||
|
||||
DBus.Connection c;
|
||||
|
||||
// c = new DBus.Connection ("unix:path=/tmp/foobar");
|
||||
|
||||
c = DBus.Connection.GetBus (DBus.Connection.BusType.Session);
|
||||
|
||||
m = new DBus.Message ("org.freedesktop.Foo",
|
||||
"org.freedesktop.DBus.Broadcast");
|
||||
try {
|
||||
c = DBus.Connection.GetBus (DBus.Connection.BusType.Session);
|
||||
}
|
||||
catch (DBus.Exception e) {
|
||||
Console.Error.WriteLine ("Failed to open connection: {0}",
|
||||
e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
DBus.Message m = new DBus.Message ("org.freedesktop.Foo",
|
||||
"org.freedesktop.DBus.Broadcast");
|
||||
|
||||
c.Send (m);
|
||||
c.Flush ();
|
||||
c.Flush ();
|
||||
|
||||
IntPtr loop = g_main_loop_new (IntPtr.Zero, false);
|
||||
|
||||
g_main_loop_run (loop);
|
||||
|
||||
g_main_loop_unref (loop);
|
||||
}
|
||||
|
||||
internal const string GLibname = "libglib-2.0.so.0";
|
||||
internal const string GThreadname = "libgthread-2.0.so.0";
|
||||
|
||||
[DllImport (GLibname, EntryPoint="g_main_loop_new")]
|
||||
private extern static IntPtr g_main_loop_new (IntPtr context,
|
||||
bool is_running);
|
||||
|
||||
[DllImport (GLibname, EntryPoint="g_main_loop_unref")]
|
||||
private extern static void g_main_loop_unref (IntPtr loop);
|
||||
|
||||
[DllImport (GLibname, EntryPoint="g_main_loop_run")]
|
||||
private extern static void g_main_loop_run (IntPtr loop);
|
||||
|
||||
[DllImport (GLibname, EntryPoint="g_main_loop_quit")]
|
||||
private extern static void g_main_loop_quit (IntPtr loop);
|
||||
|
||||
[DllImport (GThreadname, EntryPoint="g_thread_init")]
|
||||
private extern static void g_thread_init (IntPtr vtable);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue