| Top |
| #define | CAMEL_PROVIDER_ALLOWS() |
| #define | CAMEL_PROVIDER_NEEDS() |
| #define | CAMEL_PROVIDER_HIDDEN() |
| #define | CAMEL_PROVIDER_IS_STORE_AND_TRANSPORT() |
| gint | (*CamelProviderAutoDetectFunc) () |
| void | camel_provider_init () |
| gboolean | camel_provider_load () |
| void | camel_provider_register () |
| GList * | camel_provider_list () |
| CamelProvider * | camel_provider_get () |
| void | camel_provider_module_init () |
| gint | camel_provider_auto_detect () |
| #define | EDS_CAMEL_PROVIDER_DIR |
| CamelProvider | |
| enum | CamelProviderType |
| enum | CamelProviderFlags |
| #define | CAMEL_URL_PART_USER |
| #define | CAMEL_URL_PART_AUTH |
| #define | CAMEL_URL_PART_PASSWORD |
| #define | CAMEL_URL_PART_HOST |
| #define | CAMEL_URL_PART_PORT |
| #define | CAMEL_URL_PART_PATH |
| #define | CAMEL_URL_PART_PATH_DIR |
| #define | CAMEL_URL_PART_NEED |
| #define | CAMEL_URL_PART_HIDDEN |
| enum | CamelProviderURLFlags |
| enum | CamelProviderConfType |
| CamelProviderConfEntry | |
| CamelProviderPortEntry | |
| struct | CamelProviderModule |
gint (*CamelProviderAutoDetectFunc) (CamelURL *url,GHashTable **auto_detected,GError **error);
void
camel_provider_init (void);
Initialize the Camel provider system by reading in the .urls files in the provider directory and creating a hash table mapping URLs to module names.
A .urls file has the same initial prefix as the shared library it correspond to, and consists of a series of lines containing the URL protocols that that library handles.
TODO: This should be pathed? TODO: This should be plugin-d?
gboolean camel_provider_load (const gchar *path,GError **error);
Loads the provider at path
, and calls its initialization function,
passing session
as an argument. The provider should then register
itself with session
.
void
camel_provider_register (CamelProvider *provider);
Registers a provider.
GList *
camel_provider_list (gboolean load);
This returns a list of available providers. If load
is TRUE, it will
first load in all available providers that haven't yet been loaded.
Free the returned list with g_list_free(). The CamelProvider structs
in the list are owned by Camel and should not be modified or freed.
CamelProvider * camel_provider_get (const gchar *protocol,GError **error);
Returns the registered CamelProvider for protocol
, loading it
from disk if necessary. If no CamelProvider can be found for
protocol
, or the provider module fails to load, the function
sets error
and returns NULL.
The returned CamelProvider is owned by Camel and should not be modified or freed.
gint camel_provider_auto_detect (CamelProvider *provider,CamelURL *url,GHashTable **auto_detected,GError **error);
After filling in the standard Username/Hostname/Port/Path settings
(which must be set in url
), if the provider supports it, you
may wish to have the provider auto-detect further settings based on
the aformentioned settings.
If the provider does not support auto-detection, auto_detected
will be set to NULL. Otherwise the provider will attempt to
auto-detect whatever it can and file them into auto_detected
. If
for some reason it cannot auto-detect anything (not enough
information provided in url
?) then auto_detected
will be
set to NULL and an exception may be set to explain why it failed.
#define EDS_CAMEL_PROVIDER_DIR "EDS_CAMEL_PROVIDER_DIR"
This environment variable configures where the camel provider modules are loaded from.
typedef struct {
/* Provider protocol name (e.g. "imap", "smtp"). */
const gchar *protocol;
/* Provider name as used by people. (May be the same as protocol) */
const gchar *name;
/* Description of the provider. A novice user should be able
* to read this description, and the information provided by
* an ISP, IS department, etc, and determine whether or not
* this provider is relevant to him, and if so, which
* information goes with it.
*/
const gchar *description;
/* The category of message that this provider works with.
* (evolution-mail will only list a provider in the store/transport
* config dialogs if its domain is "mail".)
*/
const gchar *domain;
/* Flags describing the provider, flags describing its URLs */
CamelProviderFlags flags;
CamelProviderURLFlags url_flags;
/* The ConfEntry and AutoDetect functions will probably be
* DEPRECATED in a future release */
/* Extra configuration information */
CamelProviderConfEntry *extra_conf;
/* The list of CamelProviderPortEntry structs. Each struct contains
* port number and a short string description ("Default IMAP port"
* or "POP3 over SSL" etc.
*/
CamelProviderPortEntry *port_entries;
/* auto-detection function */
CamelProviderAutoDetectFunc auto_detect;
/* GType(s) of its store and/or transport. If both are
* set, then they are assumed to be linked together and the
* transport type can only be used in an account that also
* uses the store type (eg, Exchange or NNTP).
*/
GType object_types[CAMEL_NUM_PROVIDER_TYPES];
/* GList of CamelServiceAuthTypes the provider supports */
GList *authtypes;
GHashFunc url_hash;
GEqualFunc url_equal;
/* gettext translation domain (NULL for providers in the
* evolution source tree).
*/
const gchar *translation_domain;
/* Private to the provider */
gpointer priv;
} CamelProvider;
|
Provider works with remote data. |
||
|
Provider can be used as a backend for local folder tree folders. (Not just the opposite of CAMEL_PROVIDER_IS_REMOTE.) |
||
|
Provider appears in the folder tree but is not created by the mail component. |
||
|
Mail arrives there, so it should be offered as an option in the mail config dialog. |
||
|
Mail is stored there. It will appear in the folder tree. |
||
|
Provider configuration first needs the license to be accepted. (No longer used.) |
||
|
Provider may use a real trash folder instead of a virtual folder. |
||
|
Provider may use a real junk folder instead of a virtual folder. |
||
|
Download limited set of emails instead of operating on full cache. |
||
|
Support to fetch messages in batch. |
||
|
Support to remove oldest downloaded messages to conserve space. |
typedef struct {
CamelProviderConfType type;
const gchar *name, *depname;
const gchar *text, *value;
} CamelProviderConfEntry;
typedef struct {
gint port;
const gchar *desc;
gboolean is_ssl;
} CamelProviderPortEntry;
Since: 3.2