User:Neverendingo/id

From KDE Wiki Sandbox
Revision as of 07:23, 24 August 2010 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

Section title in English

Most pages can be ported from the old site as-is and are marked with "done, needs review". Links are noted.

Some are already included in the testing area, which can be found on http://www-devel.kde.org/community/ (starting at a subdir as the main page is a different matter).

To make it easy all i would need is a plain txt file, html tags can be applied afterwards.

  • One
  • Two
    • Two point one
  • Three

Der Aufruf einer D-Bus Methode

Eine QDBusMessage kann direkt mit der statischen Methode QDBusMessage::createMethodCall( const QString & service, const QString & path, const QString & interface, const QString & method ) benutzt werden, um Methoden in D-Bus Diensten aufzurufen. Der Rückgabewert ist ein QDBusMessage Objekt, welches dann für den eigentlichen Aufruf benutzt wird.

Der interface Parameter ist optional und nur erforderlich, wenn die Methode nicht eindeutig identifizierbar im, mit dem Pfad assoziierten, Objekt ist.Dies kann passieren, wenn das Objekt mehrere Schnittstellen implementiert, die Methoden, mit den gleichen Namen haben. In solchen (seltenen) Fällen, gibt es keine Garantie darüber, welche Methode tatsächlich aufgerufen wird, wenn man die gewünschte Schnittstelle nicht explizit definiert. Allerdings kann man in der Regel einfach eine leere Zeichenfolge (z.B. ""), als Argument für interface übergeben.

Als Beispiel für den Zugriff auf einen Dienst der (fiktiven) ping-Methode für das /network object in der org.foo.bar, könnte man dies zu tun:

QDBusMessage m = QDBusMessage::createMethodCall("org.foo.bar",

   "/network", 
   "",
   "ping");

bool queued = QDBusConnection::sessionBus().send(m);

In Zeile 5 im obigen Beispiel haben wir die Nachrichten-Warteschlange für das Senden über den aktuelle Session-Bus. Der Rückgabewert vom Typ bool lässt uns wissen, ob das Einstellen in die Warteschlange erfolgreich war, oder nicht.

Dies lässt noch zwei Fragen offen:

  • Wie werden die Parameter für einen Methodenaufruf korrekt gesetzt?
  • Wie kommt man an die Rückmeldung im Falle der D-Bus-Methoden, die einen Rückgabewert haben?