From a929c9a3b465db8b7e17b9b39936c612c2621a7c Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Fri, 14 Jul 2006 16:20:12 +0000 Subject: * Remove all bindings --- mono/README | 118 ------------------------------------------------------------ 1 file changed, 118 deletions(-) delete mode 100644 mono/README (limited to 'mono/README') diff --git a/mono/README b/mono/README deleted file mode 100644 index 2d1b08b6..00000000 --- a/mono/README +++ /dev/null @@ -1,118 +0,0 @@ -D-BUS Mono Bindings -=== - -These bindings are a 'thick' wrapper around the D-BUS API. For now -they rely on the main loop provided by the GLib bindings but this -dependancy will be removed in the near future. - -The wrapper serves two main functions: firstly, it has the know-how to -introspect live objects passed to it by a server and service requests -to those objects via the D-BUS. Secondly, it can create a proxy for -clients who can pretend they are making calls to the regular -objects. This latter piece of magic is implemented using -Reflection.Emit to create an assembly on-the-fly containing -sub-classes of the classes the client thinks it's really using. These -sub-classes simply marshal each method's parameters off to the D-BUS, -demarshal the results and return them to the client as if nothing -happened. - -Usage -=== - -A server do should something like this: - - namespace Foo - { - using System; - using DBus; - using Gtk; - - public class MyServer - { - public static int Main(string [] args) - { - Application.Init(); - -1 Connection connection = Bus.GetSessionBus(); -2 Service service = new Service(connection, "org.foo"); -3 MyObject myObject = new MyObject(); -4 service.RegisterObject(myObject, "/org/foo/MyObject"); - - Application.Run(); - - return 0; - } - } - } - -In line 1 we get a connection to the session bus. Then, in line 2 we -create a service which will listen for requests to org.foo to -service. In line 3 we create a MyObject object and register it with an -object path in line 4. It's almost that simple. All that's missing is -to mark MyObject in such a way that dbus-sharp knows how to export -it. This is done using the attributes, Interface and Method, -as in the following example: - - namespace Foo - { - using System; - using DBus; - - [Interface("org.foo.MyObject")] - public class MyObject - { - [Method] - public virtual string Echo(string message) - { - return "Reply: " + message; - } - } - } - -Note that the Methods should also be declared virtual in order for -the client to use same class declaration. - -Now for the client: - - namespace Foo - { - using System; - using DBus; - - public class MyClient - { - public static int Main(string [] args) - { -1 Connection connection = Bus.GetSessionBus(); -2 Service service = Service.Get(connection, "org.foo"); -3 MyObject myObject = (MyObject) - service.GetObject(typeof(MyObject), "/org/foo/MyObject"); -4 System.Console.WriteLine(testObject.Echo("Hello world!")); - - return 0; - } - } - } - -Here we start off the same by getting a connection to the session -bus. This time though, in line 2, we get the existing service rather -than creating it. In line 3, we ask the service to get the object -"/org/foo/MyObject" as registered by the server and that return it as -a MyObject. Once obtained we can use it like any normal object as in -line 4. This supposes, of course, that you've just written MyObject -and happen to have it readily available. If that were not the case, -for example if you wanted to call a method on one of the well-known -services, then you will need to write a stub class, like the MyObject -class above, which has the method calls you need correctly defined but -needn't actually have any implementation. - - -Working Example -=== - -The example directory contains a working example similar to that -described above. It uses the session bus so first run dbus-launch and -then export DBUS_SESSION_BUS_ADDRESS, as displayed by dbus-launch, to -two terminals, one to run the server and one for the client. Then, -start the server in one terminal, the client in the other and cross -your fingers. -- cgit