Sign in Join
Wiki copytemporary

FPC and DBus/es: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: FPC and DBus/es

OldNewLine
1+### Documentación
2+
3+DBUS es una librería GNU relativamente nueva que implementa la comunicación entre procesos mediante el paso de mensajes. Es la librería por defecto dentro de su genero para aplicaciones GNU.
4+
5+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](http://dbus.freedesktop.org/doc/dbus/api/html/index.html). En un futuro sería deseable que estas cabeceras se envolviesen en una clase para facilitar su uso.
6+
7+#### Código Común
8+
9+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:
10+
11+``` pascal
12+var
13+ err: DBusError;
14+ conn: PDBusConnection;
15+ ret: cint;
16+begin
17+ { Inicialización de errores }
18+ dbus_error_init(@err);
19+
20+ { Conexión }
21+ conn := dbus_bus_get(DBUS_BUS_SESSION, @err);
22+
23+ if dbus_error_is_set(@err) <> 0 then
24+ begin
25+ WriteLn('Connection Error: ' + err.message);
26+ dbus_error_free(@err);
27+ end;
28+
29+ if conn = nil then Exit;
30+
31+ { Petición del nombre del bus }
32+ ret := dbus_bus_request_name(conn, 'test.method.server', DBUS_NAME_FLAG_REPLACE_EXISTING, @err);
33+
34+ if dbus_error_is_set(@err) <> 0 then
35+ begin
36+ WriteLn('Name Error: ' + err.message);
37+ dbus_error_free(@err);
38+ end;
39+
40+ if ret <> DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER then Exit;
41+
42+ ....
43+```
44+
45+Después, una vez que ya no se necesita el bus, se debería cerrar la conexión. Una buena forma de hacerlo en la mayoría de los casos es justamente antes del punto donde la aplicación termina:
46+
47+``` pascal
48+ { Finalización }
49+ dbus_connection_close(conn);
50+```
51+
52+Si queréis se puede comparar este código con el que se encuentra en <http://www.matthew.ath.cx/misc/dbus> escrito en C.
53+
54+#### Enviando una señal
55+
56+#### Recibiendo una señal
57+
58+#### Llamando a un método
59+
60+#### Respondiendo a llamadas a método
61+
62+### Autores
63+
64+Felipe Monteiro de Carvalho
65+
66+### Licencia
67+
68+### Descarga
69+
70+Estado: Beta
71+
72+### Subversión
73+
74+El paquete de FPC para dbus se encuentra en packages/[[dbus]] en el árbol de paquetes de FPC (2.2.2/2.3.x+).
75+
76+Se puede descargar la subversión de esta proyecto utilizando el mandato:
77+
78+svn checkout <http://svn.freepascal.org/svn/fpc/trunk/packages/dbus> dbus
79+
80+Por otra parte se puede descargar un repositorio completo de fpc 2.2.2+/2.3.1 que ya lo lleva incluido.
81+
82+### Informe sobre errores
83+
84+Se precisan pruebas para verificar si todas las funciones y estructuras están declaradas correctamente. Se han realizado ya pruebas para los sistemas operativos Windows, FreeBSD y Linux. Se necesitan pruebas adicionales en otros sistemas operativos para saber si el funcionamiento de estos módulos es correcto.
85+
86+Puedes enviar los informes sobre errores aquí si es necesario:
87+
88+### Registro de cambios
89+
90+- ??.??.06 cabeceras DBus (versión 0.1)
91+
92+1. En construcción
93+
94+### Ayuda
95+
96+Podéis enviar solicitudes de ayuda a las listas de correo de FreePascal o a las listas de correo en apache-modules.
97+
98+### Enlaces Externos
99+
100+- [1](http://www.matthew.ath.cx/misc/dbus) - Una tutoría sobre la utilización de la API de DBUS C.
101+- [](http://dbus.freedesktop.org/doc/dbus-tutorial.html) - Tutoría en freedesktop.org.
102+- [2](http://techbase.kde.org/Development/Tutorials/D-Bus/Introduction) - Tutoría introductoria en KDE.org.
103+- [3](http://techbase.kde.org/Development/Tutorials/D-Bus/Introduction_(es)) - Lo mismo que lo anterior pero en Español (he traducido el artículo que viene en inglés en la web de KDE lo mejor que he podido y aún me queda parte para terminarlo pero creo que se entiende bastante bien).
104+- [Indice D-Bus en KDE](http://techbase.kde.org/Development/Tutorials_%28es%29#D-Bus): traduciré el resto de los puntos al español en la medida que tenga tiempo libre.
105+
106+---
107+*From the Free Pascal wiki, page "FPC and DBus/es", as it stood on 2020-02-16 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
108+Category: Castellano
109+Category: Español

Back to history