Jump to content

User:Neverendingo: Difference between revisions

From KDE UserBase Wiki
Neverendingo (talk | contribs)
No edit summary
Neverendingo (talk | contribs)
No edit summary
Line 102: Line 102:
* Three
* Three


[[<translate><!--T:1-->
<translate>
test|test link]]</translate>
=== 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?
</translate>

Revision as of 12:30, 13 August 2010

 Sites that need to be edited for the release of the new KDE main site

Site Info Status
Community What is the community, how can it be descrbed + link to gettinginvolved missing
Events needs porting
Talks list of talks with links to material (slides etc) missing
Get Involved Original: http://www.kde.org/getinvolved/ done, needs review
Donation missing
Mailinglist Original: http://www.kde.org/mailinglists/ done, needs review
History

Original: http://www.kde.org/history/

(is it really necessary to have all those dev related items there or would it be better to put them onto techbase?) and shouldn't GCDS be listed along with Akademy meets?

needs rewrite
Press Releases Original: http://www.kde.org/presspage/ done, needs review
Workspaces http://www-devel.kde.org/workspaces/ done, needs review
Plasma Desktop missing
Plasma Netbook missing
Plasma Mobile (??) missing
Applications automatically (?)
Developer Platform in progress: dhillonv10
Howtos xbase links
IDE in progress: dhillonv10
SDK in progress: dhillonv10
Case Studies missing
Support Original: http://www.kde.org/support/ done, needs review


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?