#include <complexping.h>
Inheritance diagram for Ping:


Definition at line 31 of file complexping.h.
Public Slots | |
| void | start (const QString &, const QString &, const QString &) |
Public Attributes | |
| QFile | qstdin |
| QDBusInterface * | iface |
Definition at line 35 of file complexping.cpp.
References QDBusAbstractInterface::call(), QObject::connect(), QString::fromLocal8Bit(), iface, QCoreApplication::instance(), QString::isEmpty(), QVariant::isNull(), QDBusError::isValid(), QDBusAbstractInterface::isValid(), QDBusReply< T >::isValid(), QDBusAbstractInterface::lastError(), message, QDBusError::message(), QString::mid(), name, QFile::open(), printf, QObject::property(), qstdin, QCoreApplication::quit(), QIODevice::readLine(), QIODevice::ReadOnly, SERVICE_NAME, QDBusConnection::sessionBus(), QObject::setProperty(), SIGNAL, SLOT, QString::startsWith(), QVariant::toString(), and QDBusReply< T >::value().
00036 { 00037 Q_UNUSED(oldValue); 00038 00039 if (name != SERVICE_NAME || newValue.isEmpty()) 00040 return; 00041 00042 // open stdin for reading 00043 qstdin.open(stdin, QIODevice::ReadOnly); 00044 00045 // find our remote 00046 iface = new QDBusInterface(SERVICE_NAME, "/", "com.trolltech.QtDBus.ComplexPong.Pong", 00047 QDBusConnection::sessionBus(), this); 00048 if (!iface->isValid()) { 00049 fprintf(stderr, "%s\n", 00050 qPrintable(QDBusConnection::sessionBus().lastError().message())); 00051 QCoreApplication::instance()->quit(); 00052 } 00053 00054 connect(iface, SIGNAL(aboutToQuit()), QCoreApplication::instance(), SLOT(quit())); 00055 00056 while (true) { 00057 printf("Ask your question: "); 00058 00059 QString line = QString::fromLocal8Bit(qstdin.readLine()).trimmed(); 00060 if (line.isEmpty()) { 00061 iface->call("quit"); 00062 return; 00063 } else if (line == "value") { 00064 QVariant reply = iface->property("value"); 00065 if (!reply.isNull()) 00066 printf("value = %s\n", qPrintable(reply.toString())); 00067 } else if (line.startsWith("value=")) { 00068 iface->setProperty("value", line.mid(6)); 00069 } else { 00070 QDBusReply<QDBusVariant> reply = iface->call("query", line); 00071 if (reply.isValid()) 00072 printf("Reply was: %s\n", qPrintable(reply.value().variant().toString())); 00073 } 00074 00075 if (iface->lastError().isValid()) 00076 fprintf(stderr, "Call failed: %s\n", qPrintable(iface->lastError().message())); 00077 } 00078 }
1.5.1