diff options
author | Max Waterman <david.waterman@nokia.com> | 2010-05-07 17:56:16 +0300 |
---|---|---|
committer | Daniel d'Andrada <daniel.dandrada@nokia.com> | 2010-06-10 09:27:01 +0300 |
commit | 606d4800160477f3c85b78f93a1b7039fae48492 (patch) | |
tree | 965c9b58980ae5b34f4f24e4e9b1ac846ea7dbb5 /mservicemapper/mservicemapper_p.h | |
parent | 58a5d496072c3e78aaad85ad84ac44595a8dd8be (diff) |
Fixes: NB#167467, adding and immediately removing service file
RevBy: Michal Guminiak
Details:
service mapper used a file system watcher to detect when services are added and removed.
it erroneously assumed that there would only be a single file removed/added per watcher signal.
now the service mapper correctly emits a signal for each file that has been removed/added.
refactored to add a test for multiple changes, and general improvement (using the
setPrivate() method seen in Qt unit tests). Removed unnecessary use of QMap
Diffstat (limited to 'mservicemapper/mservicemapper_p.h')
-rw-r--r-- | mservicemapper/mservicemapper_p.h | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/mservicemapper/mservicemapper_p.h b/mservicemapper/mservicemapper_p.h index 6b629bc7..c4fb4590 100644 --- a/mservicemapper/mservicemapper_p.h +++ b/mservicemapper/mservicemapper_p.h @@ -26,21 +26,36 @@ #include <QList> #include <QFileSystemWatcher> +class MServiceMapper; + +namespace +{ + enum { LastList, CurrList }; +}; + class MServiceMapperPrivate { public: + MServiceMapperPrivate( const QString &serviceFiledir ); + struct ServiceInfo { QString service; QString interface; }; - QMap<QString, ServiceInfo> serviceFileInfo; - QList<QStringList> serviceFileList; - QFileSystemWatcher watcher; - QString serviceFileDir; + QMap<QString, ServiceInfo> m_serviceFileInfo; + QList<QStringList> m_serviceFileList; + QFileSystemWatcher m_watcher; + QString m_serviceFileDir; + public: - QStringList fillServiceFileList() const; - bool fileExistsAndReadable(const QString &fileName) const; - QIODevice *accessFile(const QString &fileName) const; + virtual QStringList fillServiceFileList() const; + virtual bool fileExistsAndReadable(const QString &fileName) const; + virtual QIODevice *accessFile(const QString &fileName) const; + virtual void init(); + + QString preferredService(const QStringList &serviceList) const; + ServiceInfo serviceInterfacePair(const QString &filePath) const; + void fillServiceFileInfo(); }; #endif |