Merge lp:~thomas-voss/dbus-cpp/enable-dual-landings into lp:dbus-cpp
- enable-dual-landings
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Thomas Voß |
Approved revision: | 110 |
Merged at revision: | 102 |
Proposed branch: | lp:~thomas-voss/dbus-cpp/enable-dual-landings |
Merge into: | lp:dbus-cpp |
Diff against target: |
1472 lines (+519/-483) 32 files modified
CMakeLists.txt (+29/-4) debian/VERSION (+1/-0) debian/VERSION.vivid (+1/-0) debian/bileto_pre_release_hook (+69/-0) debian/changelog (+47/-0) debian/control (+9/-3) debian/control.in (+73/-0) debian/get-versions.sh (+67/-0) debian/libdbus-cpp5.symbols.32bit (+0/-198) debian/libdbus-cpp5.symbols.64bit (+0/-199) debian/libdbus-cpp5.symbols.amd64 (+0/-2) debian/libdbus-cpp5.symbols.arm64 (+0/-2) debian/libdbus-cpp5.symbols.armhf (+0/-2) debian/libdbus-cpp5.symbols.coverage (+0/-5) debian/libdbus-cpp5.symbols.i386 (+0/-2) debian/libdbus-cpp5.symbols.powerpc (+0/-2) debian/libdbus-cpp5.symbols.ppc64el (+0/-2) debian/rules (+17/-1) include/core/dbus/impl/object.h (+95/-34) include/core/dbus/impl/property.h (+21/-0) include/core/dbus/impl/signal.h (+8/-5) include/core/dbus/message.h (+2/-0) include/core/dbus/object.h (+8/-7) include/core/dbus/property.h (+8/-0) include/core/dbus/signal.h (+5/-2) src/core/dbus/bus.cpp (+13/-1) src/core/dbus/match_rule.cpp (+1/-8) src/core/dbus/message.cpp (+19/-0) src/core/dbus/service.cpp (+1/-1) tests/async_execution_load_test.cpp (+1/-1) tests/executor_test.cpp (+4/-2) tests/message_test.cpp (+20/-0) |
To merge this branch: | bzr merge lp:~thomas-voss/dbus-cpp/enable-dual-landings |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Łukasz Zemczak | packaging | Approve | |
PS Jenkins bot | continuous-integration | Needs Fixing | |
Review via email: mp+278251@code.launchpad.net |
Commit message
Enable dual landings for vivid and all later distributions (xenial at the time of this writing).
Description of the change
Enable dual landings for vivid and all later distributions (xenial at the time of this writing).
- 105. By Thomas Voß
-
Add missing file.
PS Jenkins bot (ps-jenkins) wrote : | # |
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:105
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
Łukasz Zemczak (sil2100) wrote : | # |
13:04 <sil2100> The only problem I see so far is with the versioning
13:05 <sil2100> Currently the train does not support dual-landing with two different
13:06 <sil2100> And when building for instance dbus-cpp with your script, the package
13:06 <sil2100> Meaning that the package version is lying and trying to tell
Sadly, I'm not sure if this could be done from override_
- 106. By Thomas Voß
-
[ CI Train Bot ]
* debian/libdbus- cpp4.symbols. 32bit: update to released version.
* debian/libdbus- cpp4.symbols. 64bit: update to released version.
[ Thomas Voß ]
* Add a proper operator<< for dbus::Message::Type. (LP: #1524131)
* Only run dbus_shutdown if explicitly requested by env var. (LP:
#1422304, #1526877)
[ CI Train Bot ]
* New rebuild forced.
[ Thomas Voß ]
* Ensure that Signal with non-void argument types correctly narrow
their match rules. (LP: #1480877) - 107. By Thomas Voß
-
Fix build on Y, accounting for toolchain bump.
- 108. By Thomas Voß
-
Switch to bileto_
pre_release_ hook
Łukasz Zemczak (sil2100) wrote : | # |
One small inline-comment below. I was wondering where libdbus-
- 109. By Thomas Voß
-
Address reviewer comments.
- 110. By Thomas Voß
-
Make executor test more stable on slow builders.
Łukasz Zemczak (sil2100) wrote : | # |
Ok, looks good now, just one really minor inline comment below. Of course the same thing remains: we need some abi compliance checking implemented when symbols files removal. This would need a bug assigned to someone before we can land that. ABI compliance will be even more important soon as we are starting to migrate things from universe to main for ubuntu-touch, and a library without symbol files is unlikely to go through the MIR process smoothly.
That being said, if my comments will be addressed (the inline one and the bug about ABI-checking), this merge is good to go.
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2015-10-20 15:27:46 +0000 |
3 | +++ CMakeLists.txt 2016-08-08 09:17:09 +0000 |
4 | @@ -18,6 +18,35 @@ |
5 | |
6 | project(dbus-cpp) |
7 | |
8 | +# We haven't received version information via the packaging setup. |
9 | +# For that, we try to determine sensible values on our own, ensuring |
10 | +# plain old invocations to cmake still work as expected. |
11 | +if (NOT DEFINED DBUS_CPP_VERSION_MAJOR) |
12 | + find_program(LSB_RELEASE lsb_release) |
13 | + execute_process( |
14 | + COMMAND ${LSB_RELEASE} -c -s |
15 | + OUTPUT_VARIABLE DISTRO_CODENAME |
16 | + OUTPUT_STRIP_TRAILING_WHITESPACE) |
17 | + |
18 | + # We explicitly ignore errors and only check if we are building for vivid. |
19 | + # For all other cases: |
20 | + # - releases other than vivid |
21 | + # - other distros |
22 | + # - errors |
23 | + # we define the version to be 2.0.0 |
24 | + if (${DISTRO_CODENAME} STREQUAL "vivid") |
25 | + set(DBUS_CPP_VERSION_MAJOR 4) |
26 | + set(DBUS_CPP_VERSION_MINOR 3) |
27 | + set(DBUS_CPP_VERSION_PATCH 0) |
28 | + else () |
29 | + set(DBUS_CPP_VERSION_MAJOR 5) |
30 | + set(DBUS_CPP_VERSION_MINOR 0) |
31 | + set(DBUS_CPP_VERSION_PATCH 0) |
32 | + endif() |
33 | +endif() |
34 | + |
35 | +message(STATUS "${CMAKE_PROJECT_NAME} ${DBUS_CPP_VERSION_MAJOR}.${DBUS_CPP_VERSION_MINOR}.${DBUS_CPP_VERSION_PATCH}") |
36 | + |
37 | find_package(Boost COMPONENTS filesystem program_options system REQUIRED) |
38 | find_package(LibXml2 REQUIRED) |
39 | find_package(PkgConfig REQUIRED) |
40 | @@ -61,10 +90,6 @@ |
41 | SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ftest-coverage -fprofile-arcs" ) |
42 | ENDIF(CMAKE_BUILD_TYPE MATCHES [cC][oO][vV][eE][rR][aA][gG][eE]) |
43 | |
44 | -set(DBUS_CPP_VERSION_MAJOR 5) |
45 | -set(DBUS_CPP_VERSION_MINOR 0) |
46 | -set(DBUS_CPP_VERSION_PATCH 0) |
47 | - |
48 | include(CTest) |
49 | |
50 | include_directories( |
51 | |
52 | === added file 'debian/VERSION' |
53 | --- debian/VERSION 1970-01-01 00:00:00 +0000 |
54 | +++ debian/VERSION 2016-08-08 09:17:09 +0000 |
55 | @@ -0,0 +1,1 @@ |
56 | +5.0.0 |
57 | \ No newline at end of file |
58 | |
59 | === added file 'debian/VERSION.vivid' |
60 | --- debian/VERSION.vivid 1970-01-01 00:00:00 +0000 |
61 | +++ debian/VERSION.vivid 2016-08-08 09:17:09 +0000 |
62 | @@ -0,0 +1,1 @@ |
63 | +4.3.0 |
64 | \ No newline at end of file |
65 | |
66 | === added file 'debian/bileto_pre_release_hook' |
67 | --- debian/bileto_pre_release_hook 1970-01-01 00:00:00 +0000 |
68 | +++ debian/bileto_pre_release_hook 2016-08-08 09:17:09 +0000 |
69 | @@ -0,0 +1,69 @@ |
70 | +#!/bin/sh |
71 | + |
72 | +# Copyright (C) 2015 Canonical Ltd |
73 | +# |
74 | +# This program is free software: you can redistribute it and/or modify |
75 | +# it under the terms of the GNU Lesser General Public License version 3 as |
76 | +# published by the Free Software Foundation. |
77 | +# |
78 | +# This program is distributed in the hope that it will be useful, |
79 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
80 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
81 | +# GNU Lesser General Public License for more details. |
82 | +# |
83 | +# You should have received a copy of the GNU Lesser General Public License |
84 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
85 | +# |
86 | +# Authored by: Michi Henning <michi.henning@canonical.com> |
87 | +# Thomas Voß <thomas.voss@canonical.com> |
88 | +# Robert Bruce Park <robert.park@canonical.com> |
89 | + |
90 | +# |
91 | +# Script to generate debian files for dual landing in Vivid (gcc 4.9 ABI) |
92 | +# and Wily and later (gcc 5 ABI). |
93 | +# |
94 | +# This script is called from debian/rules and generates: |
95 | +# |
96 | +# - control |
97 | +# - libdbus-cpp{soversion}.install |
98 | +# |
99 | +# For all but control, this is a straight substition and/or renaming exercise for each file. |
100 | +# |
101 | + |
102 | +set -e # Fail if any command fails. |
103 | + |
104 | +progname=$(basename $0) |
105 | + |
106 | +[ $# -gt 1 ] && { |
107 | + echo "usage: $progname [path-to-debian-dir]" >&2 |
108 | + exit 1 |
109 | +} |
110 | +dir=$1 |
111 | +version_dir=$(mktemp -d) |
112 | + |
113 | +[ -n "$dir" ] || dir="./debian" |
114 | +[ -n "$SERIES" ] || SERIES="$(lsb_release -c -s)" |
115 | + |
116 | +# Dump version numbers into files and initialize vars from those files. |
117 | +sh ${dir}/get-versions.sh ${dir} ${version_dir} |
118 | + |
119 | +export DBUS_CPP_SOVERSION=$(cat $version_dir/libdbus-cpp.soversion) |
120 | + |
121 | +trap "rm -fr $version_dir" 0 INT TERM QUIT |
122 | + |
123 | +process() |
124 | +{ |
125 | + cat <<EOF |
126 | +# This file is autogenerated. DO NOT EDIT! |
127 | +# |
128 | +# Modifications should be made to $(basename "$1") instead. |
129 | +# This file is regenerated automatically in the clean target. |
130 | +# |
131 | +EOF |
132 | + perl -pe 's/@([A-Z_]+)@/$ENV{$1} or die "$1 undefined"/eg' <"$1" |
133 | +} |
134 | + |
135 | +process "$dir/control.in" >"$dir/control" |
136 | +process "$dir/libdbus-cpp.install.in" > "$dir/libdbus-cpp${DBUS_CPP_SOVERSION}.install" |
137 | + |
138 | +exit 0 |
139 | \ No newline at end of file |
140 | |
141 | === modified file 'debian/changelog' |
142 | --- debian/changelog 2015-10-22 07:17:01 +0000 |
143 | +++ debian/changelog 2016-08-08 09:17:09 +0000 |
144 | @@ -23,6 +23,53 @@ |
145 | |
146 | -- Thomas Voß <thomas.voss@canonical.com> Tue, 21 Jul 2015 12:36:46 +0200 |
147 | |
148 | +dbus-cpp (4.3.0+15.04.20160114.2-0ubuntu1) vivid; urgency=medium |
149 | + |
150 | + [ CI Train Bot ] |
151 | + * debian/libdbus-cpp4.symbols.32bit: update to released version. |
152 | + * debian/libdbus-cpp4.symbols.64bit: update to released version. |
153 | + |
154 | + [ Thomas Voß ] |
155 | + * Add a proper operator<< for dbus::Message::Type. (LP: #1524131) |
156 | + |
157 | + -- Thomas Voß <ci-train-bot@canonical.com> Thu, 14 Jan 2016 21:51:19 +0000 |
158 | + |
159 | +dbus-cpp (4.3.0+15.04.20160112-0ubuntu1) vivid; urgency=medium |
160 | + |
161 | + * Only run dbus_shutdown if explicitly requested by env var. (LP: |
162 | + #1422304, #1526877) |
163 | + |
164 | + -- Thomas Voß <ci-train-bot@canonical.com> Tue, 12 Jan 2016 16:28:02 +0000 |
165 | + |
166 | +dbus-cpp (4.3.0+15.04.20151126-0ubuntu1) vivid; urgency=medium |
167 | + |
168 | + [ CI Train Bot ] |
169 | + * New rebuild forced. |
170 | + |
171 | + [ Thomas Voß ] |
172 | + * Ensure that Signal with non-void argument types correctly narrow |
173 | + their match rules. (LP: #1480877) |
174 | + |
175 | + -- Thomas Voß <ci-train-bot@canonical.com> Thu, 26 Nov 2015 07:31:37 +0000 |
176 | + |
177 | +dbus-cpp (4.3.0+15.04.20151023-0ubuntu1) vivid; urgency=medium |
178 | + |
179 | + [ CI Train Bot ] |
180 | + * New rebuild forced. |
181 | + |
182 | + [ Thomas Voß ] |
183 | + * Do not cache emitted values for stub signals. (LP: #1509285) |
184 | + |
185 | + -- Jim Hodapp <ci-train-bot@canonical.com> Fri, 23 Oct 2015 10:01:27 +0000 |
186 | + |
187 | +dbus-cpp (4.3.0+15.04.20151020-0ubuntu1) vivid; urgency=medium |
188 | + |
189 | + [ Manuel de la Pena ] |
190 | + * Ensure that the signals are correctly emitted for when the services |
191 | + appear and go. |
192 | + |
193 | + -- Thomas Voß <ci-train-bot@canonical.com> Tue, 20 Oct 2015 10:55:11 +0000 |
194 | + |
195 | dbus-cpp (4.3.0+15.04.20150505-0ubuntu1) vivid; urgency=medium |
196 | |
197 | [ CI Train Bot ] |
198 | |
199 | === modified file 'debian/control' |
200 | --- debian/control 2015-07-21 10:37:34 +0000 |
201 | +++ debian/control 2016-08-08 09:17:09 +0000 |
202 | @@ -1,3 +1,8 @@ |
203 | +# This file is autogenerated. DO NOT EDIT! |
204 | +# |
205 | +# Modifications should be made to control.in instead. |
206 | +# This file is regenerated automatically in the clean target. |
207 | +# |
208 | Source: dbus-cpp |
209 | Priority: optional |
210 | Maintainer: Thomas Voß <thomas.voss@ubuntu.com> |
211 | @@ -14,6 +19,7 @@ |
212 | libprocess-cpp-dev, |
213 | libproperties-cpp-dev, |
214 | libxml2-dev, |
215 | + lsb-release, |
216 | Standards-Version: 3.9.5 |
217 | Section: libs |
218 | Homepage: http://launchpad.net/dbus-cpp |
219 | @@ -22,7 +28,7 @@ |
220 | Vcs-Bzr: https://code.launchpad.net/~phablet-team/dbus-cpp/trunk |
221 | Vcs-Browser: http://bazaar.launchpad.net/~phablet-team/dbus-cpp/trunk/files |
222 | |
223 | -Package: libdbus-cpp5 |
224 | +Package: libdbus-cpp4 |
225 | Section: libdevel |
226 | Architecture: any |
227 | Multi-Arch: same |
228 | @@ -39,7 +45,7 @@ |
229 | Multi-Arch: foreign |
230 | Depends: ${misc:Depends}, |
231 | ${shlibs:Depends}, |
232 | - libdbus-cpp5 (= ${binary:Version}) |
233 | + libdbus-cpp4 (= ${binary:Version}) |
234 | Description: header-only dbus-binding leveraging C++-11 |
235 | Protocol compiler and generator to automatically generate protocol headers from |
236 | introspection XML. |
237 | @@ -51,7 +57,7 @@ |
238 | Depends: ${misc:Depends}, |
239 | ${shlibs:Depends}, |
240 | dbus, |
241 | - libdbus-cpp5 (= ${binary:Version}) |
242 | + libdbus-cpp4 (= ${binary:Version}) |
243 | Replaces: dbus-cpp-dev |
244 | Conflicts: dbus-cpp-dev |
245 | Provides: dbus-cpp-dev |
246 | |
247 | === added file 'debian/control.in' |
248 | --- debian/control.in 1970-01-01 00:00:00 +0000 |
249 | +++ debian/control.in 2016-08-08 09:17:09 +0000 |
250 | @@ -0,0 +1,73 @@ |
251 | +Source: dbus-cpp |
252 | +Priority: optional |
253 | +Maintainer: Thomas Voß <thomas.voss@ubuntu.com> |
254 | +Build-Depends: cmake, |
255 | + dbus, |
256 | + debhelper (>= 9), |
257 | + doxygen, |
258 | + google-mock, |
259 | + libboost-filesystem-dev, |
260 | + libboost-system-dev, |
261 | + libboost-program-options-dev, |
262 | + libdbus-1-dev, |
263 | + libgtest-dev, |
264 | + libprocess-cpp-dev, |
265 | + libproperties-cpp-dev, |
266 | + libxml2-dev, |
267 | + lsb-release, |
268 | +Standards-Version: 3.9.5 |
269 | +Section: libs |
270 | +Homepage: http://launchpad.net/dbus-cpp |
271 | +# If you aren't a member of ~phablet-team but need to upload packaging changes, |
272 | +# just go ahead. ~phablet-team will notice and sync up the code again. |
273 | +Vcs-Bzr: https://code.launchpad.net/~phablet-team/dbus-cpp/trunk |
274 | +Vcs-Browser: http://bazaar.launchpad.net/~phablet-team/dbus-cpp/trunk/files |
275 | + |
276 | +Package: libdbus-cpp@DBUS_CPP_SOVERSION@ |
277 | +Section: libdevel |
278 | +Architecture: any |
279 | +Multi-Arch: same |
280 | +Depends: ${misc:Depends}, |
281 | + ${shlibs:Depends}, |
282 | +Description: header-only dbus-binding leveraging C++-11 |
283 | + A header-only dbus-binding leveraging C++-11, relying on compile-time |
284 | + polymorphism to integrate with arbitrary type systems. Runtime portions to bind |
285 | + to different event loops. |
286 | + |
287 | +Package: dbus-cpp-bin |
288 | +Section: libdevel |
289 | +Architecture: any |
290 | +Multi-Arch: foreign |
291 | +Depends: ${misc:Depends}, |
292 | + ${shlibs:Depends}, |
293 | + libdbus-cpp@DBUS_CPP_SOVERSION@ (= ${binary:Version}) |
294 | +Description: header-only dbus-binding leveraging C++-11 |
295 | + Protocol compiler and generator to automatically generate protocol headers from |
296 | + introspection XML. |
297 | + |
298 | +Package: libdbus-cpp-dev |
299 | +Section: libdevel |
300 | +Architecture: any |
301 | +Multi-Arch: same |
302 | +Depends: ${misc:Depends}, |
303 | + ${shlibs:Depends}, |
304 | + dbus, |
305 | + libdbus-cpp@DBUS_CPP_SOVERSION@ (= ${binary:Version}) |
306 | +Replaces: dbus-cpp-dev |
307 | +Conflicts: dbus-cpp-dev |
308 | +Provides: dbus-cpp-dev |
309 | +Description: header-only dbus-binding leveraging C++-11 |
310 | + A header-only dbus-binding leveraging C++-11, relying on compile-time |
311 | + polymorphism to integrate with arbitrary type systems. |
312 | + |
313 | +Package: dbus-cpp-dev-examples |
314 | +Section: x11 |
315 | +Architecture: any |
316 | +Multi-Arch: same |
317 | +Depends: ${misc:Depends}, |
318 | + ${shlibs:Depends}, |
319 | +Description: header-only dbus-binding leveraging C++-11, example binaries |
320 | + A header-only dbus-binding leveraging C++-11, relying on compile-time |
321 | + polymorphism to integrate with arbitrary type systems. |
322 | + . |
323 | + This package provides examples. |
324 | |
325 | === added file 'debian/get-versions.sh' |
326 | --- debian/get-versions.sh 1970-01-01 00:00:00 +0000 |
327 | +++ debian/get-versions.sh 2016-08-08 09:17:09 +0000 |
328 | @@ -0,0 +1,67 @@ |
329 | +#!/bin/sh |
330 | + |
331 | +# Copyright (C) 2015 Canonical Ltd |
332 | +# |
333 | +# This program is free software: you can redistribute it and/or modify |
334 | +# it under the terms of the GNU Lesser General Public License version 3 as |
335 | +# published by the Free Software Foundation. |
336 | +# |
337 | +# This program is distributed in the hope that it will be useful, |
338 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
339 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
340 | +# GNU Lesser General Public License for more details. |
341 | +# |
342 | +# You should have received a copy of the GNU Lesser General Public License |
343 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. |
344 | +# |
345 | +# Authored by: Michi Henning <michi.henning@canonical.com> |
346 | + |
347 | +# |
348 | +# Script to read the version numbers from VERSION and QT-VERSION |
349 | +# and write the version components and the soversion numbers |
350 | +# into separate files, so we can pick them up from both |
351 | +# gen-debian-files.sh and CMakeLists.txt. |
352 | +# |
353 | + |
354 | +set -e # Fail if any command fails. |
355 | + |
356 | +progname=$(basename $0) |
357 | + |
358 | +[ $# -lt 1 -o $# -gt 2 ] && { |
359 | + echo "usage: $progname path-to-debian-dir [output-dir]" >&2 |
360 | + exit 1 |
361 | +} |
362 | +dir=$1 |
363 | +output_dir=`pwd` |
364 | +[ $# -eq 2 ] && output_dir=$2 |
365 | + |
366 | +# Write the various version numbers into a bunch of files. This allows |
367 | +# us to easily pick them up from both gen-debian-files.sh and CMakeLists.txt. |
368 | + |
369 | +distro=$(lsb_release -c -s) |
370 | + |
371 | +full_version=$(cat "${dir}"/VERSION) |
372 | + |
373 | +major=$(echo $full_version | cut -d'.' -f1) |
374 | +minor=$(echo $full_version | cut -d'.' -f2) |
375 | +micro=$(echo $full_version | cut -d'.' -f3) |
376 | +major_minor="${major}.${minor}" |
377 | + |
378 | +vivid_full_version=$(cat "${dir}"/VERSION.vivid) |
379 | +vivid_major=$(echo $vivid_full_version | cut -d'.' -f1) |
380 | +vivid_soversion=$vivid_major |
381 | + |
382 | +if [ "$distro" = "vivid" ] |
383 | +then |
384 | + soversion=${vivid_soversion} |
385 | +else |
386 | + soversion="${major}" |
387 | +fi |
388 | +[ -n $soversion ] |
389 | + |
390 | +echo ${full_version} >${output_dir}/libdbus-cpp.full-version |
391 | +echo ${major} >${output_dir}/libdbus-cpp.major-version |
392 | +echo ${minor} >${output_dir}/libdbus-cpp.minor-version |
393 | +echo ${micro} >${output_dir}/libdbus-cpp.micro-version |
394 | +echo ${major_minor} >${output_dir}/libdbus-cpp.major-minor-version |
395 | +echo ${soversion} >${output_dir}/libdbus-cpp.soversion |
396 | |
397 | === renamed file 'debian/libdbus-cpp5.install' => 'debian/libdbus-cpp.install.in' |
398 | === removed file 'debian/libdbus-cpp5.symbols.32bit' |
399 | --- debian/libdbus-cpp5.symbols.32bit 2015-10-21 08:00:49 +0000 |
400 | +++ debian/libdbus-cpp5.symbols.32bit 1970-01-01 00:00:00 +0000 |
401 | @@ -1,198 +0,0 @@ |
402 | - (c++)"core::dbus::Fixture::system_bus_address[abi:cxx11]()@Base" 4.3.0+15.04.20150505 |
403 | - (c++)"core::dbus::Fixture::session_bus_address[abi:cxx11]()@Base" 4.3.0+15.04.20150505 |
404 | - (c++)"core::dbus::Fixture::default_daemon_timeout()@Base" 4.0.0+14.10.20140730 |
405 | - (c++)"core::dbus::asio::make_executor(std::shared_ptr<core::dbus::Bus> const&)@Base" 2.0.0+14.04.20140310 |
406 | - (c++)"core::dbus::asio::make_executor(std::shared_ptr<core::dbus::Bus> const&, boost::asio::io_service&)@Base" 3.1.0+14.10.20140711 |
407 | - (c++)"core::dbus::Bus::access_signal_router()@Base" 2.0.0+14.04.20140310 |
408 | - (c++)"core::dbus::Bus::add_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
409 | - (c++)"core::dbus::Bus::~Bus()@Base" 2.0.0+14.04.20140310 |
410 | - (c++)"core::dbus::Bus::Bus(core::dbus::WellKnownBus)@Base" 2.0.0+14.04.20140310 |
411 | - (c++)"core::dbus::Bus::Bus(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
412 | - (c++)"core::dbus::Bus::handle_message(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
413 | - (c++)"core::dbus::Bus::has_owner_for_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
414 | - (c++)"core::dbus::Bus::install_executor(std::shared_ptr<core::dbus::Executor> const&)@Base" 2.0.0+14.04.20140310 |
415 | - (c++)"core::dbus::Bus::message_factory()@Base" 2.0.0+14.04.20140310 |
416 | - (c++)"core::dbus::Bus::Name::as_string[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
417 | - (c++)"core::dbus::Bus::Name::Name(core::dbus::Bus::Name&&)@Base" 2.0.0+14.04.20140310 |
418 | - (c++)"core::dbus::Bus::Name::Name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
419 | - (c++)"core::dbus::Bus::Name::operator=(core::dbus::Bus::Name&&)@Base" 2.0.0+14.04.20140310 |
420 | - (c++)"core::dbus::Bus::raw() const@Base" 2.0.0+14.04.20140310 |
421 | - (c++)"core::dbus::Bus::register_object_for_path(core::dbus::types::ObjectPath const&, std::shared_ptr<core::dbus::Object> const&)@Base" 2.0.0+14.04.20140310 |
422 | - (c++)"core::dbus::Bus::release_name_on_bus(core::dbus::Bus::Name&&)@Base" 2.0.0+14.04.20140310 |
423 | - (c++)"core::dbus::Bus::remove_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
424 | - (c++)"core::dbus::Bus::request_name_on_bus(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::Bus::RequestNameFlag)@Base" 2.0.0+14.04.20140310 |
425 | - (c++)"core::dbus::Bus::run()@Base" 2.0.0+14.04.20140310 |
426 | - (c++)"core::dbus::Bus::send(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
427 | - (c++)"core::dbus::Bus::send_with_reply_and_block_for_at_most(std::shared_ptr<core::dbus::Message> const&, std::chrono::duration<long long, std::ratio<1ll, 1000ll> > const&)@Base" 2.0.0+14.04.20140310 |
428 | - (c++)"core::dbus::Bus::send_with_reply_and_timeout(std::shared_ptr<core::dbus::Message> const&, std::chrono::duration<long long, std::ratio<1ll, 1000ll> > const&)@Base" 2.0.0+14.04.20140310 |
429 | - (c++)"core::dbus::Bus::stop()@Base" 2.0.0+14.04.20140310 |
430 | - (c++)"core::dbus::Bus::unregister_object_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
431 | - (c++)"core::dbus::DBus::DBus(std::shared_ptr<core::dbus::Bus> const&)@Base" 2.0.0+14.04.20140310 |
432 | - (c++)"core::dbus::DBus::GetConnectionUnixProcessID::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
433 | - (c++)"core::dbus::DBus::get_connection_unix_process_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
434 | - (c++)"core::dbus::DBus::GetConnectionUnixUser::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
435 | - (c++)"core::dbus::DBus::get_connection_unix_user(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
436 | - (c++)"core::dbus::DBus::hello[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
437 | - (c++)"core::dbus::DBus::Hello::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
438 | - (c++)"core::dbus::DBus::interface[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
439 | - (c++)"core::dbus::DBus::list_names[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
440 | - (c++)"core::dbus::DBus::ListNames::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
441 | - (c++)"core::dbus::DBus::make_service_watcher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::DBus::WatchMode)@Base" 2.0.0+14.04.20140310 |
442 | - (c++)"core::dbus::DBus::name[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
443 | - (c++)"core::dbus::DBus::path()@Base" 2.0.0+14.04.20140310 |
444 | - (c++)"core::dbus::Error::~Error()@Base" 2.0.0+14.04.20140310 |
445 | - (c++)"core::dbus::Error::Error()@Base" 2.0.0+14.04.20140310 |
446 | - (c++)"core::dbus::Error::Error(core::dbus::Error&&)@Base" 2.0.0+14.04.20140310 |
447 | - (c++)"core::dbus::Error::message[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
448 | - (c++)"core::dbus::Error::name[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
449 | - (c++)"core::dbus::Error::operator bool() const@Base" 2.0.0+14.04.20140310 |
450 | - (c++)"core::dbus::Error::operator=(core::dbus::Error&&)@Base" 2.0.0+14.04.20140310 |
451 | - (c++)"core::dbus::Error::print[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
452 | - (c++)"core::dbus::Error::raw()@Base" 2.0.0+14.04.20140310 |
453 | - (c++)"core::dbus::Fixture::create_connection_to_session_bus()@Base" 2.0.0+14.04.20140310 |
454 | - (c++)"core::dbus::Fixture::create_connection_to_system_bus()@Base" 2.0.0+14.04.20140310 |
455 | - (c++)"core::dbus::Fixture::default_session_bus_config_file[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
456 | - (c++)"core::dbus::Fixture::default_system_bus_config_file[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
457 | - (c++)"core::dbus::Fixture::~Fixture()@Base" 2.0.0+14.04.20140310 |
458 | - (c++)"core::dbus::Fixture::Fixture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
459 | - (c++)"core::dbus::MatchRule::args(std::vector<std::pair<unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)@Base" 2.0.0+14.04.20140310 |
460 | - (c++)"core::dbus::MatchRule::args(std::vector<std::pair<unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 2.0.0+14.04.20140310 |
461 | - (c++)"core::dbus::MatchRule::as_string[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
462 | - (c++)"core::dbus::MatchRule::interface(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
463 | - (c++)"core::dbus::MatchRule::interface(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
464 | - (c++)"core::dbus::MatchRule::~MatchRule()@Base" 2.0.0+14.04.20140310 |
465 | - (c++)"core::dbus::MatchRule::MatchRule()@Base" 2.0.0+14.04.20140310 |
466 | - (c++)"core::dbus::MatchRule::MatchRule(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
467 | - (c++)"core::dbus::MatchRule::member(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
468 | - (c++)"core::dbus::MatchRule::member(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
469 | - (c++)"core::dbus::MatchRule::operator=(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
470 | - (c++)"core::dbus::MatchRule::path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
471 | - (c++)"core::dbus::MatchRule::path(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
472 | - (c++)"core::dbus::MatchRule::sender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
473 | - (c++)"core::dbus::MatchRule::sender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
474 | - (c++)"core::dbus::MatchRule::type(core::dbus::Message::Type)@Base" 2.0.0+14.04.20140310 |
475 | - (c++)"core::dbus::MatchRule::type(core::dbus::Message::Type) const@Base" 2.0.0+14.04.20140310 |
476 | - (c++)"core::dbus::Message::clone()@Base" 2.0.0+14.04.20140310 |
477 | - (c++)"core::dbus::Message::destination[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
478 | - (c++)"core::dbus::Message::ensure_serial_larger_than_zero_for_testing()@Base" 2.0.0+14.04.20140310 |
479 | - (c++)"core::dbus::Message::error() const@Base" 2.0.0+14.04.20140310 |
480 | - (c++)"core::dbus::Message::expects_reply() const@Base" 2.0.0+14.04.20140310 |
481 | - (c++)"core::dbus::Message::from_raw_message(DBusMessage*)@Base" 2.0.0+14.04.20140310 |
482 | - (c++)"core::dbus::Message::interface[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
483 | - (c++)"core::dbus::Message::make_error(std::shared_ptr<core::dbus::Message> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
484 | - (c++)"core::dbus::Message::make_method_call(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::types::ObjectPath const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
485 | - (c++)"core::dbus::Message::make_method_return(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
486 | - (c++)"core::dbus::Message::make_signal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
487 | - (c++)"core::dbus::Message::member[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
488 | - (c++)"core::dbus::Message::~Message()@Base" 2.0.0+14.04.20140310 |
489 | - (c++)"core::dbus::Message::Message(std::unique_ptr<core::dbus::Message::Private, std::default_delete<core::dbus::Message::Private> >)@Base" 2.0.0+14.04.20140310 |
490 | - (c++)"core::dbus::Message::path() const@Base" 2.0.0+14.04.20140310 |
491 | - (c++)"core::dbus::Message::Reader::access_message()@Base" 2.0.0+14.04.20140310 |
492 | - (c++)"core::dbus::Message::reader()@Base" 2.0.0+14.04.20140310 |
493 | - (c++)"core::dbus::Message::Reader::operator=(core::dbus::Message::Reader&&)@Base" 2.0.0+14.04.20140310 |
494 | - (c++)"core::dbus::Message::Reader::pop_array()@Base" 2.0.0+14.04.20140310 |
495 | - (c++)"core::dbus::Message::Reader::pop()@Base" 2.0.0+14.04.20140310 |
496 | - (c++)"core::dbus::Message::Reader::pop_boolean()@Base" 2.0.0+14.04.20140310 |
497 | - (c++)"core::dbus::Message::Reader::pop_byte()@Base" 2.0.0+14.04.20140310 |
498 | - (c++)"core::dbus::Message::Reader::pop_dict_entry()@Base" 2.0.0+14.04.20140310 |
499 | - (c++)"core::dbus::Message::Reader::pop_floating_point()@Base" 2.0.0+14.04.20140310 |
500 | - (c++)"core::dbus::Message::Reader::pop_int16()@Base" 2.0.0+14.04.20140310 |
501 | - (c++)"core::dbus::Message::Reader::pop_int32()@Base" 2.0.0+14.04.20140310 |
502 | - (c++)"core::dbus::Message::Reader::pop_int64()@Base" 2.0.0+14.04.20140310 |
503 | - (c++)"core::dbus::Message::Reader::pop_object_path()@Base" 2.0.0+14.04.20140310 |
504 | - (c++)"core::dbus::Message::Reader::pop_signature()@Base" 2.0.0+14.04.20140310 |
505 | - (c++)"core::dbus::Message::Reader::pop_string()@Base" 2.0.0+14.04.20140310 |
506 | - (c++)"core::dbus::Message::Reader::pop_structure()@Base" 2.0.0+14.04.20140310 |
507 | - (c++)"core::dbus::Message::Reader::pop_uint16()@Base" 2.0.0+14.04.20140310 |
508 | - (c++)"core::dbus::Message::Reader::pop_uint32()@Base" 2.0.0+14.04.20140310 |
509 | - (c++)"core::dbus::Message::Reader::pop_uint64()@Base" 2.0.0+14.04.20140310 |
510 | - (c++)"core::dbus::Message::Reader::pop_unix_fd()@Base" 2.0.0+14.04.20140310 |
511 | - (c++)"core::dbus::Message::Reader::pop_variant()@Base" 2.0.0+14.04.20140310 |
512 | - (c++)"core::dbus::Message::Reader::~Reader()@Base" 2.0.0+14.04.20140310 |
513 | - (c++)"core::dbus::Message::Reader::Reader()@Base" 2.0.0+14.04.20140310 |
514 | - (c++)"core::dbus::Message::Reader::Reader(core::dbus::Message::Reader&&)@Base" 2.0.0+14.04.20140310 |
515 | - (c++)"core::dbus::Message::Reader::Reader(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
516 | - (c++)"core::dbus::Message::Reader::type() const@Base" 2.0.0+14.04.20140310 |
517 | - (c++)"core::dbus::Message::sender[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
518 | - (c++)"core::dbus::Message::signature[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
519 | - (c++)"core::dbus::Message::type() const@Base" 2.0.0+14.04.20140310 |
520 | - (c++)"core::dbus::Message::writer()@Base" 2.0.0+14.04.20140310 |
521 | - (c++)"core::dbus::Message::Writer::close_array(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
522 | - (c++)"core::dbus::Message::Writer::close_dict_entry(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
523 | - (c++)"core::dbus::Message::Writer::close_structure(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
524 | - (c++)"core::dbus::Message::Writer::close_variant(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
525 | - (c++)"core::dbus::Message::Writer::open_array(core::dbus::types::Signature const&)@Base" 2.0.0+14.04.20140310 |
526 | - (c++)"core::dbus::Message::Writer::open_dict_entry()@Base" 2.0.0+14.04.20140310 |
527 | - (c++)"core::dbus::Message::Writer::open_structure()@Base" 2.0.0+14.04.20140310 |
528 | - (c++)"core::dbus::Message::Writer::open_variant(core::dbus::types::Signature const&)@Base" 2.0.0+14.04.20140310 |
529 | - (c++)"core::dbus::Message::Writer::operator=(core::dbus::Message::Writer&&)@Base" 2.0.0+14.04.20140310 |
530 | - (c++)"core::dbus::Message::Writer::push_boolean(bool)@Base" 2.0.0+14.04.20140310 |
531 | - (c++)"core::dbus::Message::Writer::push_byte(signed char)@Base" 2.0.0+14.04.20140310 |
532 | - (c++)"core::dbus::Message::Writer::push_floating_point(double)@Base" 2.0.0+14.04.20140310 |
533 | - (c++)"core::dbus::Message::Writer::push_int16(short)@Base" 2.0.0+14.04.20140310 |
534 | - (c++)"core::dbus::Message::Writer::push_int32(int)@Base" 2.0.0+14.04.20140310 |
535 | - (c++)"core::dbus::Message::Writer::push_int64(long long)@Base" 2.0.0+14.04.20140310 |
536 | - (c++)"core::dbus::Message::Writer::push_object_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
537 | - (c++)"core::dbus::Message::Writer::push_signature(core::dbus::types::Signature const&)@Base" 2.0.0+14.04.20140310 |
538 | - (c++)"core::dbus::Message::Writer::push_stringn(char const*, unsigned int)@Base" 2.0.0+14.04.20140310 |
539 | - (c++)"core::dbus::Message::Writer::push_uint16(unsigned short)@Base" 2.0.0+14.04.20140310 |
540 | - (c++)"core::dbus::Message::Writer::push_uint32(unsigned int)@Base" 2.0.0+14.04.20140310 |
541 | - (c++)"core::dbus::Message::Writer::push_uint64(unsigned long long)@Base" 2.0.0+14.04.20140310 |
542 | - (c++)"core::dbus::Message::Writer::push_unix_fd(core::dbus::types::UnixFd const&)@Base" 2.0.0+14.04.20140310 |
543 | - (c++)"core::dbus::Message::Writer::~Writer()@Base" 2.0.0+14.04.20140310 |
544 | - (c++)"core::dbus::Message::Writer::Writer(core::dbus::Message::Writer&&)@Base" 2.0.0+14.04.20140310 |
545 | - (c++)"core::dbus::Message::Writer::Writer(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
546 | - (c++)"core::dbus::Service::add_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
547 | - (c++)"core::dbus::Service::add_object_for_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
548 | - (c++)"core::dbus::Service::get_connection() const@Base" 2.0.0+14.04.20140310 |
549 | - (c++)"core::dbus::Service::get_name[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
550 | - (c++)"core::dbus::Service::is_stub() const@Base" 2.0.0+14.04.20140310 |
551 | - (c++)"core::dbus::Service::object_for_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
552 | - (c++)"core::dbus::Service::remove_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
553 | - (c++)"core::dbus::Service::root_object()@Base" 2.0.0+14.04.20140310 |
554 | - (c++)"core::dbus::Service::Service(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
555 | - (c++)"core::dbus::Service::Service(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::Bus::RequestNameFlag const&)@Base" 2.0.0+14.04.20140310 |
556 | - (c++)"core::dbus::Service::use_service_or_throw_if_not_available(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
557 | - (c++)"core::dbus::Service::use_service(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
558 | - (c++)"core::dbus::ServiceWatcher::owner_changed[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
559 | - (c++)"core::dbus::ServiceWatcher::service_registered() const@Base" 2.0.0+14.04.20140310 |
560 | - (c++)"core::dbus::ServiceWatcher::service_unregistered() const@Base" 2.0.0+14.04.20140310 |
561 | - (c++)"core::dbus::ServiceWatcher::ServiceWatcher(std::shared_ptr<core::dbus::Object>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::DBus::WatchMode)@Base" 2.0.0+14.04.20140310 |
562 | - (c++)"core::dbus::types::ObjectPath::as_string[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
563 | - (c++)"core::dbus::types::ObjectPath::empty() const@Base" 2.0.0+14.04.20140310 |
564 | - (c++)"core::dbus::types::ObjectPath::ObjectPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
565 | - (c++)"core::dbus::types::ObjectPath::operator<(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
566 | - (c++)"core::dbus::types::ObjectPath::operator==(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
567 | - (c++)"core::dbus::types::ObjectPath::operator!=(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
568 | - (c++)"core::dbus::types::ObjectPath::root[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
569 | - (c++)"core::dbus::types::operator<<(std::basic_ostream<char, std::char_traits<char> >&, core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
570 | - (c++)"std::hash<core::dbus::types::ObjectPath>::operator()(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
571 | - (c++)"typeinfo for core::dbus::Bus::Errors::AlreadyOwned@Base" 2.0.0+14.04.20140310 |
572 | - (c++)"typeinfo for core::dbus::Bus::Errors::AlreadyOwner@Base" 2.0.0+14.04.20140310 |
573 | - (c++)"typeinfo for core::dbus::Bus::Errors::NoMemory@Base" 2.0.0+14.04.20140310 |
574 | - (c++)"typeinfo for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#1}@Base" 2.0.0+14.04.20140310 |
575 | - (c++)"typeinfo for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#2}@Base" 2.0.0+14.04.20140310 |
576 | - (c++)"typeinfo for core::dbus::Executor@Base" 2.0.0+14.04.20140310 |
577 | - (c++)"typeinfo for core::dbus::Fixture@Base" 2.0.0+14.04.20140310 |
578 | - (c++)"typeinfo for core::dbus::Fixture::Private::Session::Session(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
579 | - (c++)"typeinfo for core::dbus::Fixture::Private::System::System(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
580 | - (c++)"typeinfo for core::dbus::PendingCall@Base" 2.0.0+14.04.20140310 |
581 | - (c++)"typeinfo for core::dbus::types::ObjectPath::Errors::InvalidObjectPathStringRepresentation@Base" 2.0.0+14.04.20140310 |
582 | - (c++)"typeinfo name for core::dbus::Bus::Errors::AlreadyOwned@Base" 2.0.0+14.04.20140310 |
583 | - (c++)"typeinfo name for core::dbus::Bus::Errors::AlreadyOwner@Base" 2.0.0+14.04.20140310 |
584 | - (c++)"typeinfo name for core::dbus::Bus::Errors::NoMemory@Base" 2.0.0+14.04.20140310 |
585 | - (c++)"typeinfo name for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#1}@Base" 2.0.0+14.04.20140310 |
586 | - (c++)"typeinfo name for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#2}@Base" 2.0.0+14.04.20140310 |
587 | - (c++)"typeinfo name for core::dbus::Executor@Base" 2.0.0+14.04.20140310 |
588 | - (c++)"typeinfo name for core::dbus::Fixture@Base" 2.0.0+14.04.20140310 |
589 | - (c++)"typeinfo name for core::dbus::Fixture::Private::Session::Session(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
590 | - (c++)"typeinfo name for core::dbus::Fixture::Private::System::System(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
591 | - (c++)"typeinfo name for core::dbus::Message::Private::Private(DBusMessage*, bool)::{lambda(DBusMessage*)#1}@Base" 2.0.0+14.04.20140310 |
592 | - (c++)"typeinfo name for core::dbus::PendingCall@Base" 2.0.0+14.04.20140310 |
593 | - (c++)"typeinfo name for core::dbus::types::ObjectPath::Errors::InvalidObjectPathStringRepresentation@Base" 2.0.0+14.04.20140310 |
594 | - (c++)"vtable for core::dbus::Bus::Errors::AlreadyOwned@Base" 2.0.0+14.04.20140310 |
595 | - (c++)"vtable for core::dbus::Bus::Errors::AlreadyOwner@Base" 2.0.0+14.04.20140310 |
596 | - (c++)"vtable for core::dbus::Bus::Errors::NoMemory@Base" 2.0.0+14.04.20140310 |
597 | - (c++)"vtable for core::dbus::Fixture@Base" 2.0.0+14.04.20140310 |
598 | - (c++)"vtable for core::dbus::types::ObjectPath::Errors::InvalidObjectPathStringRepresentation@Base" 2.0.0+14.04.20140310 |
599 | -#include "libdbus-cpp5.symbols.coverage" |
600 | |
601 | === removed file 'debian/libdbus-cpp5.symbols.64bit' |
602 | --- debian/libdbus-cpp5.symbols.64bit 2015-10-21 08:00:49 +0000 |
603 | +++ debian/libdbus-cpp5.symbols.64bit 1970-01-01 00:00:00 +0000 |
604 | @@ -1,199 +0,0 @@ |
605 | - (c++)"core::dbus::Fixture::system_bus_address[abi:cxx11]()@Base" 4.3.0+15.04.20150505 |
606 | - (c++)"core::dbus::Fixture::session_bus_address[abi:cxx11]()@Base" 4.3.0+15.04.20150505 |
607 | - (c++)"core::dbus::Fixture::default_daemon_timeout()@Base" 4.0.0+14.10.20140730 |
608 | - (c++)"core::dbus::asio::make_executor(std::shared_ptr<core::dbus::Bus> const&)@Base" 2.0.0+14.04.20140310 |
609 | - (c++)"core::dbus::asio::make_executor(std::shared_ptr<core::dbus::Bus> const&, boost::asio::io_service&)@Base" 3.1.0+14.10.20140711 |
610 | - (c++)"core::dbus::Bus::access_signal_router()@Base" 2.0.0+14.04.20140310 |
611 | - (c++)"core::dbus::Bus::add_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
612 | - (c++)"core::dbus::Bus::~Bus()@Base" 2.0.0+14.04.20140310 |
613 | - (c++)"core::dbus::Bus::Bus(core::dbus::WellKnownBus)@Base" 2.0.0+14.04.20140310 |
614 | - (c++)"core::dbus::Bus::Bus(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
615 | - (c++)"core::dbus::Bus::handle_message(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
616 | - (c++)"core::dbus::Bus::has_owner_for_name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
617 | - (c++)"core::dbus::Bus::install_executor(std::shared_ptr<core::dbus::Executor> const&)@Base" 2.0.0+14.04.20140310 |
618 | - (c++)"core::dbus::Bus::message_factory()@Base" 2.0.0+14.04.20140310 |
619 | - (c++)"core::dbus::Bus::Name::as_string[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
620 | - (c++)"core::dbus::Bus::Name::Name(core::dbus::Bus::Name&&)@Base" 2.0.0+14.04.20140310 |
621 | - (c++)"core::dbus::Bus::Name::Name(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
622 | - (c++)"core::dbus::Bus::Name::operator=(core::dbus::Bus::Name&&)@Base" 2.0.0+14.04.20140310 |
623 | - (c++)"core::dbus::Bus::raw() const@Base" 2.0.0+14.04.20140310 |
624 | - (c++)"core::dbus::Bus::register_object_for_path(core::dbus::types::ObjectPath const&, std::shared_ptr<core::dbus::Object> const&)@Base" 2.0.0+14.04.20140310 |
625 | - (c++)"core::dbus::Bus::release_name_on_bus(core::dbus::Bus::Name&&)@Base" 2.0.0+14.04.20140310 |
626 | - (c++)"core::dbus::Bus::remove_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
627 | - (c++)"core::dbus::Bus::request_name_on_bus(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::Bus::RequestNameFlag)@Base" 2.0.0+14.04.20140310 |
628 | - (c++)"core::dbus::Bus::run()@Base" 2.0.0+14.04.20140310 |
629 | - (c++)"core::dbus::Bus::send(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
630 | - (c++)"core::dbus::Bus::send_with_reply_and_block_for_at_most(std::shared_ptr<core::dbus::Message> const&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&)@Base" 2.0.0+14.04.20140310 |
631 | - (c++)"core::dbus::Bus::send_with_reply_and_timeout(std::shared_ptr<core::dbus::Message> const&, std::chrono::duration<long, std::ratio<1l, 1000l> > const&)@Base" 2.0.0+14.04.20140310 |
632 | - (c++)"core::dbus::Bus::stop()@Base" 2.0.0+14.04.20140310 |
633 | - (c++)"core::dbus::Bus::unregister_object_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
634 | - (c++)"core::dbus::DBus::DBus(std::shared_ptr<core::dbus::Bus> const&)@Base" 2.0.0+14.04.20140310 |
635 | - (c++)"core::dbus::DBus::GetConnectionUnixProcessID::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
636 | - (c++)"core::dbus::DBus::get_connection_unix_process_id(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
637 | - (c++)"core::dbus::DBus::GetConnectionUnixUser::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
638 | - (c++)"core::dbus::DBus::get_connection_unix_user(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
639 | - (c++)"core::dbus::DBus::hello[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
640 | - (c++)"core::dbus::DBus::Hello::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
641 | - (c++)"core::dbus::DBus::interface[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
642 | - (c++)"core::dbus::DBus::list_names[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
643 | - (c++)"core::dbus::DBus::ListNames::name[abi:cxx11]()::s@Base" 2.0.0+14.04.20140310 |
644 | - (c++)"core::dbus::DBus::make_service_watcher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::DBus::WatchMode)@Base" 2.0.0+14.04.20140310 |
645 | - (c++)"core::dbus::DBus::name[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
646 | - (c++)"core::dbus::DBus::path()@Base" 2.0.0+14.04.20140310 |
647 | - (c++)"core::dbus::Error::~Error()@Base" 2.0.0+14.04.20140310 |
648 | - (c++)"core::dbus::Error::Error()@Base" 2.0.0+14.04.20140310 |
649 | - (c++)"core::dbus::Error::Error(core::dbus::Error&&)@Base" 2.0.0+14.04.20140310 |
650 | - (c++)"core::dbus::Error::message[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
651 | - (c++)"core::dbus::Error::name[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
652 | - (c++)"core::dbus::Error::operator bool() const@Base" 2.0.0+14.04.20140310 |
653 | - (c++)"core::dbus::Error::operator=(core::dbus::Error&&)@Base" 2.0.0+14.04.20140310 |
654 | - (c++)"core::dbus::Error::print[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
655 | - (c++)"core::dbus::Error::raw()@Base" 2.0.0+14.04.20140310 |
656 | - (c++)"core::dbus::Fixture::create_connection_to_session_bus()@Base" 2.0.0+14.04.20140310 |
657 | - (c++)"core::dbus::Fixture::create_connection_to_system_bus()@Base" 2.0.0+14.04.20140310 |
658 | - (c++)"core::dbus::Fixture::default_session_bus_config_file[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
659 | - (c++)"core::dbus::Fixture::default_system_bus_config_file[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
660 | - (c++)"core::dbus::Fixture::~Fixture()@Base" 2.0.0+14.04.20140310 |
661 | - (c++)"core::dbus::Fixture::Fixture(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
662 | - (c++)"core::dbus::MatchRule::args(std::vector<std::pair<unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)@Base" 2.0.0+14.04.20140310 |
663 | - (c++)"core::dbus::MatchRule::args(std::vector<std::pair<unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const@Base" 2.0.0+14.04.20140310 |
664 | - (c++)"core::dbus::MatchRule::as_string[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
665 | - (c++)"core::dbus::MatchRule::interface(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
666 | - (c++)"core::dbus::MatchRule::interface(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
667 | - (c++)"core::dbus::MatchRule::~MatchRule()@Base" 2.0.0+14.04.20140310 |
668 | - (c++)"core::dbus::MatchRule::MatchRule()@Base" 2.0.0+14.04.20140310 |
669 | - (c++)"core::dbus::MatchRule::MatchRule(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
670 | - (c++)"core::dbus::MatchRule::member(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
671 | - (c++)"core::dbus::MatchRule::member(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
672 | - (c++)"core::dbus::MatchRule::operator=(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
673 | - (c++)"core::dbus::MatchRule::path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
674 | - (c++)"core::dbus::MatchRule::path(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
675 | - (c++)"core::dbus::MatchRule::sender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
676 | - (c++)"core::dbus::MatchRule::sender(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@Base" 2.0.0+14.04.20140310 |
677 | - (c++)"core::dbus::MatchRule::type(core::dbus::Message::Type)@Base" 2.0.0+14.04.20140310 |
678 | - (c++)"core::dbus::MatchRule::type(core::dbus::Message::Type) const@Base" 2.0.0+14.04.20140310 |
679 | - (c++)"core::dbus::Message::clone()@Base" 2.0.0+14.04.20140310 |
680 | - (c++)"core::dbus::Message::destination[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
681 | - (c++)"core::dbus::Message::ensure_serial_larger_than_zero_for_testing()@Base" 2.0.0+14.04.20140310 |
682 | - (c++)"core::dbus::Message::error() const@Base" 2.0.0+14.04.20140310 |
683 | - (c++)"core::dbus::Message::expects_reply() const@Base" 2.0.0+14.04.20140310 |
684 | - (c++)"core::dbus::Message::from_raw_message(DBusMessage*)@Base" 2.0.0+14.04.20140310 |
685 | - (c++)"core::dbus::Message::interface[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
686 | - (c++)"core::dbus::Message::make_error(std::shared_ptr<core::dbus::Message> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
687 | - (c++)"core::dbus::Message::make_method_call(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::types::ObjectPath const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
688 | - (c++)"core::dbus::Message::make_method_return(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
689 | - (c++)"core::dbus::Message::make_signal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
690 | - (c++)"core::dbus::Message::member[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
691 | - (c++)"core::dbus::Message::~Message()@Base" 2.0.0+14.04.20140310 |
692 | - (c++)"core::dbus::Message::Message(std::unique_ptr<core::dbus::Message::Private, std::default_delete<core::dbus::Message::Private> >)@Base" 2.0.0+14.04.20140310 |
693 | - (c++)"core::dbus::Message::path() const@Base" 2.0.0+14.04.20140310 |
694 | - (c++)"core::dbus::Message::Reader::access_message()@Base" 2.0.0+14.04.20140310 |
695 | - (c++)"core::dbus::Message::reader()@Base" 2.0.0+14.04.20140310 |
696 | - (c++)"core::dbus::Message::Reader::operator=(core::dbus::Message::Reader&&)@Base" 2.0.0+14.04.20140310 |
697 | - (c++)"core::dbus::Message::Reader::pop_array()@Base" 2.0.0+14.04.20140310 |
698 | - (c++)"core::dbus::Message::Reader::pop()@Base" 2.0.0+14.04.20140310 |
699 | - (c++)"core::dbus::Message::Reader::pop_boolean()@Base" 2.0.0+14.04.20140310 |
700 | - (c++)"core::dbus::Message::Reader::pop_byte()@Base" 2.0.0+14.04.20140310 |
701 | - (c++)"core::dbus::Message::Reader::pop_dict_entry()@Base" 2.0.0+14.04.20140310 |
702 | - (c++)"core::dbus::Message::Reader::pop_floating_point()@Base" 2.0.0+14.04.20140310 |
703 | - (c++)"core::dbus::Message::Reader::pop_int16()@Base" 2.0.0+14.04.20140310 |
704 | - (c++)"core::dbus::Message::Reader::pop_int32()@Base" 2.0.0+14.04.20140310 |
705 | - (c++)"core::dbus::Message::Reader::pop_int64()@Base" 2.0.0+14.04.20140310 |
706 | - (c++)"core::dbus::Message::Reader::pop_object_path()@Base" 2.0.0+14.04.20140310 |
707 | - (c++)"core::dbus::Message::Reader::pop_signature()@Base" 2.0.0+14.04.20140310 |
708 | - (c++)"core::dbus::Message::Reader::pop_string()@Base" 2.0.0+14.04.20140310 |
709 | - (c++)"core::dbus::Message::Reader::pop_structure()@Base" 2.0.0+14.04.20140310 |
710 | - (c++)"core::dbus::Message::Reader::pop_uint16()@Base" 2.0.0+14.04.20140310 |
711 | - (c++)"core::dbus::Message::Reader::pop_uint32()@Base" 2.0.0+14.04.20140310 |
712 | - (c++)"core::dbus::Message::Reader::pop_uint64()@Base" 2.0.0+14.04.20140310 |
713 | - (c++)"core::dbus::Message::Reader::pop_unix_fd()@Base" 2.0.0+14.04.20140310 |
714 | - (c++)"core::dbus::Message::Reader::pop_variant()@Base" 2.0.0+14.04.20140310 |
715 | - (c++)"core::dbus::Message::Reader::~Reader()@Base" 2.0.0+14.04.20140310 |
716 | - (c++)"core::dbus::Message::Reader::Reader()@Base" 2.0.0+14.04.20140310 |
717 | - (c++)"core::dbus::Message::Reader::Reader(core::dbus::Message::Reader&&)@Base" 2.0.0+14.04.20140310 |
718 | - (c++)"core::dbus::Message::Reader::Reader(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
719 | - (c++)"core::dbus::Message::Reader::type() const@Base" 2.0.0+14.04.20140310 |
720 | - (c++)"core::dbus::Message::sender[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
721 | - (c++)"core::dbus::Message::signature[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
722 | - (c++)"core::dbus::Message::type() const@Base" 2.0.0+14.04.20140310 |
723 | - (c++)"core::dbus::Message::writer()@Base" 2.0.0+14.04.20140310 |
724 | - (c++)"core::dbus::Message::Writer::close_array(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
725 | - (c++)"core::dbus::Message::Writer::close_dict_entry(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
726 | - (c++)"core::dbus::Message::Writer::close_structure(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
727 | - (c++)"core::dbus::Message::Writer::close_variant(core::dbus::Message::Writer)@Base" 2.0.0+14.04.20140310 |
728 | - (c++)"core::dbus::Message::Writer::open_array(core::dbus::types::Signature const&)@Base" 2.0.0+14.04.20140310 |
729 | - (c++)"core::dbus::Message::Writer::open_dict_entry()@Base" 2.0.0+14.04.20140310 |
730 | - (c++)"core::dbus::Message::Writer::open_structure()@Base" 2.0.0+14.04.20140310 |
731 | - (c++)"core::dbus::Message::Writer::open_variant(core::dbus::types::Signature const&)@Base" 2.0.0+14.04.20140310 |
732 | - (c++)"core::dbus::Message::Writer::operator=(core::dbus::Message::Writer&&)@Base" 2.0.0+14.04.20140310 |
733 | - (c++)"core::dbus::Message::Writer::push_boolean(bool)@Base" 2.0.0+14.04.20140310 |
734 | - (c++)"core::dbus::Message::Writer::push_byte(signed char)@Base" 2.0.0+14.04.20140310 |
735 | - (c++)"core::dbus::Message::Writer::push_floating_point(double)@Base" 2.0.0+14.04.20140310 |
736 | - (c++)"core::dbus::Message::Writer::push_int16(short)@Base" 2.0.0+14.04.20140310 |
737 | - (c++)"core::dbus::Message::Writer::push_int32(int)@Base" 2.0.0+14.04.20140310 |
738 | - (c++)"core::dbus::Message::Writer::push_int64(long)@Base" 2.0.0+14.04.20140310 |
739 | - (c++)"core::dbus::Message::Writer::push_object_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
740 | - (c++)"core::dbus::Message::Writer::push_signature(core::dbus::types::Signature const&)@Base" 2.0.0+14.04.20140310 |
741 | - (c++)"core::dbus::Message::Writer::push_stringn(char const*, unsigned long)@Base" 2.0.0+14.04.20140310 |
742 | - (c++)"core::dbus::Message::Writer::push_uint16(unsigned short)@Base" 2.0.0+14.04.20140310 |
743 | - (c++)"core::dbus::Message::Writer::push_uint32(unsigned int)@Base" 2.0.0+14.04.20140310 |
744 | - (c++)"core::dbus::Message::Writer::push_uint64(unsigned long)@Base" 2.0.0+14.04.20140310 |
745 | - (c++)"core::dbus::Message::Writer::push_unix_fd(core::dbus::types::UnixFd const&)@Base" 2.0.0+14.04.20140310 |
746 | - (c++)"core::dbus::Message::Writer::~Writer()@Base" 2.0.0+14.04.20140310 |
747 | - (c++)"core::dbus::Message::Writer::Writer(core::dbus::Message::Writer&&)@Base" 2.0.0+14.04.20140310 |
748 | - (c++)"core::dbus::Message::Writer::Writer(std::shared_ptr<core::dbus::Message> const&)@Base" 2.0.0+14.04.20140310 |
749 | - (c++)"core::dbus::Service::add_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
750 | - (c++)"core::dbus::Service::add_object_for_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
751 | - (c++)"core::dbus::Service::get_connection() const@Base" 2.0.0+14.04.20140310 |
752 | - (c++)"core::dbus::Service::get_name[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
753 | - (c++)"core::dbus::Service::is_stub() const@Base" 2.0.0+14.04.20140310 |
754 | - (c++)"core::dbus::Service::object_for_path(core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
755 | - (c++)"core::dbus::Service::remove_match(core::dbus::MatchRule const&)@Base" 2.0.0+14.04.20140310 |
756 | - (c++)"core::dbus::Service::root_object()@Base" 2.0.0+14.04.20140310 |
757 | - (c++)"core::dbus::Service::Service(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
758 | - (c++)"core::dbus::Service::Service(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::Bus::RequestNameFlag const&)@Base" 2.0.0+14.04.20140310 |
759 | - (c++)"core::dbus::Service::use_service_or_throw_if_not_available(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
760 | - (c++)"core::dbus::Service::use_service(std::shared_ptr<core::dbus::Bus> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
761 | - (c++)"core::dbus::ServiceWatcher::owner_changed[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
762 | - (c++)"core::dbus::ServiceWatcher::service_registered() const@Base" 2.0.0+14.04.20140310 |
763 | - (c++)"core::dbus::ServiceWatcher::service_unregistered() const@Base" 2.0.0+14.04.20140310 |
764 | - (c++)"core::dbus::ServiceWatcher::ServiceWatcher(std::shared_ptr<core::dbus::Object>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, core::dbus::DBus::WatchMode)@Base" 2.0.0+14.04.20140310 |
765 | - (c++)"core::dbus::types::ObjectPath::as_string[abi:cxx11]() const@Base" 2.0.0+14.04.20140310 |
766 | - (c++)"core::dbus::types::ObjectPath::empty() const@Base" 2.0.0+14.04.20140310 |
767 | - (c++)"core::dbus::types::ObjectPath::ObjectPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.0.0+14.04.20140310 |
768 | - (c++)"core::dbus::types::ObjectPath::operator<(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
769 | - (c++)"core::dbus::types::ObjectPath::operator==(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
770 | - (c++)"core::dbus::types::ObjectPath::operator!=(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
771 | - (c++)"core::dbus::types::ObjectPath::root[abi:cxx11]()@Base" 2.0.0+14.04.20140310 |
772 | - (c++)"core::dbus::types::operator<<(std::basic_ostream<char, std::char_traits<char> >&, core::dbus::types::ObjectPath const&)@Base" 2.0.0+14.04.20140310 |
773 | - (c++)"std::hash<core::dbus::types::ObjectPath>::operator()(core::dbus::types::ObjectPath const&) const@Base" 2.0.0+14.04.20140310 |
774 | - (c++)"typeinfo for core::dbus::Bus::Errors::AlreadyOwned@Base" 2.0.0+14.04.20140310 |
775 | - (c++)"typeinfo for core::dbus::Bus::Errors::AlreadyOwner@Base" 2.0.0+14.04.20140310 |
776 | - (c++)"typeinfo for core::dbus::Bus::Errors::NoMemory@Base" 2.0.0+14.04.20140310 |
777 | - (c++)"typeinfo for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#1}@Base" 2.0.0+14.04.20140310 |
778 | - (c++)"typeinfo for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#2}@Base" 2.0.0+14.04.20140310 |
779 | - (c++)"typeinfo for core::dbus::Executor@Base" 2.0.0+14.04.20140310 |
780 | - (c++)"typeinfo for core::dbus::Fixture@Base" 2.0.0+14.04.20140310 |
781 | - (c++)"typeinfo for core::dbus::Fixture::Private::Session::Session(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
782 | - (c++)"typeinfo for core::dbus::Fixture::Private::System::System(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
783 | - (c++)"typeinfo for core::dbus::PendingCall@Base" 2.0.0+14.04.20140310 |
784 | - (c++)"typeinfo for core::dbus::types::ObjectPath::Errors::InvalidObjectPathStringRepresentation@Base" 2.0.0+14.04.20140310 |
785 | - (c++)"typeinfo name for core::dbus::Bus::Errors::AlreadyOwned@Base" 2.0.0+14.04.20140310 |
786 | - (c++)"typeinfo name for core::dbus::Bus::Errors::AlreadyOwner@Base" 2.0.0+14.04.20140310 |
787 | - (c++)"typeinfo name for core::dbus::Bus::Errors::NoMemory@Base" 2.0.0+14.04.20140310 |
788 | - (c++)"typeinfo name for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#1}@Base" 2.0.0+14.04.20140310 |
789 | - (c++)"typeinfo name for core::dbus::Bus::Private::Private()::{lambda(std::shared_ptr<core::dbus::Message> const&)#2}@Base" 2.0.0+14.04.20140310 |
790 | - (c++)"typeinfo name for core::dbus::Executor@Base" 2.0.0+14.04.20140310 |
791 | - (c++)"typeinfo name for core::dbus::Fixture@Base" 2.0.0+14.04.20140310 |
792 | - (c++)"typeinfo name for core::dbus::Fixture::Private::Session::Session(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
793 | - (c++)"typeinfo name for core::dbus::Fixture::Private::System::System(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 2.0.0+14.04.20140310 |
794 | - (c++)"typeinfo name for core::dbus::Message::Private::Private(DBusMessage*, bool)::{lambda(DBusMessage*)#1}@Base" 2.0.0+14.04.20140310 |
795 | - (c++)"typeinfo name for core::dbus::PendingCall@Base" 2.0.0+14.04.20140310 |
796 | - (c++)"typeinfo name for core::dbus::types::ObjectPath::Errors::InvalidObjectPathStringRepresentation@Base" 2.0.0+14.04.20140310 |
797 | - (c++)"vtable for core::dbus::Bus::Errors::AlreadyOwned@Base" 2.0.0+14.04.20140310 |
798 | - (c++)"vtable for core::dbus::Bus::Errors::AlreadyOwner@Base" 2.0.0+14.04.20140310 |
799 | - (c++)"vtable for core::dbus::Bus::Errors::NoMemory@Base" 2.0.0+14.04.20140310 |
800 | - (c++)"vtable for core::dbus::Fixture@Base" 2.0.0+14.04.20140310 |
801 | - (c++)"vtable for core::dbus::types::ObjectPath::Errors::InvalidObjectPathStringRepresentation@Base" 2.0.0+14.04.20140310 |
802 | -#include "libdbus-cpp5.symbols.coverage" |
803 | - |
804 | |
805 | === removed file 'debian/libdbus-cpp5.symbols.amd64' |
806 | --- debian/libdbus-cpp5.symbols.amd64 2015-10-21 08:00:49 +0000 |
807 | +++ debian/libdbus-cpp5.symbols.amd64 1970-01-01 00:00:00 +0000 |
808 | @@ -1,2 +0,0 @@ |
809 | -libdbus-cpp.so.5 libdbus-cpp5 #MINVER# |
810 | -#include "libdbus-cpp5.symbols.64bit" |
811 | |
812 | === removed file 'debian/libdbus-cpp5.symbols.arm64' |
813 | --- debian/libdbus-cpp5.symbols.arm64 2015-10-21 08:00:49 +0000 |
814 | +++ debian/libdbus-cpp5.symbols.arm64 1970-01-01 00:00:00 +0000 |
815 | @@ -1,2 +0,0 @@ |
816 | -libdbus-cpp.so.5 libdbus-cpp5 #MINVER# |
817 | -#include "libdbus-cpp5.symbols.64bit" |
818 | |
819 | === removed file 'debian/libdbus-cpp5.symbols.armhf' |
820 | --- debian/libdbus-cpp5.symbols.armhf 2015-10-21 08:00:49 +0000 |
821 | +++ debian/libdbus-cpp5.symbols.armhf 1970-01-01 00:00:00 +0000 |
822 | @@ -1,2 +0,0 @@ |
823 | -libdbus-cpp.so.5 libdbus-cpp5 #MINVER# |
824 | -#include "libdbus-cpp5.symbols.32bit" |
825 | |
826 | === removed file 'debian/libdbus-cpp5.symbols.coverage' |
827 | --- debian/libdbus-cpp5.symbols.coverage 2015-10-21 08:00:49 +0000 |
828 | +++ debian/libdbus-cpp5.symbols.coverage 1970-01-01 00:00:00 +0000 |
829 | @@ -1,5 +0,0 @@ |
830 | - (c++|optional)"core::dbus::ServiceWatcher::Private::Private()@Base" 2.0.0+14.04.20140310 |
831 | - (c++|optional)"core::dbus::Bus::Name::~Name()@Base" 2.0.0+14.04.20140310 |
832 | - (c++|optional)"core::dbus::Bus::Private::~Private()@Base" 2.0.0+14.04.20140310 |
833 | - (c++|optional)"core::dbus::Message::Writer::Private::~Private()@Base" 2.0.0+14.04.20140310 |
834 | - (c++|optional)"typeinfo for core::dbus::Message::Private::Private(DBusMessage*, bool)::{lambda(DBusMessage*)#1}@Base" 2.0.0+14.04.20140310 |
835 | |
836 | === removed file 'debian/libdbus-cpp5.symbols.i386' |
837 | --- debian/libdbus-cpp5.symbols.i386 2015-10-21 08:00:49 +0000 |
838 | +++ debian/libdbus-cpp5.symbols.i386 1970-01-01 00:00:00 +0000 |
839 | @@ -1,2 +0,0 @@ |
840 | -libdbus-cpp.so.5 libdbus-cpp5 #MINVER# |
841 | -#include "libdbus-cpp5.symbols.32bit" |
842 | |
843 | === removed file 'debian/libdbus-cpp5.symbols.powerpc' |
844 | --- debian/libdbus-cpp5.symbols.powerpc 2015-10-21 08:00:49 +0000 |
845 | +++ debian/libdbus-cpp5.symbols.powerpc 1970-01-01 00:00:00 +0000 |
846 | @@ -1,2 +0,0 @@ |
847 | -libdbus-cpp.so.5 libdbus-cpp5 #MINVER# |
848 | -#include "libdbus-cpp5.symbols.32bit" |
849 | |
850 | === removed file 'debian/libdbus-cpp5.symbols.ppc64el' |
851 | --- debian/libdbus-cpp5.symbols.ppc64el 2015-10-21 08:00:49 +0000 |
852 | +++ debian/libdbus-cpp5.symbols.ppc64el 1970-01-01 00:00:00 +0000 |
853 | @@ -1,2 +0,0 @@ |
854 | -libdbus-cpp.so.5 libdbus-cpp5 #MINVER# |
855 | -#include "libdbus-cpp5.symbols.64bit" |
856 | |
857 | === modified file 'debian/rules' |
858 | --- debian/rules 2015-07-21 10:37:34 +0000 |
859 | +++ debian/rules 2016-08-08 09:17:09 +0000 |
860 | @@ -6,15 +6,31 @@ |
861 | |
862 | include /usr/share/dpkg/default.mk |
863 | |
864 | +distro=$(shell lsb_release -c -s) |
865 | + |
866 | +ifeq ($(distro),vivid) |
867 | + full_version=$(shell cat $(CURDIR)/debian/VERSION.vivid) |
868 | +else |
869 | + full_version=$(shell cat $(CURDIR)/debian/VERSION) |
870 | +endif |
871 | + |
872 | +major=$(shell echo $(full_version) | cut -d'.' -f1) |
873 | +minor=$(shell echo $(full_version) | cut -d'.' -f2) |
874 | +patch=$(shell echo $(full_version) | cut -d'.' -f3) |
875 | + |
876 | export DPKG_GENSYMBOLS_CHECK_LEVEL=4 |
877 | |
878 | %: |
879 | dh $@ |
880 | |
881 | override_dh_auto_configure: |
882 | - dh_auto_configure -- -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/$(DEB_HOST_MULTIARCH)/dbus-cpp -DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) |
883 | + dh_auto_configure -- -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/$(DEB_HOST_MULTIARCH)/dbus-cpp -DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) -DDBUS_CPP_VERSION_MAJOR=$(major) -DDBUS_CPP_VERSION_MINOR=$(minor) -DDBUS_CPP_VERSION_PATCH=$(patch) |
884 | |
885 | override_dh_auto_test: |
886 | if [ "$(DEB_HOST_MULTIARCH)" != "powerpc-linux-gnu" ]; then \ |
887 | dh_auto_test; \ |
888 | fi |
889 | + |
890 | +override_dh_auto_clean: |
891 | + /bin/sh $(CURDIR)/debian/bileto_pre_release_hook |
892 | + dh_auto_clean |
893 | |
894 | === modified file 'include/core/dbus/impl/object.h' |
895 | --- include/core/dbus/impl/object.h 2014-10-30 13:22:52 +0000 |
896 | +++ include/core/dbus/impl/object.h 2016-08-08 09:17:09 +0000 |
897 | @@ -19,7 +19,6 @@ |
898 | #define CORE_DBUS_IMPL_OBJECT_H_ |
899 | |
900 | #include <core/dbus/bus.h> |
901 | -#include <core/dbus/lifetime_constrained_cache.h> |
902 | #include <core/dbus/match_rule.h> |
903 | #include <core/dbus/message_router.h> |
904 | #include <core/dbus/message_streaming_operators.h> |
905 | @@ -37,6 +36,7 @@ |
906 | |
907 | #include <functional> |
908 | #include <future> |
909 | +#include <iostream> |
910 | #include <map> |
911 | #include <memory> |
912 | #include <string> |
913 | @@ -70,17 +70,17 @@ |
914 | object_path.as_string(), |
915 | traits::Service<typename Method::Interface>::interface_name().c_str(), |
916 | Method::name()); |
917 | - |
918 | + |
919 | if (!msg) |
920 | throw std::runtime_error("No memory available to allocate DBus message"); |
921 | - |
922 | + |
923 | auto writer = msg->writer(); |
924 | encode_message(writer, args...); |
925 | - |
926 | + |
927 | auto reply = parent->get_connection()->send_with_reply_and_block_for_at_most( |
928 | msg, |
929 | Method::default_timeout()); |
930 | - |
931 | + |
932 | return Result<ResultType>::from_message(reply); |
933 | } |
934 | |
935 | @@ -153,40 +153,57 @@ |
936 | inline std::shared_ptr<Property<PropertyDescription>> |
937 | Object::get_property() |
938 | { |
939 | - // If this is a proxy object we set up listening for property changes the |
940 | - // first time someone accesses properties. |
941 | - if (parent->is_stub()) |
942 | - { |
943 | - if (!signal_properties_changed) |
944 | - { |
945 | - signal_properties_changed |
946 | - = get_signal<interfaces::Properties::Signals::PropertiesChanged>(); |
947 | - |
948 | - signal_properties_changed->connect( |
949 | - std::bind( |
950 | - &Object::on_properties_changed, |
951 | - shared_from_this(), |
952 | - std::placeholders::_1)); |
953 | - } |
954 | - } |
955 | - |
956 | typedef Property<PropertyDescription> PropertyType; |
957 | - auto property = |
958 | - PropertyType::make_property( |
959 | - shared_from_this()); |
960 | |
961 | + // Creating a stub property for a remote object/property instance |
962 | + // requires the following steps: |
963 | + // [1.] Look up if we already have a property instance available in the cache, |
964 | + // leveraging the tuple (path, interface, name) as key. |
965 | + // [1.1] If yes: return the property. |
966 | + // [1.2] If no: Create a new proeprty instance and: |
967 | + // [1.2.1] Make it known to the cache. |
968 | + // [1.2.2] Wire it up for property_changed signal receiving. |
969 | + // [1.2.3] Communicate a new match rule to the dbus daemon to enable reception. |
970 | if (parent->is_stub()) |
971 | { |
972 | - auto tuple = std::make_tuple( |
973 | - traits::Service<typename PropertyDescription::Interface>::interface_name(), |
974 | - PropertyDescription::name()); |
975 | - |
976 | - property_changed_vtable[tuple] = std::bind( |
977 | - &Property<PropertyDescription>::handle_changed, |
978 | - property, |
979 | - std::placeholders::_1); |
980 | + auto itf = traits::Service<typename PropertyDescription::Interface>::interface_name(); |
981 | + auto name = PropertyDescription::name(); |
982 | + auto ekey = std::make_tuple(path(), itf, name); |
983 | + |
984 | + auto property = Object::property_cache<PropertyDescription>().retrieve_value_for_key(ekey); |
985 | + if (property) |
986 | + { |
987 | + return property; |
988 | + } |
989 | + |
990 | + auto mr = MatchRule() |
991 | + .type(Message::Type::signal) |
992 | + .interface(traits::Service<interfaces::Properties>::interface_name()) |
993 | + .member(interfaces::Properties::Signals::PropertiesChanged::name()); |
994 | + |
995 | + property = PropertyType::make_property(shared_from_this()); |
996 | + |
997 | + Object::property_cache<PropertyDescription>().insert_value_for_key(ekey, property); |
998 | + |
999 | + // We only ever do this once per object. |
1000 | + std::call_once(add_match_once, [&]() |
1001 | + { |
1002 | + // [1.2.4] Inform the dbus daemon that we would like to receive the respective signals. |
1003 | + add_match(mr); |
1004 | + }); |
1005 | + |
1006 | + // [1.2.2] Enable dispatching of changes. |
1007 | + std::weak_ptr<PropertyType> wp{property}; |
1008 | + property_changed_vtable[std::make_tuple(itf, name)] = [wp](const types::Variant& arg) |
1009 | + { |
1010 | + if (auto sp = wp.lock()) |
1011 | + sp->handle_changed(arg); |
1012 | + }; |
1013 | + |
1014 | + return property; |
1015 | } |
1016 | - return property; |
1017 | + |
1018 | + return PropertyType::make_property(shared_from_this()); |
1019 | } |
1020 | |
1021 | template<typename Interface> |
1022 | @@ -312,6 +329,23 @@ |
1023 | &MessageRouter<PropertyKey>::operator(), |
1024 | std::ref(set_property_router), |
1025 | std::placeholders::_1)); |
1026 | + } else |
1027 | + { |
1028 | + // We centrally route org.freedesktop.DBus.Properties.PropertiesChanged |
1029 | + // through the object, which in turn routes via a custom Property cache. |
1030 | + signal_router.install_route( |
1031 | + SignalKey{ |
1032 | + traits::Service<interfaces::Properties>::interface_name(), |
1033 | + interfaces::Properties::Signals::PropertiesChanged::name() |
1034 | + }, |
1035 | + // Passing 'this' is fine as the lifetime of the signal_router is upper limited |
1036 | + // by the lifetime of 'this'. |
1037 | + [this](const Message::Ptr& msg) |
1038 | + { |
1039 | + interfaces::Properties::Signals::PropertiesChanged::ArgumentType arg; |
1040 | + msg->reader() >> arg; |
1041 | + on_properties_changed(arg); |
1042 | + }); |
1043 | } |
1044 | } |
1045 | |
1046 | @@ -319,6 +353,20 @@ |
1047 | { |
1048 | parent->get_connection()->access_signal_router().uninstall_route(object_path); |
1049 | parent->get_connection()->unregister_object_path(object_path); |
1050 | + |
1051 | + auto mr = MatchRule() |
1052 | + .type(Message::Type::signal) |
1053 | + .interface(traits::Service<interfaces::Properties>::interface_name()) |
1054 | + .member(interfaces::Properties::Signals::PropertiesChanged::name()); |
1055 | + |
1056 | + try |
1057 | + { |
1058 | + remove_match(mr); |
1059 | + } catch(...) |
1060 | + { |
1061 | + // We consciously drop all possible exceptions here. There is hardly |
1062 | + // anything we can do about the error anyway. |
1063 | + } |
1064 | } |
1065 | |
1066 | inline void Object::add_match(const MatchRule& rule) |
1067 | @@ -346,6 +394,19 @@ |
1068 | } |
1069 | } |
1070 | } |
1071 | + |
1072 | +template<typename PropertyDescription> |
1073 | +inline core::dbus::ThreadSafeLifetimeConstrainedCache< |
1074 | + core::dbus::Object::CacheKey, |
1075 | + core::dbus::Property<PropertyDescription>>& |
1076 | +core::dbus::Object::property_cache() |
1077 | +{ |
1078 | + static core::dbus::ThreadSafeLifetimeConstrainedCache< |
1079 | + core::dbus::Object::CacheKey, |
1080 | + core::dbus::Property<PropertyDescription> |
1081 | + > cache; |
1082 | + return cache; |
1083 | +} |
1084 | } |
1085 | } |
1086 | |
1087 | |
1088 | === modified file 'include/core/dbus/impl/property.h' |
1089 | --- include/core/dbus/impl/property.h 2014-06-10 08:44:17 +0000 |
1090 | +++ include/core/dbus/impl/property.h 2016-08-08 09:17:09 +0000 |
1091 | @@ -64,6 +64,13 @@ |
1092 | } |
1093 | |
1094 | template<typename PropertyType> |
1095 | +const core::Signal<void>& |
1096 | +Property<PropertyType>::about_to_be_destroyed() const |
1097 | +{ |
1098 | + return signal_about_to_be_destroyed; |
1099 | +} |
1100 | + |
1101 | +template<typename PropertyType> |
1102 | std::shared_ptr<Property<PropertyType>> |
1103 | Property<PropertyType>::make_property(const std::shared_ptr<Object>& parent) |
1104 | { |
1105 | @@ -109,6 +116,20 @@ |
1106 | } |
1107 | |
1108 | template<typename PropertyType> |
1109 | +Property<PropertyType>::~Property() |
1110 | +{ |
1111 | + try |
1112 | + { |
1113 | + signal_about_to_be_destroyed(); |
1114 | + } catch(...) |
1115 | + { |
1116 | + // Consciously dropping all exceptions here. |
1117 | + // There is hardly anything we can do about it while |
1118 | + // tearing down the object anyway. |
1119 | + } |
1120 | +} |
1121 | + |
1122 | +template<typename PropertyType> |
1123 | void |
1124 | Property<PropertyType>::handle_get(const Message::Ptr& msg) |
1125 | { |
1126 | |
1127 | === modified file 'include/core/dbus/impl/signal.h' |
1128 | --- include/core/dbus/impl/signal.h 2014-11-10 08:14:45 +0000 |
1129 | +++ include/core/dbus/impl/signal.h 2016-08-08 09:17:09 +0000 |
1130 | @@ -65,7 +65,7 @@ |
1131 | const typename Signal<SignalDescription, Argument>::SubscriptionToken& token) |
1132 | { |
1133 | std::lock_guard<std::mutex> lg(handlers_guard); |
1134 | - return handlers.erase(token); |
1135 | + handlers.erase(token); |
1136 | } |
1137 | |
1138 | template<typename SignalDescription, typename Argument> |
1139 | @@ -121,8 +121,8 @@ |
1140 | &Signal<SignalDescription>::operator(), |
1141 | this, |
1142 | std::placeholders::_1)); |
1143 | - parent->add_match( |
1144 | - rule.type(Message::Type::signal).interface(interface).member(name)); |
1145 | + rule = rule.type(Message::Type::signal).interface(interface).member(name); |
1146 | + parent->add_match(rule); |
1147 | } |
1148 | |
1149 | template<typename SignalDescription, typename Argument> |
1150 | @@ -309,6 +309,8 @@ |
1151 | &Signal<SignalDescription, typename SignalDescription::ArgumentType>::operator(), |
1152 | this, |
1153 | std::placeholders::_1)); |
1154 | + |
1155 | + d->rule = d->rule.type(Message::Type::signal).interface(interface).member(name); |
1156 | } |
1157 | |
1158 | template<typename SignalDescription> |
1159 | @@ -322,7 +324,8 @@ |
1160 | { |
1161 | try |
1162 | { |
1163 | - msg->reader() >> d->value; |
1164 | + typename SignalDescription::ArgumentType value; |
1165 | + msg->reader() >> value; |
1166 | std::lock_guard<std::mutex> lg(d->handlers_guard); |
1167 | for (auto it : d->handlers) |
1168 | { |
1169 | @@ -356,7 +359,7 @@ |
1170 | continue; |
1171 | } |
1172 | |
1173 | - handler(d->value); |
1174 | + handler(value); |
1175 | } |
1176 | } |
1177 | catch (const std::runtime_error& e) |
1178 | |
1179 | === modified file 'include/core/dbus/message.h' |
1180 | --- include/core/dbus/message.h 2014-01-05 18:58:19 +0000 |
1181 | +++ include/core/dbus/message.h 2016-08-08 09:17:09 +0000 |
1182 | @@ -439,6 +439,8 @@ |
1183 | }; |
1184 | typedef std::shared_ptr<Message> MessagePtr; |
1185 | typedef std::unique_ptr<Message> MessageUPtr; |
1186 | + |
1187 | +ORG_FREEDESKTOP_DBUS_DLL_PUBLIC std::ostream& operator<<(std::ostream&, Message::Type); |
1188 | } |
1189 | } |
1190 | |
1191 | |
1192 | === modified file 'include/core/dbus/object.h' |
1193 | --- include/core/dbus/object.h 2014-10-23 21:09:56 +0000 |
1194 | +++ include/core/dbus/object.h 2016-08-08 09:17:09 +0000 |
1195 | @@ -19,12 +19,14 @@ |
1196 | #define CORE_DBUS_OBJECT_H_ |
1197 | |
1198 | #include <core/dbus/bus.h> |
1199 | +#include <core/dbus/lifetime_constrained_cache.h> |
1200 | #include <core/dbus/service.h> |
1201 | |
1202 | #include <functional> |
1203 | #include <future> |
1204 | #include <map> |
1205 | #include <memory> |
1206 | +#include <mutex> |
1207 | #include <ostream> |
1208 | #include <string> |
1209 | |
1210 | @@ -82,10 +84,14 @@ |
1211 | class Object : public std::enable_shared_from_this<Object> |
1212 | { |
1213 | private: |
1214 | + typedef std::tuple<types::ObjectPath, std::string, std::string> CacheKey; |
1215 | typedef std::tuple<std::string, std::string> MethodKey; |
1216 | typedef std::tuple<std::string, std::string> PropertyKey; |
1217 | typedef std::tuple<std::string, std::string> SignalKey; |
1218 | |
1219 | + template<typename PropertyDescription> |
1220 | + static ThreadSafeLifetimeConstrainedCache<CacheKey, Property<PropertyDescription>>& property_cache(); |
1221 | + |
1222 | public: |
1223 | typedef std::shared_ptr<Object> Ptr; |
1224 | typedef std::function<void(const Message::Ptr&)> MethodHandler; |
1225 | @@ -173,7 +179,7 @@ |
1226 | * @param [in] path The path to associate the object with. |
1227 | * @return An object instance or nullptr in case of errors. |
1228 | */ |
1229 | - std::shared_ptr<Object> |
1230 | + std::shared_ptr<Object> |
1231 | inline add_object_for_path(const types::ObjectPath& path); |
1232 | |
1233 | /** |
1234 | @@ -227,16 +233,11 @@ |
1235 | MessageRouter<MethodKey> method_router; |
1236 | MessageRouter<PropertyKey> get_property_router; |
1237 | MessageRouter<PropertyKey> set_property_router; |
1238 | + std::once_flag add_match_once; |
1239 | std::map< |
1240 | std::tuple<std::string, std::string>, |
1241 | std::function<void(const types::Variant&)> |
1242 | > property_changed_vtable; |
1243 | - std::shared_ptr< |
1244 | - Signal< |
1245 | - interfaces::Properties::Signals::PropertiesChanged, |
1246 | - interfaces::Properties::Signals::PropertiesChanged::ArgumentType |
1247 | - > |
1248 | - > signal_properties_changed; |
1249 | }; |
1250 | } |
1251 | } |
1252 | |
1253 | === modified file 'include/core/dbus/property.h' |
1254 | --- include/core/dbus/property.h 2014-01-20 21:22:02 +0000 |
1255 | +++ include/core/dbus/property.h 2016-08-08 09:17:09 +0000 |
1256 | @@ -43,6 +43,8 @@ |
1257 | typedef typename PropertyType::ValueType ValueType; |
1258 | typedef core::Property<ValueType> Super; |
1259 | |
1260 | + inline ~Property(); |
1261 | + |
1262 | /** |
1263 | * @brief Non-mutable access to the contained value. |
1264 | * @return Non-mutable reference to the contained value. |
1265 | @@ -61,6 +63,11 @@ |
1266 | */ |
1267 | inline bool is_writable() const; |
1268 | |
1269 | + /** |
1270 | + * @brief Emitted during destruction of an object instance. |
1271 | + */ |
1272 | + inline const core::Signal<void>& about_to_be_destroyed() const; |
1273 | + |
1274 | protected: |
1275 | friend class Object; |
1276 | |
1277 | @@ -82,6 +89,7 @@ |
1278 | std::string interface; |
1279 | std::string name; |
1280 | bool writable; |
1281 | + core::Signal<void> signal_about_to_be_destroyed; |
1282 | }; |
1283 | } |
1284 | } |
1285 | |
1286 | === modified file 'include/core/dbus/signal.h' |
1287 | --- include/core/dbus/signal.h 2014-01-24 11:17:26 +0000 |
1288 | +++ include/core/dbus/signal.h 2016-08-08 09:17:09 +0000 |
1289 | @@ -189,8 +189,11 @@ |
1290 | const std::shared_ptr<Object>& parent, |
1291 | const std::string& interface, |
1292 | const std::string& name); |
1293 | - |
1294 | - typename SignalDescription::ArgumentType value; |
1295 | + |
1296 | + // We do not need this member anymore, but keep it in place for |
1297 | + // the sake of binary compatibility. Leaving a TODO(tvoss) to clean |
1298 | + // up on next ABI bump. |
1299 | + typename SignalDescription::ArgumentType pad; |
1300 | std::shared_ptr<Object> parent; |
1301 | std::string interface; |
1302 | std::string name; |
1303 | |
1304 | === modified file 'src/core/dbus/bus.cpp' |
1305 | --- src/core/dbus/bus.cpp 2014-11-27 16:38:44 +0000 |
1306 | +++ src/core/dbus/bus.cpp 2016-08-08 09:17:09 +0000 |
1307 | @@ -24,6 +24,8 @@ |
1308 | #include <core/dbus/traits/timeout.h> |
1309 | #include <core/dbus/traits/watch.h> |
1310 | |
1311 | +#include <core/posix/this_process.h> |
1312 | + |
1313 | #include "message_p.h" |
1314 | #include "message_factory_impl.h" |
1315 | #include "pending_call_impl.h" |
1316 | @@ -76,8 +78,18 @@ |
1317 | |
1318 | void init_libdbus_thread_support_and_install_shutdown_handler() |
1319 | { |
1320 | + static const bool install_dbus_shutdown_handler |
1321 | + { |
1322 | + not core::posix::this_process::env::get("DBUS_CPP_INSTALL_DBUS_SHUTDOWN_HANDLER").empty() |
1323 | + }; |
1324 | + |
1325 | static std::once_flag once; |
1326 | - std::call_once(once, []() { dbus_threads_init_default(); std::atexit(dbus_shutdown); }); |
1327 | + std::call_once(once, []() |
1328 | + { |
1329 | + dbus_threads_init_default(); |
1330 | + if (install_dbus_shutdown_handler) |
1331 | + std::atexit(dbus_shutdown); |
1332 | + }); |
1333 | } |
1334 | } |
1335 | |
1336 | |
1337 | === modified file 'src/core/dbus/match_rule.cpp' |
1338 | --- src/core/dbus/match_rule.cpp 2014-01-21 13:48:54 +0000 |
1339 | +++ src/core/dbus/match_rule.cpp 2016-08-08 09:17:09 +0000 |
1340 | @@ -151,17 +151,10 @@ |
1341 | |
1342 | std::string dbus::MatchRule::as_string() const |
1343 | { |
1344 | - static const std::map<Message::Type, std::string> lut = |
1345 | - { |
1346 | - {Message::Type::signal, "signal"}, |
1347 | - {Message::Type::method_call, "method_call"}, |
1348 | - {Message::Type::method_return, "method_return"}, |
1349 | - {Message::Type::error, "error"} |
1350 | - }; |
1351 | Comma comma; |
1352 | std::stringstream ss; |
1353 | if (d->type != Message::Type::invalid) |
1354 | - ss << "type='" << lut.at(d->type) << "'" << comma; |
1355 | + ss << "type='" << d->type << "'" << comma; |
1356 | if (!d->sender.empty()) |
1357 | ss << comma << "sender='" << d->sender << "'" << comma; |
1358 | if (!d->interface.empty()) |
1359 | |
1360 | === modified file 'src/core/dbus/message.cpp' |
1361 | --- src/core/dbus/message.cpp 2015-07-21 18:30:23 +0000 |
1362 | +++ src/core/dbus/message.cpp 2016-08-08 09:17:09 +0000 |
1363 | @@ -652,5 +652,24 @@ |
1364 | { |
1365 | return std::shared_ptr<Message>(new Message(d->clone())); |
1366 | } |
1367 | + |
1368 | +std::ostream& operator<<(std::ostream& out, Message::Type type) |
1369 | +{ |
1370 | + switch (type) |
1371 | + { |
1372 | + case Message::Type::error: |
1373 | + return out << "error"; |
1374 | + case Message::Type::invalid: |
1375 | + return out << "invalid"; |
1376 | + case Message::Type::method_call: |
1377 | + return out << "method_call"; |
1378 | + case Message::Type::method_return: |
1379 | + return out << "method_return"; |
1380 | + case Message::Type::signal: |
1381 | + return out << "signal"; |
1382 | + } |
1383 | + |
1384 | + return out; |
1385 | +} |
1386 | } |
1387 | } |
1388 | |
1389 | === modified file 'src/core/dbus/service.cpp' |
1390 | --- src/core/dbus/service.cpp 2014-06-30 04:57:08 +0000 |
1391 | +++ src/core/dbus/service.cpp 2016-08-08 09:17:09 +0000 |
1392 | @@ -79,7 +79,7 @@ |
1393 | |
1394 | void Service::remove_match(const MatchRule& rule) |
1395 | { |
1396 | - connection->remove_match(rule); |
1397 | + connection->remove_match(rule.sender(name)); |
1398 | } |
1399 | |
1400 | Service::Service(const Bus::Ptr& connection, const std::string& name) |
1401 | |
1402 | === modified file 'tests/async_execution_load_test.cpp' |
1403 | --- tests/async_execution_load_test.cpp 2014-10-02 20:47:08 +0000 |
1404 | +++ tests/async_execution_load_test.cpp 2016-08-08 09:17:09 +0000 |
1405 | @@ -131,7 +131,7 @@ |
1406 | std::thread t4{[dbus, ec]() {invoke_list_names_n_times_and_update_event_collector(dbus, 100, ec);}}; |
1407 | std::thread t5{[dbus, ec]() {invoke_list_names_n_times_and_update_event_collector(dbus, 100, ec);}}; |
1408 | |
1409 | - EXPECT_TRUE(ec->wait_for(std::chrono::seconds{60})); |
1410 | + EXPECT_TRUE(ec->wait_for(std::chrono::minutes{5})); |
1411 | |
1412 | bus->stop(); |
1413 | |
1414 | |
1415 | === modified file 'tests/executor_test.cpp' |
1416 | --- tests/executor_test.cpp 2014-09-28 21:27:09 +0000 |
1417 | +++ tests/executor_test.cpp 2016-08-08 09:17:09 +0000 |
1418 | @@ -33,6 +33,8 @@ |
1419 | #include <boost/asio.hpp> |
1420 | #include <gtest/gtest.h> |
1421 | |
1422 | +#include <random> |
1423 | + |
1424 | namespace dbus = core::dbus; |
1425 | |
1426 | namespace |
1427 | @@ -172,7 +174,7 @@ |
1428 | bus->send(reply); |
1429 | }); |
1430 | |
1431 | - cross_process_sync.try_signal_ready_for(std::chrono::milliseconds{500}); |
1432 | + cross_process_sync.try_signal_ready_for(std::chrono::seconds{20}); |
1433 | |
1434 | std::thread w1([bus]() { bus->run(); }); |
1435 | std::thread w2([bus]() { bus->run(); }); |
1436 | @@ -201,7 +203,7 @@ |
1437 | // std::cout << "Invoke gdb with: sudo gdb -p " << getpid() << std::endl; |
1438 | // sleep(10); |
1439 | |
1440 | - EXPECT_EQ(std::uint32_t(1), cross_process_sync.wait_for_signal_ready_for(std::chrono::milliseconds{500})); |
1441 | + EXPECT_EQ(std::uint32_t(1), cross_process_sync.wait_for_signal_ready_for(std::chrono::seconds{20})); |
1442 | |
1443 | auto stub_service = dbus::Service::use_service(bus, dbus::traits::Service<test::Service>::interface_name()); |
1444 | auto stub = stub_service->object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1445 | |
1446 | === modified file 'tests/message_test.cpp' |
1447 | --- tests/message_test.cpp 2014-01-10 07:34:59 +0000 |
1448 | +++ tests/message_test.cpp 2016-08-08 09:17:09 +0000 |
1449 | @@ -175,3 +175,23 @@ |
1450 | } |
1451 | } |
1452 | } |
1453 | + |
1454 | +namespace |
1455 | +{ |
1456 | +class MessageType : public testing::TestWithParam<std::pair<core::dbus::Message::Type, std::string>> |
1457 | +{ |
1458 | +}; |
1459 | +} |
1460 | + |
1461 | +TEST_P(MessageType, IsPrintedCorrectly) |
1462 | +{ |
1463 | + std::stringstream ss; ss << GetParam().first; |
1464 | + EXPECT_EQ(GetParam().second, ss.str()); |
1465 | +} |
1466 | + |
1467 | +INSTANTIATE_TEST_CASE_P(MessageType, MessageType, ::testing::Values( |
1468 | + std::make_pair(core::dbus::Message::Type::error, "error"), |
1469 | + std::make_pair(core::dbus::Message::Type::invalid, "invalid"), |
1470 | + std::make_pair(core::dbus::Message::Type::method_call, "method_call"), |
1471 | + std::make_pair(core::dbus::Message::Type::method_return, "method_return"), |
1472 | + std::make_pair(core::dbus::Message::Type::signal, "signal"))); |
FAILED: Continuous integration, rev:104 jenkins. qa.ubuntu. com/job/ dbus-cpp- ci/229/ jenkins. qa.ubuntu. com/job/ dbus-cpp- vivid-amd64- ci/17/console jenkins. qa.ubuntu. com/job/ dbus-cpp- vivid-armhf- ci/17/console jenkins. qa.ubuntu. com/job/ dbus-cpp- vivid-i386- ci/17/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/dbus- cpp-ci/ 229/rebuild
http://