Introduction to D-Bus | Cerca per titolo, autore, parola chiave | ||||||||
Introduction to D-Bus D-Bus (Desktop Bus) è un meccanismo IPC (inter-process communication) free/open source, parte del progetto freedesktop.org. Il termine “IPC” indica i metodi per scambiare informazioni tra un processo ed un altro, chiamare metodi di uno dei due processi, restare in attesa di eventi. D-Bus mette a disposizione delle applicazioni più canali (bus), da utilizzare per comunicare tra loro. Ognuno di questi canali (bus) offre un servizio particolare, così da poter separare le differenti categorie di messaggi: i messaggi inviati su un bus non possono essere intercettati da un altro bus, mentre le applicazioni connesse allo stesso bus potranno comunicare le une con le altre. Più applicazioni possono essere connesse ad un bus contemporaneamente e un'applicazione può essere connessa a più bus contemporaneamente. Questo per permettere di applicare regole differenti ai singoli bus. D-Bus mette a disposizione due bus predefiniti:
Ciascuna applicazione, inoltre, potrà creare un numero illimitato di suoi bus, se necessario. I bus trasportano i messaggi. I messaggi sono composti da pacchetti di dati, che, contrariamente a quanto accade con TCP/IP, contengono l'intero set di dati da inviare o ricevere. Un messaggio può contenere una chiamata di funzione, un segnale, il valore restituito da un metodo (funzione), informazioni su un errore. Oltre ai dati, un messaggio contiene gli identificativi del mittente e del destinatario. Ci sono 3 informazioni che, messe insieme, creano un identificativo unico per ciascun oggetto presente su un bus: interfaccia, servizio, nome dell'oggetto:
qdbus è un comando di shell che permette di elencare i servizi, gli oggetti, le interfacce presenti su un bus di dati, oltre a permettere di inviare messaggi ad un determinato indirizzo. Se viene invocato senza parametri: qdbus verranno elencati gli oggetti presenti sul bus di sessione, mentre specificando: qdbus --system verranno elencati gli oggetti presenti sul bus di sistema. qdbus interpreta gli argomenti passati alla riga di comando come un indirizzo e, se presenti, come parametri da passare all'oggetto. Se non viene specificato alcun indirizzo, qdbus elencherà tutti gli oggetti presenti sul bus. Se viene specificato un nome di servizio, verranno restituiti gli object paths: qdbus org.freedesktop.ScreenSaver / /org /org/freedesktop /org/freedesktop/ScreenSaver /ScreenSaver Se viene specificato anche un percorso (path), verranno restituiti tutti i metodi: qdbus org.freedesktop.ScreenSaver /ScreenSaver method void org.freedesktop.DBus.Peer.Ping() I metodi sono messaggi inviati da un'applicazione ad un'altra, affinché l'applicazione destinataria esegua un determinato codice.
|
|||||||||
Introduction to D-Bus | Disclaimer: questo è un link a contenuti ospitati su server esterni. |