/* * Copyright (C) 2008, 2009 Nokia Corporation. * * Contact: Marius Vollmer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * version 2.1 as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * */ #ifndef SUBSCRIBERINTERFACE_H #define SUBSCRIBERINTERFACE_H #include #include #include #include #include class QDBusConnection; class QDBusPendingCallWatcher; namespace ContextSubscriber { class SubscriberInterface : public QDBusAbstractInterface { Q_OBJECT public: SubscriberInterface(const QDBusConnection connection, const QString& busName, const QString& objectPath, QObject* parent = 0); void subscribe(QSet keys); void unsubscribe(QSet keys); Q_SIGNALS: void valuesChanged(QMap values); void subscribeFinished(QList keys); void subscribeFailed(QList keys, QString error); void Changed(const QMap &values, const QStringList &unknownKeys); private Q_SLOTS: void onSubscribeFinished(QDBusPendingCallWatcher* watcher); void onChanged(const QMap &values, const QStringList &unknownKeys); private: SubscriberInterface(const SubscriberInterface& other); SubscriberInterface& operator=(const SubscriberInterface& other); QMap& mergeNullsWithMap(QMap &map, QStringList nulls) const; protected: void connectNotify(const char *signal); void disconnectNotify(const char *signal); static const char* interfaceName; }; } // end namespace #endif