Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef RQT_MULTIPLOT_PACKAGE_REGISTRY_H
00020 #define RQT_MULTIPLOT_PACKAGE_REGISTRY_H
00021
00022 #include <QMap>
00023 #include <QMutex>
00024 #include <QObject>
00025 #include <QString>
00026 #include <QThread>
00027
00028 namespace rqt_multiplot {
00029 class PackageRegistry :
00030 public QObject {
00031 Q_OBJECT
00032 public:
00033 PackageRegistry(QObject* parent = 0);
00034 ~PackageRegistry();
00035
00036 QMap<QString, QString> getPackages() const;
00037 bool isUpdating() const;
00038 bool isEmpty() const;
00039
00040 void update();
00041 void wait();
00042
00043 signals:
00044 void updateStarted();
00045 void updateFinished();
00046
00047 private:
00048 class Impl :
00049 public QThread {
00050 public:
00051 Impl(QObject* parent = 0);
00052 virtual ~Impl();
00053
00054 void run();
00055
00056 mutable QMutex mutex_;
00057 QMap<QString, QString> packages_;
00058 };
00059
00060 static Impl impl_;
00061
00062 private slots:
00063 void threadStarted();
00064 void threadFinished();
00065 };
00066 };
00067
00068 #endif