| Line | Source Code | Coverage |
|---|
| 1 | | - |
| 2 | | - |
| 3 | | - |
| 4 | | - |
| 5 | | - |
| 6 | | - |
| 7 | | - |
| 8 | static QString *busService() { static QGlobalStatic<QString > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QString *x = new QString (QLatin1String("org.freedesktop.DBus")); if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QString > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); } never executed: delete x; executed: return thisGlobalStatic.pointer.load();Execution Count:7 partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)| no Evaluation Count:0 | yes Evaluation Count:2 |
evaluated: !thisGlobalStatic.pointer.load()| yes Evaluation Count:2 | yes Evaluation Count:5 |
partially evaluated: !thisGlobalStatic.destroyed| yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-7 |
| 9 | static QString *busInterface() { static QGlobalStatic<QString > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QString *x = new QString (QLatin1String("org.freedesktop.DBus")); if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QString > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); } never executed: delete x; executed: return thisGlobalStatic.pointer.load();Execution Count:7 partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)| no Evaluation Count:0 | yes Evaluation Count:2 |
evaluated: !thisGlobalStatic.pointer.load()| yes Evaluation Count:2 | yes Evaluation Count:5 |
partially evaluated: !thisGlobalStatic.destroyed| yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-7 |
| 10 | static QString *signalName() { static QGlobalStatic<QString > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QString *x = new QString (QLatin1String("NameOwnerChanged")); if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QString > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); } never executed: delete x; partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x)| no Evaluation Count:0 | yes Evaluation Count:2 |
executed: return thisGlobalStatic.pointer.load();Execution Count:7 evaluated: !thisGlobalStatic.pointer.load()| yes Evaluation Count:2 | yes Evaluation Count:5 |
partially evaluated: !thisGlobalStatic.destroyed| yes Evaluation Count:2 | no Evaluation Count:0 |
| 0-7 |
| 11 | | - |
| 12 | class QDBusServiceWatcherPrivate: public QObjectPrivate | - |
| 13 | { | - |
| 14 | inline QDBusServiceWatcher* q_func() { return static_cast<QDBusServiceWatcher *>(q_ptr); } inline const QDBusServiceWatcher* q_func() const { return static_cast<const QDBusServiceWatcher *>(q_ptr); } friend class QDBusServiceWatcher; | - |
| 15 | public: | - |
| 16 | QDBusServiceWatcherPrivate(const QDBusConnection &c, QDBusServiceWatcher::WatchMode wm) | - |
| 17 | : connection(c), watchMode(wm) | - |
| 18 | { | - |
| 19 | } executed: }Execution Count:5 | 5 |
| 20 | | - |
| 21 | QStringList servicesWatched; | - |
| 22 | QDBusConnection connection; | - |
| 23 | QDBusServiceWatcher::WatchMode watchMode; | - |
| 24 | | - |
| 25 | void _q_serviceOwnerChanged(const QString &, const QString &, const QString &); | - |
| 26 | void setConnection(const QStringList &services, const QDBusConnection &c, QDBusServiceWatcher::WatchMode watchMode); | - |
| 27 | | - |
| 28 | QStringList matchArgsForService(const QString &service); | - |
| 29 | void addService(const QString &service); | - |
| 30 | void removeService(const QString &service); | - |
| 31 | }; | - |
| 32 | | - |
| 33 | void QDBusServiceWatcherPrivate::_q_serviceOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner) | - |
| 34 | { | - |
| 35 | QDBusServiceWatcher * const q = q_func(); | - |
| 36 | q->serviceOwnerChanged(service, oldOwner, newOwner); | - |
| 37 | if (oldOwner.isEmpty()) evaluated: oldOwner.isEmpty()| yes Evaluation Count:5 | yes Evaluation Count:3 |
| 3-5 |
| 38 | q->serviceRegistered(service); executed: q->serviceRegistered(service);Execution Count:5 | 5 |
| 39 | else if (newOwner.isEmpty()) partially evaluated: newOwner.isEmpty()| yes Evaluation Count:3 | no Evaluation Count:0 |
| 0-3 |
| 40 | q->serviceUnregistered(service); executed: q->serviceUnregistered(service);Execution Count:3 | 3 |
| 41 | } | - |
| 42 | | - |
| 43 | void QDBusServiceWatcherPrivate::setConnection(const QStringList &s, const QDBusConnection &c, QDBusServiceWatcher::WatchMode wm) | - |
| 44 | { | - |
| 45 | if (connection.isConnected()) { partially evaluated: connection.isConnected()| yes Evaluation Count:6 | no Evaluation Count:0 |
| 0-6 |
| 46 | | - |
| 47 | for (QForeachContainer<__typeof__(servicesWatched)> _container_(servicesWatched); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QString &s = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 48 | removeService(s); executed: removeService(s);Execution Count:1 | 1 |
| 49 | } executed: }Execution Count:6 | 6 |
| 50 | | - |
| 51 | connection = c; | - |
| 52 | watchMode = wm; | - |
| 53 | servicesWatched = s; | - |
| 54 | | - |
| 55 | if (connection.isConnected()) { partially evaluated: connection.isConnected()| yes Evaluation Count:6 | no Evaluation Count:0 |
| 0-6 |
| 56 | | - |
| 57 | for (QForeachContainer<__typeof__(servicesWatched)> _container_(servicesWatched); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QString &s = *_container_.i;; __extension__ ({--_container_.brk; break;})) | - |
| 58 | addService(s); executed: addService(s);Execution Count:6 | 6 |
| 59 | } executed: }Execution Count:6 | 6 |
| 60 | } executed: }Execution Count:6 | 6 |
| 61 | | - |
| 62 | QStringList QDBusServiceWatcherPrivate::matchArgsForService(const QString &service) | - |
| 63 | { | - |
| 64 | QStringList matchArgs; | - |
| 65 | matchArgs << service; | - |
| 66 | | - |
| 67 | switch (watchMode) { | - |
| 68 | case QDBusServiceWatcher::WatchForOwnerChange: | - |
| 69 | break; executed: break;Execution Count:1 | 1 |
| 70 | | - |
| 71 | case QDBusServiceWatcher::WatchForRegistration: | - |
| 72 | matchArgs << QString::fromLatin1("", 0); | - |
| 73 | break; executed: break;Execution Count:4 | 4 |
| 74 | | - |
| 75 | case QDBusServiceWatcher::WatchForUnregistration: | - |
| 76 | matchArgs << QString() << QString::fromLatin1("", 0); | - |
| 77 | break; executed: break;Execution Count:2 | 2 |
| 78 | } | - |
| 79 | return matchArgs; executed: return matchArgs;Execution Count:7 | 7 |
| 80 | } | - |
| 81 | | - |
| 82 | void QDBusServiceWatcherPrivate::addService(const QString &service) | - |
| 83 | { | - |
| 84 | QStringList matchArgs = matchArgsForService(service); | - |
| 85 | connection.connect(*busService(), QString(), *busInterface(), *signalName(), | - |
| 86 | matchArgs, QString(), q_func(), | - |
| 87 | "1""_q_serviceOwnerChanged(QString,QString,QString)"); | - |
| 88 | } executed: }Execution Count:6 | 6 |
| 89 | | - |
| 90 | void QDBusServiceWatcherPrivate::removeService(const QString &service) | - |
| 91 | { | - |
| 92 | QStringList matchArgs = matchArgsForService(service); | - |
| 93 | connection.disconnect(*busService(), QString(), *busInterface(), *signalName(), | - |
| 94 | matchArgs, QString(), q_func(), | - |
| 95 | "1""_q_serviceOwnerChanged(QString,QString,QString)"); | - |
| 96 | } executed: }Execution Count:1 | 1 |
| 97 | QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent) | - |
| 98 | : QObject(*new QDBusServiceWatcherPrivate(QDBusConnection(QString()), WatchForOwnerChange), parent) | - |
| 99 | { | - |
| 100 | } | 0 |
| 101 | QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, WatchMode watchMode, QObject *parent) | - |
| 102 | : QObject(*new QDBusServiceWatcherPrivate(connection, watchMode), parent) | - |
| 103 | { | - |
| 104 | d_func()->setConnection(QStringList() << service, connection, watchMode); | - |
| 105 | } executed: }Execution Count:5 | 5 |
| 106 | | - |
| 107 | | - |
| 108 | | - |
| 109 | | - |
| 110 | | - |
| 111 | QDBusServiceWatcher::~QDBusServiceWatcher() | - |
| 112 | { | - |
| 113 | } | - |
| 114 | | - |
| 115 | | - |
| 116 | | - |
| 117 | | - |
| 118 | | - |
| 119 | | - |
| 120 | QStringList QDBusServiceWatcher::watchedServices() const | - |
| 121 | { | - |
| 122 | return d_func()->servicesWatched; never executed: return d_func()->servicesWatched; | 0 |
| 123 | } | - |
| 124 | void QDBusServiceWatcher::setWatchedServices(const QStringList &services) | - |
| 125 | { | - |
| 126 | QDBusServiceWatcherPrivate * const d = d_func(); | - |
| 127 | if (services == d->servicesWatched) never evaluated: services == d->servicesWatched | 0 |
| 128 | return; | 0 |
| 129 | d->setConnection(services, d->connection, d->watchMode); | - |
| 130 | } | 0 |
| 131 | | - |
| 132 | | - |
| 133 | | - |
| 134 | | - |
| 135 | | - |
| 136 | | - |
| 137 | void QDBusServiceWatcher::addWatchedService(const QString &newService) | - |
| 138 | { | - |
| 139 | QDBusServiceWatcherPrivate * const d = d_func(); | - |
| 140 | if (d->servicesWatched.contains(newService)) never evaluated: d->servicesWatched.contains(newService) | 0 |
| 141 | return; | 0 |
| 142 | d->addService(newService); | - |
| 143 | d->servicesWatched << newService; | - |
| 144 | } | 0 |
| 145 | bool QDBusServiceWatcher::removeWatchedService(const QString &service) | - |
| 146 | { | - |
| 147 | QDBusServiceWatcherPrivate * const d = d_func(); | - |
| 148 | d->removeService(service); | - |
| 149 | return d->servicesWatched.removeOne(service); never executed: return d->servicesWatched.removeOne(service); | 0 |
| 150 | } | - |
| 151 | | - |
| 152 | QDBusServiceWatcher::WatchMode QDBusServiceWatcher::watchMode() const | - |
| 153 | { | - |
| 154 | return d_func()->watchMode; never executed: return d_func()->watchMode; | 0 |
| 155 | } | - |
| 156 | | - |
| 157 | void QDBusServiceWatcher::setWatchMode(WatchMode mode) | - |
| 158 | { | - |
| 159 | QDBusServiceWatcherPrivate * const d = d_func(); | - |
| 160 | if (mode == d->watchMode) partially evaluated: mode == d->watchMode| no Evaluation Count:0 | yes Evaluation Count:1 |
| 0-1 |
| 161 | return; | 0 |
| 162 | d->setConnection(d->servicesWatched, d->connection, mode); | - |
| 163 | } executed: }Execution Count:1 | 1 |
| 164 | | - |
| 165 | | - |
| 166 | | - |
| 167 | | - |
| 168 | | - |
| 169 | | - |
| 170 | QDBusConnection QDBusServiceWatcher::connection() const | - |
| 171 | { | - |
| 172 | return d_func()->connection; never executed: return d_func()->connection; | 0 |
| 173 | } | - |
| 174 | void QDBusServiceWatcher::setConnection(const QDBusConnection &connection) | - |
| 175 | { | - |
| 176 | QDBusServiceWatcherPrivate * const d = d_func(); | - |
| 177 | if (connection.name() == d->connection.name()) never evaluated: connection.name() == d->connection.name() | 0 |
| 178 | return; | 0 |
| 179 | d->setConnection(d->servicesWatched, connection, d->watchMode); | - |
| 180 | } | 0 |
| 181 | | - |
| 182 | | - |
| 183 | | - |
| 184 | | - |
| 185 | | - |
| 186 | | - |
| | |