Main Page DBusSharp

From NDesk

(Difference between revisions)
Jump to: navigation, search
Revision as of 14:58, 3 September 2006 (edit)
Alp (Talk | contribs)

← Previous diff
Revision as of 15:02, 3 September 2006 (edit) (undo)
Alp (Talk | contribs)

Next diff →
Line 57: Line 57:
==== PROTO_REPLY_SIGNATURE ==== ==== PROTO_REPLY_SIGNATURE ====
-The signature of the MethodReply expected by a MethodCall.+The signature of the MethodReply expected by a MethodCall. This is implemented as a header field TypeCode: FieldCode.ReplySignature.
Can be enabled without breaking existing libdbus consumers. Can be enabled without breaking existing libdbus consumers.
 +
 +'''Note:''' This may soon be renamed to FieldCode.RequestSignature to mirror FieldCode.ReplySerial.
==== PROTO_TYPE_SINGLE ==== ==== PROTO_TYPE_SINGLE ====

Revision as of 15:02, 3 September 2006

dbus-sharp is a C# implementation of D-Bus. It's also known as "managed DBus" to avoid confusion with existing bindings (which wrap libdbus).

D-Bus is an inter-process communication framework that lets applications interface with the system event bus as well as allowing them to talk to one another in a peer-to-peer configuration.

Contents

Status

This is currently at an early stage of development.

However it is hoped that it will soon provide a tested, high-performance bridge to and from all systems that are exposed via D-Bus, regardless of programming language, UI toolkit or license.

The code is a clean-room implementation based on the D-Bus Specification Version 0.11 and study of the wire protocol of existing tools.

It aims for compatibility with Mono and Microsoft .NET frameworks supporting the 2.0 profile. Backward compatibility with 1.0 will not be a consideration.

Note that the UNIX transport requires changes made to the runtime and class libraries that are only available in Mono svn as of August 21 '06. See Mono bug #79084 and svn revisions r63823 and r63824. These modifications add support for the UNIX domain socket abstract namespace. Mono 1.1.17 is the first release to include the required fixes.

Tasks remaining

Updated Sunday September '03 2006

Tasks towards a pre-1.0 preview release

  • Fix remaining obscure object mapping and transport bugs
  • Finalize public API with input from .NET remoting and DBus experts
  • Run final API through fxcop, gendarme etc.
  • Complete GLib main loop integration API

Tasks towards a 1.0 release

  • Full Exception support (maybe including some amount of stack trace based on contract, if this is desirable)
  • Build system, versioning and packaging considerations
  • Old Mono compatibility layer to replace broken unix sockets on pre-1.1.17 releases
  • Optimize low hanging fruit like marshaling arrays and collections of primitives
  • Optimize marshaling of entirely blittable structures
  • Built-in non-unix transports (tcp etc.)
  • More?

Tasks for 1.1

  • Optimize marshaling of structures which are partially blittable
  • Clever optimizations (scatter gather IO etc.)
  • Customizable object mapping based on constraints and a regular-expression style mapper

Protocol Extensions

dbus-sharp implements certain optional extensions to the DBus protocol. These are ifdef'd:

PROTO_REPLY_SIGNATURE

The signature of the MethodReply expected by a MethodCall. This is implemented as a header field TypeCode: FieldCode.ReplySignature.

Can be enabled without breaking existing libdbus consumers.

Note: This may soon be renamed to FieldCode.RequestSignature to mirror FieldCode.ReplySerial.

PROTO_TYPE_SINGLE

A single precision floating point type defined by the type code 'f'.

Will not work with current libdbus dbus-daemon. Not currently useful.

Download

git-clone git://git.ndesk.org/pub/scm/dbus-sharp

There are no releases yet, and the API is not stable. In particular, please don't even think about checking this into your cvs/svn repository, bundling it with your program or packaging it for your distribution yet!

There is also a module which provides GLib integration as an optional extra:

git-clone git://git.ndesk.org/pub/scm/dbus-sharp-glib

Retrieved from "http://ndesk.org/DBusSharp"