FPC and DBus/es
│
English (en) │
español (es) │
Documentación
DBUS es una librería GNU relativamente nueva que implementa la comunicación entre procesos. Es la librería por defecto dentro de su genero para aplicaciones GNU.
Esta librería provee de lo necesario para que las aplicaciones se comuniquen unas con otras, utilizando el bus del sistema. Estas cabeceras (headers) son la traducción de la API C de bajo nivel. En un futuro sería deseable que estas cabeceras se envolviesen en una clase para facilitar su uso.
Common Code
Independientemente de lo que se quiera lograr con un programa, una gran cantidad del código contenido en el mismo tendrá grandes similitudes por el hecho de utilizar DBUS. Esta similitud la tendremos en el código de comienzo y finalización. En el comienzo porque se hace necesaria la conexión con el bus. Usualmente hay un sistema y una sesión de bus. Dependiendo de la configuración del sistema puede que no se tenga acceso al bus del sistema. A continuación se necesita una petición para obtener un nombre en el bus. Lo siguiente muestra de forma simplificada el código para el comienzo:
var err: DBusError; conn: PDBusConnection; ret: cint; begin { Initializes the errors } dbus_error_init(@err); { Connection } conn := dbus_bus_get(DBUS_BUS_SESSION, @err); if dbus_error_is_set(@err) <> 0 then begin WriteLn('Connection Error: ' + err.message); dbus_error_free(@err); end; if conn = nil then Exit; { Request the name of the bus } ret := dbus_bus_request_name(conn, 'test.method.server', DBUS_NAME_FLAG_REPLACE_EXISTING, @err); if dbus_error_is_set(@err) <> 0 then begin WriteLn('Name Error: ' + err.message); dbus_error_free(@err); end; if ret <> DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER then Exit; ....
After you no longer need the bus you should close the connect. A good place to do this on most cases is right before the application terminates.
{ Finalization } dbus_connection_close(conn);
Sending a Signal
Receiving a Signal
Calling a Method
Responding to Method calls
Authors
License
Download
Status: Beta
Subversion
The FPC package for dbus resides in packages/dbus in the FPC (2.2.2/2.3.x+) packages tree.
You can download the subversion version of this project using this command:
svn checkout http://svn.freepascal.org/svn/fpc/trunk/packages/dbus dbus
You can also download a full fpc 2.2.2+/2.3.1 repository and it will be included.
Bug Reporting
Tests are necessary to verify if all functions and structures are declared properly. Tests were done on Windows,FreeBSD and Linux operating systems. It is necessary to test if the modules work correctly in other operating system.
You can post Bug Reports here:
Change Log
- ??.??.06 DBus headers version 0.1
- Under construction
Help
Please send help requests to the Free Pascal mailling list or on apache-modules mailling list.
External Links
- [1] - A Tutorial about using the DBUS C API