Evolution-Data-Server Manual: Utilities (libedataserver) | ||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties |
ESourceCamelESourceCamel — ESource extension for CamelSettings |
Synopsis
#include <libedataserver/libedataserver.h> struct ESourceCamel; void e_source_camel_register_types (void
); GType e_source_camel_generate_subtype (const gchar *protocol
,GType settings_type
); CamelSettings * e_source_camel_get_settings (ESourceCamel *extension
); const gchar * e_source_camel_get_type_name (const gchar *protocol
); const gchar * e_source_camel_get_extension_name (const gchar *protocol
); void e_source_camel_configure_service (ESource *source
,CamelService *service
);
Description
ESourceCamel itself is abstract. Its sole function is to
bridge GObject properties from the CamelSettings framework to the
ESource framework. It does this by procedurally registering an
ESourceCamel subtype for each available CamelService subtype,
and then registering GObject properties to proxy the properties in the
corresponding CamelSettings subtype. The ESourceCamel owns an
instance of the appropriate CamelSettings subtype, and redirects all
get/set operations on its own GObject properties to its CamelSettings
instance. The CamelSettings instance, now fully initialized from a key
file, can then be inserted into a new CamelService instance using
camel_service_set_settings()
.
Ultimately, this is all just implementation detail for glueing two unrelated class hierarchies together. If you need to access provider specific settings, use the CamelSettings API, not this.
Details
struct ESourceCamel
struct ESourceCamel;
Contains only private data that should be read and manipulated using the functions below.
Since 3.6
e_source_camel_register_types ()
void e_source_camel_register_types (void
);
Creates and registers subclasses of ESourceCamel for each available CamelProvider. This function should be called once during application or library initialization.
Since 3.6
e_source_camel_generate_subtype ()
GType e_source_camel_generate_subtype (const gchar *protocol
,GType settings_type
);
Generates a custom ESourceCamel subtype for protocol
. Instances of the
new subtype will contain a CamelSettings instance of type settings_type
.
This function is called as part of e_source_camel_register_types()
and
should not be called explicitly, except by some groupware packages that
need to share package-specific settings across their mail, calendar and
address book components. In that case the groupware package may choose
to subclass CamelSettings rather than ESourceExtension since libcamel
is the lowest common denominator across all components. This function
provides a way for the calendar and address book components of such a
package to generate an ESourceCamel subtype for its CamelSettings
subtype without having to load all available CamelProvider modules.
|
a CamelProvider protocol |
|
a subtype of CamelSettings |
Returns : |
the GType of the generated ESourceCamel subtype |
Since 3.6
e_source_camel_get_settings ()
CamelSettings * e_source_camel_get_settings (ESourceCamel *extension
);
Returns extension
's "settings" instance, pre-configured
from the ESource to which extension
belongs. Changes to the ESource
will automatically propagate to the "settings" instance and
vice versa.
This is essentially the glue that binds ESource to CamelService.
See e_source_camel_configure_service()
.
|
an ESourceCamel |
Returns : |
a configured CamelSettings instance |
Since 3.6
e_source_camel_get_type_name ()
const gchar * e_source_camel_get_type_name (const gchar *protocol
);
Returns the GType name of the registered ESourceCamel subtype for
protocol
.
For example, given a protocol named "imap" the function would return "ESourceCamelImap".
|
a CamelProvider protocol |
Returns : |
the ESourceCamel type name for protocol
|
Since 3.6
e_source_camel_get_extension_name ()
const gchar * e_source_camel_get_extension_name (const gchar *protocol
);
Returns the extension name for the ESourceCamel subtype for protocol
.
The extension name can then be passed to e_source_get_extension()
to
obtain an instance of the ESourceCamel subtype.
For example, given a protocol named "imap" the function would return "Imap Backend".
|
a CamelProvider protocol |
Returns : |
the ESourceCamel extension name for protocol
|
Since 3.6
e_source_camel_configure_service ()
void e_source_camel_configure_service (ESource *source
,CamelService *service
);
This function essentially glues together source
and serivce
so their
configuration settings stay synchronized. The glue itself is a shared
CamelSettings instance.
Call this function immediately after creating a new CamelService with
camel_session_add_service()
.
|
an ESource |
|
a CamelService |
Since 3.6