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:
Havoc Pennington 2003-07-03 01:48:31 +00:00
parent 23c9bbf77f
commit a7560f4567
4 changed files with 53 additions and 16 deletions

View file

@ -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,

View file

@ -18,6 +18,7 @@ namespace DBus {
error.Free ();
throw e;
}
dbus_connection_setup_with_g_main (raw, IntPtr.Zero);
}
// Keep in sync with C

View file

@ -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);
}
}

View file

@ -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);
}