User:Neverendingo/de: Difference between revisions
Neverendingo (talk | contribs) No edit summary |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
__TOC__ | |||
<span id="Section_Title_in_English"></span> | |||
==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. | Most pages can be ported from the old site as-is and are marked with "done, needs review". Links are noted. | ||
Line 102: | Line 16: | ||
* Three | * Three | ||
[[< | === Der Aufruf einer D-Bus Methode === | ||
Eine [http://doc.qt.nokia.com/latest/QDBusMessage.html QDBusMessage] kann direkt mit der statischen Methode [http://doc.qt.nokia.com/latest/QDBusMessage.html QDBusMessage]<tt>::createMethodCall( const QString & service, const QString & path, const QString & interface, const QString & method )</tt> benutzt werden, um Methoden in D-Bus Diensten aufzurufen. Der Rückgabewert ist ein [http://doc.qt.nokia.com/latest/QDBusMessage.html QDBusMessage] Objekt, welches dann für den eigentlichen Aufruf benutzt wird. | |||
</ | |||
Der <tt>interface</tt> 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 <tt>interface</tt> übergeben. | |||
Als Beispiel für den Zugriff auf einen Dienst der (fiktiven) <tt>ping</tt>-Methode für das {{path|/network}} object in der <tt>org.foo.bar</tt>, könnte man dies zu tun: | |||
<code cppqt> | |||
QDBusMessage m = QDBusMessage::createMethodCall("org.foo.bar", | |||
"/network", | |||
"", | |||
"ping"); | |||
bool queued = QDBusConnection::sessionBus().send(m); | |||
</code> | |||
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 <tt>bool</tt> 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? |
Revision as of 07:23, 24 August 2010
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?