qdbusserver.cpp

Source codeSwitch to Preprocessed file
LineSource CodeCoverage
1/**************************************************************************** -
2** -
3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -
4** Contact: http://www.qt-project.org/legal -
5** -
6** This file is part of the QtDBus module of the Qt Toolkit. -
7** -
8** $QT_BEGIN_LICENSE:LGPL$ -
9** Commercial License Usage -
10** Licensees holding valid commercial Qt licenses may use this file in -
11** accordance with the commercial license agreement provided with the -
12** Software or, alternatively, in accordance with the terms contained in -
13** a written agreement between you and Digia. For licensing terms and -
14** conditions see http://qt.digia.com/licensing. For further information -
15** use the contact form at http://qt.digia.com/contact-us. -
16** -
17** GNU Lesser General Public License Usage -
18** Alternatively, this file may be used under the terms of the GNU Lesser -
19** General Public License version 2.1 as published by the Free Software -
20** Foundation and appearing in the file LICENSE.LGPL included in the -
21** packaging of this file. Please review the following information to -
22** ensure the GNU Lesser General Public License version 2.1 requirements -
23** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -
24** -
25** In addition, as a special exception, Digia gives you certain additional -
26** rights. These rights are described in the Digia Qt LGPL Exception -
27** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -
28** -
29** GNU General Public License Usage -
30** Alternatively, this file may be used under the terms of the GNU -
31** General Public License version 3.0 as published by the Free Software -
32** Foundation and appearing in the file LICENSE.GPL included in the -
33** packaging of this file. Please review the following information to -
34** ensure the GNU General Public License version 3.0 requirements will be -
35** met: http://www.gnu.org/copyleft/gpl.html. -
36** -
37** -
38** $QT_END_LICENSE$ -
39** -
40****************************************************************************/ -
41 -
42#include "qdbusserver.h" -
43#include "qdbusconnection_p.h" -
44#include "qdbusconnectionmanager_p.h" -
45 -
46#ifndef QT_NO_DBUS -
47 -
48QT_BEGIN_NAMESPACE -
49 -
50/*! -
51 \class QDBusServer -
52 \inmodule QtDBus -
53 -
54 \brief The QDBusServer class provides peer-to-peer communication -
55 between processes on the same computer. -
56*/ -
57 -
58/*! -
59 Constructs a QDBusServer with the given \a address, and the given -
60 \a parent. -
61*/ -
62QDBusServer::QDBusServer(const QString &address, QObject *parent) -
63 : QObject(parent) -
64{ -
65 if (address.isEmpty())
partially evaluated: address.isEmpty()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
66 return;
never executed: return;
0
67 -
68 if (!qdbus_loadLibDBus()) {
partially evaluated: !qdbus_loadLibDBus()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
69 d = 0;
never executed (the execution status of this line is deduced): d = 0;
-
70 return;
never executed: return;
0
71 } -
72 d = new QDBusConnectionPrivate(this);
executed (the execution status of this line is deduced): d = new QDBusConnectionPrivate(this);
-
73 -
74 QObject::connect(d, SIGNAL(newServerConnection(QDBusConnection)),
executed (the execution status of this line is deduced): QObject::connect(d, "2""newServerConnection(QDBusConnection)",
-
75 this, SIGNAL(newConnection(QDBusConnection)));
executed (the execution status of this line is deduced): this, "2""newConnection(QDBusConnection)");
-
76 -
77 QDBusErrorInternal error;
executed (the execution status of this line is deduced): QDBusErrorInternal error;
-
78 d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error);
executed (the execution status of this line is deduced): d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error);
-
79}
executed: }
Execution Count:8
8
80 -
81/*! -
82 Constructs a QDBusServer with the given \a parent. The server will listen -
83 for connections in \c {/tmp}. -
84*/ -
85QDBusServer::QDBusServer(QObject *parent) -
86 : QObject(parent) -
87{ -
88 const QString address = QLatin1String("unix:tmpdir=/tmp");
never executed (the execution status of this line is deduced): const QString address = QLatin1String("unix:tmpdir=/tmp");
-
89 -
90 if (!qdbus_loadLibDBus()) {
never evaluated: !qdbus_loadLibDBus()
0
91 d = 0;
never executed (the execution status of this line is deduced): d = 0;
-
92 return;
never executed: return;
0
93 } -
94 d = new QDBusConnectionPrivate(this);
never executed (the execution status of this line is deduced): d = new QDBusConnectionPrivate(this);
-
95 -
96 QObject::connect(d, SIGNAL(newServerConnection(QDBusConnection)),
never executed (the execution status of this line is deduced): QObject::connect(d, "2""newServerConnection(QDBusConnection)",
-
97 this, SIGNAL(newConnection(QDBusConnection)));
never executed (the execution status of this line is deduced): this, "2""newConnection(QDBusConnection)");
-
98 -
99 QDBusErrorInternal error;
never executed (the execution status of this line is deduced): QDBusErrorInternal error;
-
100 d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error);
never executed (the execution status of this line is deduced): d->setServer(q_dbus_server_listen(address.toUtf8().constData(), error), error);
-
101}
never executed: }
0
102 -
103/*! -
104 Destructs a QDBusServer -
105*/ -
106QDBusServer::~QDBusServer() -
107{ -
108 if (QDBusConnectionManager::instance()) {
partially evaluated: QDBusConnectionManager::instance()
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
109 QMutexLocker locker(&QDBusConnectionManager::instance()->mutex);
executed (the execution status of this line is deduced): QMutexLocker locker(&QDBusConnectionManager::instance()->mutex);
-
110 Q_FOREACH (const QString &name, d->serverConnectionNames) {
executed (the execution status of this line is deduced): for (QForeachContainer<__typeof__(d->serverConnectionNames)> _container_(d->serverConnectionNames); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QString &name = *_container_.i;; __extension__ ({--_container_.brk; break;})) {
-
111 QDBusConnectionManager::instance()->removeConnection(name);
executed (the execution status of this line is deduced): QDBusConnectionManager::instance()->removeConnection(name);
-
112 }
executed: }
Execution Count:17
17
113 d->serverConnectionNames.clear();
executed (the execution status of this line is deduced): d->serverConnectionNames.clear();
-
114 }
executed: }
Execution Count:8
8
115}
executed: }
Execution Count:8
8
116 -
117/*! -
118 Returns true if this QDBusServer object is connected. -
119 -
120 If it isn't connected, you need to call the constructor again. -
121*/ -
122bool QDBusServer::isConnected() const -
123{ -
124 return d && d->server && q_dbus_server_get_is_connected(d->server);
executed: return d && d->server && q_dbus_server_get_is_connected(d->server);
Execution Count:17
17
125} -
126 -
127/*! -
128 Returns the last error that happened in this server. -
129 -
130 This function is provided for low-level code. -
131*/ -
132QDBusError QDBusServer::lastError() const -
133{ -
134 return d->lastError;
never executed: return d->lastError;
0
135} -
136 -
137/*! -
138 Returns the address this server is associated with. -
139*/ -
140QString QDBusServer::address() const -
141{ -
142 QString addr;
executed (the execution status of this line is deduced): QString addr;
-
143 if (d && d->server) {
partially evaluated: d
TRUEFALSE
yes
Evaluation Count:18
no
Evaluation Count:0
partially evaluated: d->server
TRUEFALSE
yes
Evaluation Count:18
no
Evaluation Count:0
0-18
144 char *c = q_dbus_server_get_address(d->server);
executed (the execution status of this line is deduced): char *c = q_dbus_server_get_address(d->server);
-
145 addr = QString::fromUtf8(c);
executed (the execution status of this line is deduced): addr = QString::fromUtf8(c);
-
146 q_dbus_free(c);
executed (the execution status of this line is deduced): q_dbus_free(c);
-
147 }
executed: }
Execution Count:18
18
148 -
149 return addr;
executed: return addr;
Execution Count:18
18
150} -
151 -
152/*! -
153 \fn void QDBusServer::newConnection(const QDBusConnection &connection) -
154 -
155 This signal is emitted when a new client connection \a connection is -
156 established to the server. -
157 */ -
158 -
159QT_END_NAMESPACE -
160 -
161#endif // QT_NO_DBUS -
162 -
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial