Patrick Ohly [Wed, 3 Apr 2013 14:45:28 +0000 (07:45 -0700)]
sqlite addressbook: fix memory corruption in get_revision
Instead of setting a pointer, the pointer pointing to the pointer was
overwritten. As a result, e_book_backend_file_load_revision() always saw a
NULL pointer when opening the address book (regardless whether in
evolution-addressbook-factory or a DRA client) and used
e_book_backend_file_bump_revision() to write a new revision.
It is not entirely clear whether overwriting the wrong pointer (which was on
the stack and thus should not have been that important) or these concurrent
writes were to blame, but testing shows that this fix solves a mysterious
sqlite query failure ("corrupt database") in the DRA client when running
SyncEvolution's testpim.py TestContacts.testFilterStartupRefineSmart.
Fixes BGO #697173.
Matthew Barnes [Wed, 3 Apr 2013 20:31:58 +0000 (16:31 -0400)]
Remove EBookBackendSync.
Useless subclass, added no value other than a slightly less awkward API.
Matthew Barnes [Wed, 3 Apr 2013 16:52:25 +0000 (12:52 -0400)]
EBookBackendFile: Implement the new backend API.
Matthew Barnes [Wed, 3 Apr 2013 16:41:36 +0000 (12:41 -0400)]
EBookBackendFile cleanups.
Matthew Barnes [Wed, 3 Apr 2013 12:26:27 +0000 (08:26 -0400)]
EBookBackend: Add the new backend API alongside the old one.
The new and old EBookBackend class methods will co-exist temporarily,
so I can start converting the simpler EBookBackendSync-based backends
and make final adjustments to the new API.
Matthew Barnes [Wed, 3 Apr 2013 19:24:29 +0000 (15:24 -0400)]
Remove e_data_cal_is_opened().
With the new public API in place, ECalBackend can own its "opened"
state again.
Matthew Barnes [Wed, 3 Apr 2013 19:15:24 +0000 (15:15 -0400)]
Remove e_data_book_is_opened().
With the new public API in place, EBookBackend can own its "opened"
state again.
Matthew Barnes [Wed, 3 Apr 2013 13:50:15 +0000 (09:50 -0400)]
EBookBackend: Fix a GError typo.
Matthew Barnes [Tue, 2 Apr 2013 18:33:09 +0000 (14:33 -0400)]
Remove e_cal_backend_sync_set_lock().
ECalBackendSync purports to offer serialized method dispatching but
implements it completely wrong. Backends which rely on this should
instead set use_serial_dispatch_queue in their class_init() method.
Matthew Barnes [Tue, 2 Apr 2013 18:25:48 +0000 (14:25 -0400)]
ECalBackendClass: Add a 'use_serial_dispatch_queue' option.
ECalBackend subclasses can set this to TRUE to use a serial dispatch
queue, instead of a concurrent dispatch queue. A serial dispatch queue
executes one method at a time in the order in which methods were called.
This is generally slower than a concurrent dispatch queue, but can help
ECalBackend subclasses avoid thread-safety issues.
Matthew Barnes [Tue, 2 Apr 2013 16:42:34 +0000 (12:42 -0400)]
EBookBackendClass: Add a 'use_serial_dispatch_queue' option.
EBookBackend subclasses can set this to TRUE to use a serial dispatch
queue, instead of a concurrent dispatch queue. A serial dispatch queue
executes one method at a time in the order in which methods were called.
This is generally slower than a concurrent dispatch queue, but can help
EBookBackend subclasses avoid thread-safety issues.
Matthew Barnes [Tue, 2 Apr 2013 14:25:50 +0000 (10:25 -0400)]
ECalClient: Use G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED for close().
Invoke the close() method without a callback function so the server
knows not to reply. ECalClient tests that use GTestDBus generally
close their GDBusConnection immediately after disposing ECalClient,
and because we call close() asynchronously the server sometimes has
no chance to reply before the GDBusConnection closes, resulting in
a spurious console warning during the test.
Matthew Barnes [Tue, 2 Apr 2013 13:53:08 +0000 (09:53 -0400)]
EBookClient: Use G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED for close().
Invoke the close() method without a callback function so the server
knows not to reply. EBookClient tests that use GTestDBus generally
close their GDBusConnection immediately after disposing EBookClient,
and because we call close() asynchronously the server sometimes has
no chance to reply before the GDBusConnection closes, resulting in
a spurious console warning during the test.
Inaki Larranaga Murgoitio [Tue, 2 Apr 2013 08:32:32 +0000 (10:32 +0200)]
Updated Basque language
Matthew Barnes [Tue, 2 Apr 2013 02:28:19 +0000 (22:28 -0400)]
EBookBackendFile: Prefer EClientError domain.
The E_DATA_BOOK_ERROR domain will die when I'm finished with the backend
API rewrite, but I'm not quite ready to go all out with it yet. This is
just to make the direct access mode tests happy again.
Matthew Barnes [Mon, 1 Apr 2013 21:56:53 +0000 (17:56 -0400)]
Remove e_return_data_cal_error_val_if_fail() macro.
No longer used, and backends had been mainly misusing it anyway.
Matthew Barnes [Mon, 1 Apr 2013 21:55:40 +0000 (17:55 -0400)]
Remove e_return_data_cal_error_if_fail() macro.
No longer used, and backends had been mainly misusing it anyway.
Matthew Barnes [Mon, 1 Apr 2013 21:49:32 +0000 (17:49 -0400)]
Remove e_return_data_book_error_val_if_fail() macro.
No longer used, and backends had been mainly misusing it anyway.
Matthew Barnes [Mon, 1 Apr 2013 21:47:01 +0000 (17:47 -0400)]
Remove e_return_data_book_error_if_fail() macro.
No longer used, and backends had been mainly misusing it anyway.
Matthew Barnes [Mon, 1 Apr 2013 21:44:16 +0000 (17:44 -0400)]
ECalBackendSync: Prefer EClientError domain.
Also, don't return GErrors for argument checks.
Matthew Barnes [Mon, 1 Apr 2013 20:55:18 +0000 (16:55 -0400)]
EBookBackendSync: Prefer EClientError domain.
Also, don't return GErrors for argument checks.
Matthew Barnes [Mon, 1 Apr 2013 19:46:35 +0000 (15:46 -0400)]
ECalBackend: Prefer EClientError domain.
Matthew Barnes [Mon, 1 Apr 2013 19:38:04 +0000 (15:38 -0400)]
EBookBackend: Prefer EClientError domain.
Matthew Barnes [Mon, 1 Apr 2013 18:37:39 +0000 (14:37 -0400)]
EDataCal: Move data_cal_convert_to_client_error() calls.
Move these calls out of the "respond" functions so we don't lose them as
we remove the "respond" functions. Instead, place the calls immediately
before g_dbus_method-invocation_take_error().
Matthew Barnes [Mon, 1 Apr 2013 18:28:28 +0000 (14:28 -0400)]
EDataBook: Move data_book_convert_to_client_error() calls.
Move these calls out of the "respond" functions so we don't lose them as
we remove the "respond" functions. Instead, place the calls immediately
before g_dbus_method_invocation_take_error().
Matthew Barnes [Mon, 1 Apr 2013 15:08:32 +0000 (11:08 -0400)]
ECalBackend: Convert get_backend_property() method.
This method does not block, so simplify its signature and ditch the
asynchronous wrappers. Also, ECalBackendSync does not need its own
get_backend_property_sync() method.
Removed functions:
e_cal_backend_get_backend_property_sync()
e_cal_backend_get_backend_property_finish()
e_cal_backend_sync_get_backend_property()
e_data_cal_respond_get_backend_property()
Matthew Barnes [Mon, 1 Apr 2013 13:21:59 +0000 (09:21 -0400)]
EBookBackend: Convert get_backend_property() method.
This method does not block, so simplify its signature and ditch the
asynchronous wrappers. Also, EBookBackendSync does not need its own
get_backend_property_sync() method.
Removed functions:
e_book_backend_get_backend_property_sync()
e_book_backend_get_backend_property_finish()
e_book_backend_sync_get_backend_property()
e_data_book_respond_get_backend_property()
Matthew Barnes [Mon, 1 Apr 2013 13:03:26 +0000 (09:03 -0400)]
ECalBackend: Make the "cache-dir" property thread-safe.
New function:
e_cal_backend_dup_cache_dir()
Matthew Barnes [Mon, 1 Apr 2013 12:48:04 +0000 (08:48 -0400)]
EBookBackend: Make the "cache-dir" property thread-safe.
New function:
e_book_backend_dup_cache_dir()
Matthew Barnes [Mon, 1 Apr 2013 12:35:58 +0000 (08:35 -0400)]
Remove e_cal_backend_set_is_removed().
Not used by any current backend implementations, and I can't even make
sense of the documentation for it.
Matthew Barnes [Mon, 1 Apr 2013 12:34:40 +0000 (08:34 -0400)]
Remove e_cal_backend_is_removed().
Not used by any current backend implementations, and I can't even make
sense of the documentation for it.
Matthew Barnes [Mon, 1 Apr 2013 12:31:24 +0000 (08:31 -0400)]
Remove e_book_backend_set_is_removed().
Not used by any current backend implementations, and I can't even make
sense of the documentation for it.
Matthew Barnes [Mon, 1 Apr 2013 12:26:12 +0000 (08:26 -0400)]
Remove e_book_backend_is_removed().
Not used by any current backend implementations, and I can't even make
sense of the documentation for it.
Matthew Barnes [Sun, 31 Mar 2013 16:52:21 +0000 (12:52 -0400)]
ECalBackend: Remove set_backend_property() method.
No longer used.
Matthew Barnes [Sun, 31 Mar 2013 16:41:00 +0000 (12:41 -0400)]
EBookBackend: Remove set_backend_property() method.
No longer used.
Matthew Barnes [Sun, 31 Mar 2013 12:56:46 +0000 (08:56 -0400)]
ECalBackend: Remove CLIENT_BACKEND_PROPERTY_CACHE_DIR definition.
Backends should use the ECalBackend:cache-dir property directly.
Matthew Barnes [Sun, 31 Mar 2013 12:56:05 +0000 (08:56 -0400)]
ECalBackend: Remove CLIENT_BACKEND_PROPERTY_READONLY definition.
Backends should use the ECalBackend:writable property directly.
Matthew Barnes [Sun, 31 Mar 2013 12:55:13 +0000 (08:55 -0400)]
ECalBackend: Remove CLIENT_BACKEND_PROPERTY_ONLINE definition.
Backends should use the EBackend:online property directly.
Matthew Barnes [Sun, 31 Mar 2013 12:40:32 +0000 (08:40 -0400)]
EBookBackend: Remove CLIENT_BACKEND_PROPERTY_CACHE_DIR definition.
Backends should use the EBookBackend:cache-dir property directly.
Matthew Barnes [Sun, 31 Mar 2013 12:39:11 +0000 (08:39 -0400)]
EBookBackend: Remove CLIENT_BACKEND_PROPERTY_READONLY definition.
Backends should use the EBookBackend:writable property directly.
Matthew Barnes [Sun, 31 Mar 2013 12:28:19 +0000 (08:28 -0400)]
EBookBackend: Remove CLIENT_BACKEND_PROPERTY_ONLINE definition.
Backends should use the EBackend:online property directly.
Matthew Barnes [Sun, 31 Mar 2013 12:36:17 +0000 (08:36 -0400)]
e_data_cal_view_new: Add documentation.
Matthew Barnes [Sun, 31 Mar 2013 12:33:48 +0000 (08:33 -0400)]
e_data_book_view_new: Update documentation.
Mario Blättermann [Sun, 31 Mar 2013 13:50:29 +0000 (15:50 +0200)]
[l10n] Updated German translation
Antoine Jacoutot [Fri, 29 Mar 2013 14:54:07 +0000 (15:54 +0100)]
Fix implicit declaration of WIFEXITED.
https://bugzilla.gnome.org/show_bug.cgi?id=696858
Balázs Úr [Sat, 30 Mar 2013 10:04:45 +0000 (11:04 +0100)]
Updated Hungarian translation
Matthew Barnes [Fri, 29 Mar 2013 21:49:12 +0000 (17:49 -0400)]
Simplify direct access to address books.
EBookBackend's new public API allows Direct Access Mode to bypass
EDataBook and talk to the EBookBackend directly, which is appropriate
since EDataBook is just glue code for remote D-Bus method invocations.
Matthew Barnes [Tue, 26 Mar 2013 15:57:47 +0000 (11:57 -0400)]
Modernize ECalBackend's public API.
This leaves ECalBackend and EDataCal engaging in a somewhat ridiculous
kind of ping-pong game for the moment, but the desired public API (in as
much as a backend has a public API) is starting to take shape.
With the scaffolding now in place, we can begin converting backends to
use modern GIO conventions one method at a time, and eventually remove
all the "respond" functions in EDataCal.
Matthew Barnes [Mon, 25 Mar 2013 13:28:40 +0000 (09:28 -0400)]
Modernize EBookBackend's public API.
This leaves EBookBackend and EDataBook engaging in a somewhat ridiculous
kind of ping-pong game for the moment, but the desired public API (in as
much as a backend has a public API) is starting to take shape.
With the scaffolding now in place, we can begin converting backends to
use modern GIO conventions one method at a time, and eventually remove
all the "respond" functions in EDataBook.
Piotr Drąg [Fri, 29 Mar 2013 15:38:33 +0000 (16:38 +0100)]
Updated Polish translation
Nilamdyuti Goswami [Fri, 29 Mar 2013 12:30:34 +0000 (18:00 +0530)]
Assamese translation updated
Marek Černocký [Thu, 28 Mar 2013 21:26:52 +0000 (22:26 +0100)]
Updated Czech translation
Daniel Mustieles [Thu, 28 Mar 2013 16:44:34 +0000 (17:44 +0100)]
Updated Spanish translation
Alexandre Franke [Thu, 28 Mar 2013 16:36:34 +0000 (17:36 +0100)]
Update French translation
Matthew Barnes [Tue, 26 Mar 2013 17:46:39 +0000 (13:46 -0400)]
EDataCalView: Unreference the EGdbusCalView in dispose().
Recent reference counting fixes uncovered this. We must have been
leaking EDataCalView references for this to not have been an issue
until now.
Matthew Barnes [Tue, 26 Mar 2013 17:44:30 +0000 (13:44 -0400)]
EDataBookView: Unreference the EGdbusBookView in dispose().
Recent reference counting fixes uncovered this. We must have been
leaking EDataBookView references for this to not have been an issue
until now.
Matthew Barnes [Tue, 26 Mar 2013 17:43:37 +0000 (13:43 -0400)]
EDataCalView: Prefer g_clear_object() in dispose().
Matthew Barnes [Tue, 26 Mar 2013 17:42:43 +0000 (13:42 -0400)]
EDataBookView: Prefer g_clear_object() in dispose().
Matthew Barnes [Tue, 26 Mar 2013 17:29:57 +0000 (13:29 -0400)]
EDataBookView: Remove private EDataBook member.
Alters the signature of e_data_book_view_new(), but it's a private
function only used by EDataBook.
Matthew Barnes [Tue, 26 Mar 2013 18:12:08 +0000 (14:12 -0400)]
e_cal_backend_add_view(): Keep a reference on the view being added.
Matthew Barnes [Tue, 26 Mar 2013 16:06:40 +0000 (12:06 -0400)]
Remove e_cal_backend_set_notification_proxy().
This is some kind of ancient relic whose purpose is unclear.
Seems to predate the Evolution / Evolution-Data-Server split circa 2003.
None of the current E-D-S backends use it, nor even evolution-groupwise.
Matthew Barnes [Tue, 26 Mar 2013 14:01:06 +0000 (10:01 -0400)]
Bug 696637 - Deadlock in data_cal_view_dispose().
Ownership semantics getting confused here.
e_cal_backend_remove_view() caused the view to be disposed, but
the view object was being too clever for its own good by calling
e_cal_backend_remove_view() from its own dispose().
Matthew Barnes [Mon, 25 Mar 2013 21:37:47 +0000 (17:37 -0400)]
EDataCal: Fix reference counting of views.
Matthew Barnes [Mon, 25 Mar 2013 21:37:34 +0000 (17:37 -0400)]
EDataBook: Fix reference counting of views.
Matthew Barnes [Mon, 25 Mar 2013 16:47:47 +0000 (12:47 -0400)]
EDataCal: Attach to ECalBackend during initialization.
The EDataCal will automatically attach itself to the ECalBackend,
like a parasite at birth. This ensures the ECalBackend is able to
invoke class methods earlier during EDataCal initialization.
Matthew Barnes [Mon, 25 Mar 2013 16:37:41 +0000 (12:37 -0400)]
EDataBook: Attach to EBookBackend during initialization.
The EDataBook will automatically attach itself to the EBookBackend,
like a parasite at birth. This ensures the EBookBackend is able to
invoke class methods earlier during EDataBook initialization.
Matthew Barnes [Mon, 25 Mar 2013 15:26:38 +0000 (11:26 -0400)]
e_cal_backend_remove_view(): Check for match before unreffing view.
Matthew Barnes [Mon, 25 Mar 2013 15:23:52 +0000 (11:23 -0400)]
e_book_backend_remove_view(): Check for match before unreffing view.
Milan Crha [Mon, 25 Mar 2013 13:40:03 +0000 (14:40 +0100)]
Bug #656488 - imapx: Memory leak of mi->server_user_flags
Milan Crha [Mon, 25 Mar 2013 13:33:04 +0000 (14:33 +0100)]
Bug #695915 - IMAP alert is not displayed
Milan Crha [Mon, 25 Mar 2013 13:20:42 +0000 (14:20 +0100)]
Bug #693101 - IMAPx can vanish and redownload folder summary
Vadim Rutkovsky [Mon, 25 Mar 2013 13:05:44 +0000 (14:05 +0100)]
Bug 696285 - ownCloud: Check addressbook even if calendar fails
ManojKumar Giri [Mon, 25 Mar 2013 09:51:42 +0000 (15:21 +0530)]
Updated Odia Language along with FUEL implementation
Sweta Kothari [Mon, 25 Mar 2013 09:17:20 +0000 (14:47 +0530)]
Updated gujarati file
Shankar Prasad [Sun, 24 Mar 2013 12:17:05 +0000 (17:47 +0530)]
Updated kn translations
Shankar Prasad [Sun, 24 Mar 2013 12:15:35 +0000 (17:45 +0530)]
Updated kn translations
Mario Blättermann [Sun, 24 Mar 2013 11:50:39 +0000 (12:50 +0100)]
[l10n] Updated German translation
Chandan Kumar [Sun, 24 Mar 2013 08:31:48 +0000 (14:01 +0530)]
updating Hindi Translation
Marián Čavojský [Sun, 24 Mar 2013 05:41:16 +0000 (06:41 +0100)]
Updated slovak translation
Shankar Prasad [Sun, 24 Mar 2013 04:55:14 +0000 (10:25 +0530)]
Updated kn translations
Shankar Prasad [Sun, 24 Mar 2013 04:52:32 +0000 (10:22 +0530)]
Updated kn translations
Noriko Mizumoto [Sat, 23 Mar 2013 18:07:29 +0000 (03:07 +0900)]
l10n: Update Japanese translation
Ville-Pekka Vainio [Sat, 23 Mar 2013 17:34:14 +0000 (19:34 +0200)]
Finnish translation update by Jiri Grönroos
Andrej Žnidaršič [Sat, 23 Mar 2013 15:18:24 +0000 (16:18 +0100)]
Updated Slovenian translation
Matthew Barnes [Fri, 22 Mar 2013 11:50:56 +0000 (07:50 -0400)]
libedata-cal: Remove all deprecated backend APIs.
Clean the slate for the next round of changes.
All known 3rd party backends have been accounted for (ews/mapi/kolab),
so this should cause no disruption.
Matthew Barnes [Thu, 21 Mar 2013 16:33:57 +0000 (12:33 -0400)]
libedata-book: Remove all deprecated backend APIs.
Clean the slate for the next round of changes.
All known 3rd party backends have been accounted for (ews/mapi/kolab),
so this should cause no disruption.
ManojKumar Giri [Fri, 22 Mar 2013 08:51:50 +0000 (14:21 +0530)]
Updated Odia Language along with FUEL implementation
Marián Čavojský [Thu, 21 Mar 2013 21:18:34 +0000 (22:18 +0100)]
Updated slovak translation
Matthew Barnes [Thu, 21 Mar 2013 17:29:32 +0000 (13:29 -0400)]
Let EDataCal track the "opened" state.
Due to the asymmetric nature of our backend APIs, the open() method
begins in ECalBackend, but the end result is reported to EDataCal.
So it makes more sense for EDataCal to track the backend's "opened"
state, at least until the APIs can be modernized.
This adds a new function -- e_data_cal_is_opened() -- which is just a
temporary hack and should only be called by e_cal_backend_is_opened().
This avoids EDataCal needing to call e_cal_backend_notify_opened(),
which is deprecated and about to be removed.
Matthew Barnes [Thu, 21 Mar 2013 17:09:08 +0000 (13:09 -0400)]
Let EDataBook track the "opened" state.
Due to the asymmetric nature of our backend APIs, the open() method
begins in EBookBackend, but the end result is reported to EDataBook.
So it makes more sense for EDataBook to track the backend's "opened"
state, at least until the APIs can be modernized.
This adds a new function -- e_data_book_is_opened() -- which is just a
temporary hack and should only be called by e_book_backend_is_opened().
This avoids EDataBook needing to call e_book_backend_notify_opened(),
which is deprecated and about to be removed.
Shantha kumar [Thu, 21 Mar 2013 12:35:12 +0000 (18:05 +0530)]
Tamil Translations Updated
Matthew Barnes [Wed, 20 Mar 2013 22:06:09 +0000 (18:06 -0400)]
EDataCal: Keep a weak reference on its ECalBackend.
The ECalBackend now holds a strong reference on its EDataCal, so we need
to break the reference cycle.
New functions:
e_data_cal_ref_backend()
Deprecated functions:
e_data_cal_get_backend()
Matthew Barnes [Wed, 20 Mar 2013 21:15:53 +0000 (17:15 -0400)]
Create only one EDataCal per ECalBackend.
I've never understood why we create multiple EDataCal instances per
ECalBackend. All it's doing is exporting a Calendar interface on the
session bus and handling incoming method invocations by forwarding them
to the ECalBackend.
The GDBusMethodInvocation identifies the client, so we don't need to
export a separate Calendar interface per client. This seems to be a
relic of the Bonobo-era design.
Fixing this redundancy is a prerequisite to running backends in child
processes, which is one of my goals for 3.10.
New functions:
e_cal_backend_ref_data_cal()
e_cal_backend_set_data_cal()
Deprecated functions:
e_cal_backend_add_client()
e_cal_backend_remove_client()
Matthew Barnes [Wed, 20 Mar 2013 16:36:40 +0000 (12:36 -0400)]
EDataBook: Keep a weak reference on its EBookBackend.
The EBookBackend now holds a strong reference on its EDataBook, so we
need to break the reference cycle.
New functions:
e_data_book_ref_backend()
Deprecated functions:
e_data_book_get_backend()
Matthew Barnes [Wed, 20 Mar 2013 19:33:49 +0000 (15:33 -0400)]
EDataBook: Silence runtime warnings in direct access mode.
e_data_book_report_backend_property_changed() apparently has no way to
report backend property changes in direct access mode. Return silently.
Matthew Barnes [Wed, 20 Mar 2013 15:34:29 +0000 (11:34 -0400)]
Create only one EDataBook per EBookBackend.
I've never understood why we create multiple EDataBook instances per
EBookBackend. All it's doing is exporting an AddressBook interface on
the session bus and handling incoming method invocations by forwarding
them to the EBookBackend.
The GDBusMethodInvocation identifies the client, so we don't need to
export a separate AddressBook interface per client. This seems to be
a relic of the Bonobo-era design.
Fixing this redundancy is a prerequisite to running backends in child
processes, which is one of my goals for 3.10.
New functions:
e_book_backend_ref_data_book()
e_book_backend_set_data_book()
Deprecated functions:
e_book_backend_add_client()
e_book_backend_remove_client()
Matthew Barnes [Wed, 20 Mar 2013 14:45:00 +0000 (10:45 -0400)]
EDataCalFactory: Rewrite client connection tracking.
Keep a hash table of client bus names mapped to a set of ECalBackend
references. When the backend emits a closed() signal with the client's
bus name, we remove that ECalBackend reference from the data structure.
Also keep a hash table of client bus names we're watching so that if a
bus name vanishes we can remove all ECalBackend references associated
with it.
Matthew Barnes [Wed, 20 Mar 2013 12:39:03 +0000 (08:39 -0400)]
EDataBookFactory: Rewrite client connection tracking.
Keep a hash table of client bus names mapped to a set of EBookBackend
references. When the backend emits a closed() signal with the client's
bus name, we remove that EBookBackend reference from the data structure.
Also keep a hash table of client bus names we're watching so that if a
bus name vanishes we can remove all EBookBackend references associated
with it.
Matthew Barnes [Wed, 20 Mar 2013 04:42:23 +0000 (00:42 -0400)]
EDataCal: Only cancel ops belonging to the sender when closing.
Matthew Barnes [Wed, 20 Mar 2013 04:37:28 +0000 (00:37 -0400)]
EDataBook: Only cancel ops belonging to the sender when closing.