CamelSubscribable: Remove all asynchronous class methods.
authorMatthew Barnes <mbarnes@redhat.com>
Thu, 28 Nov 2013 13:49:38 +0000 (08:49 -0500)
committerMatthew Barnes <mbarnes@redhat.com>
Fri, 29 Nov 2013 20:15:39 +0000 (15:15 -0500)
commitb1372bfb589d713915bd5f3eb08c2d300732303f
tree5d2f5517f6fb20582920a2d22e4530e15dd5c48c
parent08453df898706c725045ce0c5c370ae4148329bb
CamelSubscribable: Remove all asynchronous class methods.

Rationale:

When I originally added Camel's asynchronous API, I thought providers
could choose to override the synchronous or asynchronous class methods.

Years later, turns out the asynchronous methods were never overridden,
and it wouldn't have worked anyway.  The asynchronous methods by default
invoke an associated synchronous function from a worker thread, but many
of Camel's synchronous functions do extra processing around invoking the
synchronous class method.  camel_store_get_folder_sync() is an example.

If a provider tried to implement synchronous methods in terms of the
asynchronous methods, then that extra processing in the synchronous
functions could potentially get skipped.

Removing the asynchronous class methods should help clarify how Camel
providers are intended to be written.

The removal should have no impact on existing Camel providers, all of
which implement only the synchronous class methods.  I've even padded
the CamelSubscribableInterface struct to keep the binary interface
intact.
camel/camel-subscribable.c
camel/camel-subscribable.h