#include <contextkitplugin.h>
Signals | |
void | ready () |
Emitted when the GetSubscriber call returns successfully. | |
void | failed (QString error) |
Emitted when the GetSubscriber call fails or provider not on D-Bus at all. | |
void | subscribeFinished (QString key) |
Emitted when Subscribe call succeeds on D-Bus. | |
void | subscribeFailed (QString failedKey, QString error) |
Emitted when Subscribe call fails on D-Bus. | |
void | valueChanged (QString key, QVariant value) |
Emitted when ValueChanged signal comes on D-Bus. | |
Public Member Functions | |
ContextKitPlugin (const QDBusConnection bus, const QString &busName) | |
Creates subscriber and manager interface, tries to get a subscriber instance from the manager and starts listening for provider appearing and disappearing on D-Bus. | |
void | subscribe (QSet< QString > keys) |
Forwards the subscribe request to the wire. | |
void | unsubscribe (QSet< QString > keys) |
Forwards the unsubscribe request to the wire. | |
void | setDefaultNewProtocol (bool s) |
void | blockUntilReady () |
void | blockUntilSubscribed (const QString &key) |
Private Slots | |
void | onNewValueChanged (QList< QVariant > value, quint64 timestamp, QDBusMessage message) |
void | onDBusValuesChanged (QMap< QString, QVariant > values) |
Forwards value changes from the wire to the upper layer (Provider). | |
void | onDBusGetSubscriberFinished (QDBusObjectPath objectPath) |
Starts using the fresh subscriber interface when it is returned by the manager in response to the GetSubscriber call. | |
void | onDBusGetSubscriberFailed (QDBusError err) |
void | onDBusSubscribeFinished (QList< QString > keys) |
Signals the Provider that the Subscribe call (old protocol) is finished. | |
void | onDBusSubscribeFailed (QList< QString > keys, QString error) |
Signals the Provider that the Subscribe call (old protocol) has failed. | |
void | onProviderAppeared () |
Gets a new subscriber interface from manager when the provider appears. | |
void | onProviderDisappeared () |
Delete our subscriber interface when the provider goes away. | |
void | newSubscribe (const QString &key) |
void | removePendingWatcher (const QString &key) |
Private Member Functions | |
void | reset () |
void | useNewProtocol () |
QMap< QString, QVariant > & | mergeNullsWithMap (QMap< QString, QVariant > &map, QStringList nulls) const |
Static Private Member Functions | |
static QString | keyToPath (QString key) |
Converts a key name to a protocol level object path. | |
Private Attributes | |
DBusNameListener * | providerListener |
Listens to provider's (dis)appearance over DBus. | |
SubscriberInterface * | subscriberInterface |
The D-Bus interface for the Subscriber object. | |
QDBusAbstractInterface * | managerInterface |
The D-Bus interface for the Manager object. | |
QDBusConnection * | connection |
The connection to DBus. | |
QString | busName |
The D-Bus service name of the ContextKit provider connected to. | |
bool | newProtocol |
The current provider on D-Bus speaks the new protocol only. | |
bool | defaultNewProtocol |
Let's only try the new protocol to talk with the provider. | |
QHash< QString, QString > | objectPathToKey |
QHash< QString, PendingSubscribeWatcher * > | pendingWatchers |
QSet< QString > | pendingKeys |
ContextSubscriber::ContextKitPlugin::ContextKitPlugin | ( | const QDBusConnection | bus, | |
const QString & | busName | |||
) |
Creates subscriber and manager interface, tries to get a subscriber instance from the manager and starts listening for provider appearing and disappearing on D-Bus.
void ContextSubscriber::ContextKitPlugin::subscribe | ( | QSet< QString > | keys | ) | [virtual] |
void ContextSubscriber::ContextKitPlugin::unsubscribe | ( | QSet< QString > | keys | ) | [virtual] |
void ContextSubscriber::ContextKitPlugin::setDefaultNewProtocol | ( | bool | s | ) |
void ContextSubscriber::ContextKitPlugin::blockUntilReady | ( | ) | [virtual] |
Implements ContextSubscriber::IProviderPlugin.
void ContextSubscriber::ContextKitPlugin::blockUntilSubscribed | ( | const QString & | key | ) | [virtual] |
Implements ContextSubscriber::IProviderPlugin.
void ContextSubscriber::ContextKitPlugin::ready | ( | ) | [signal] |
Emitted when the GetSubscriber call returns successfully.
Reimplemented from ContextSubscriber::IProviderPlugin.
void ContextSubscriber::ContextKitPlugin::failed | ( | QString | error | ) | [signal] |
Emitted when the GetSubscriber call fails or provider not on D-Bus at all.
Reimplemented from ContextSubscriber::IProviderPlugin.
void ContextSubscriber::ContextKitPlugin::subscribeFinished | ( | QString | key | ) | [signal] |
Emitted when Subscribe call succeeds on D-Bus.
Reimplemented from ContextSubscriber::IProviderPlugin.
void ContextSubscriber::ContextKitPlugin::subscribeFailed | ( | QString | failedKey, | |
QString | error | |||
) | [signal] |
void ContextSubscriber::ContextKitPlugin::valueChanged | ( | QString | key, | |
QVariant | value | |||
) | [signal] |
Emitted when ValueChanged signal comes on D-Bus.
Reimplemented from ContextSubscriber::IProviderPlugin.
void ContextSubscriber::ContextKitPlugin::onNewValueChanged | ( | QList< QVariant > | value, | |
quint64 | timestamp, | |||
QDBusMessage | message | |||
) | [private, slot] |
void ContextSubscriber::ContextKitPlugin::onDBusValuesChanged | ( | QMap< QString, QVariant > | values | ) | [private, slot] |
Forwards value changes from the wire to the upper layer (Provider).
void ContextSubscriber::ContextKitPlugin::onDBusGetSubscriberFinished | ( | QDBusObjectPath | objectPath | ) | [private, slot] |
Starts using the fresh subscriber interface when it is returned by the manager in response to the GetSubscriber call.
void ContextSubscriber::ContextKitPlugin::onDBusGetSubscriberFailed | ( | QDBusError | err | ) | [private, slot] |
void ContextSubscriber::ContextKitPlugin::onDBusSubscribeFinished | ( | QList< QString > | keys | ) | [private, slot] |
Signals the Provider that the Subscribe call (old protocol) is finished.
void ContextSubscriber::ContextKitPlugin::onDBusSubscribeFailed | ( | QList< QString > | keys, | |
QString | error | |||
) | [private, slot] |
Signals the Provider that the Subscribe call (old protocol) has failed.
void ContextSubscriber::ContextKitPlugin::onProviderAppeared | ( | ) | [private, slot] |
Gets a new subscriber interface from manager when the provider appears.
void ContextSubscriber::ContextKitPlugin::onProviderDisappeared | ( | ) | [private, slot] |
Delete our subscriber interface when the provider goes away.
void ContextSubscriber::ContextKitPlugin::newSubscribe | ( | const QString & | key | ) | [private, slot] |
void ContextSubscriber::ContextKitPlugin::removePendingWatcher | ( | const QString & | key | ) | [private, slot] |
QString ContextSubscriber::ContextKitPlugin::keyToPath | ( | QString | key | ) | [static, private] |
Converts a key name to a protocol level object path.
There is a distinction, because core properties have the form /org/maemo/contextkit/Screen/TopEdge
on D-Bus level, but on higher levels they are Screen.TopEdge
. Non-core properties should simply have a name like /com/nokia/modem/Specific/Feature, so they can be used as object paths without further conversions.
void ContextSubscriber::ContextKitPlugin::reset | ( | ) | [private] |
void ContextSubscriber::ContextKitPlugin::useNewProtocol | ( | ) | [private] |
QMap<QString, QVariant>& ContextSubscriber::ContextKitPlugin::mergeNullsWithMap | ( | QMap< QString, QVariant > & | map, | |
QStringList | nulls | |||
) | const [private] |
Listens to provider's (dis)appearance over DBus.
The D-Bus interface for the Subscriber object.
QDBusAbstractInterface* ContextSubscriber::ContextKitPlugin::managerInterface [private] |
The D-Bus interface for the Manager object.
QDBusConnection* ContextSubscriber::ContextKitPlugin::connection [private] |
The connection to DBus.
QString ContextSubscriber::ContextKitPlugin::busName [private] |
The D-Bus service name of the ContextKit provider connected to.
bool ContextSubscriber::ContextKitPlugin::newProtocol [private] |
The current provider on D-Bus speaks the new protocol only.
bool ContextSubscriber::ContextKitPlugin::defaultNewProtocol [private] |
Let's only try the new protocol to talk with the provider.
QHash<QString, QString> ContextSubscriber::ContextKitPlugin::objectPathToKey [private] |
QHash<QString, PendingSubscribeWatcher*> ContextSubscriber::ContextKitPlugin::pendingWatchers [private] |
QSet<QString> ContextSubscriber::ContextKitPlugin::pendingKeys [private] |