| Top |  |  |  |  | 
| #define | CAMEL_PROVIDER_ALLOWS() | 
| #define | CAMEL_PROVIDER_NEEDS() | 
| #define | CAMEL_PROVIDER_HIDDEN() | 
| 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 | 
| #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 | 
| CamelProviderConfEntry | |
| CamelProviderPortEntry | |
| struct | CamelProviderModule | 
gint (*CamelProviderAutoDetectFunc) (CamelURL *url,GHashTable **auto_detected,GError **error);
Function used in camel_provider_auto_detect().
| url | a CamelURL | |
| auto_detected | output GHashTable of auto-detected values. | [out][element-type utf8 utf8][nullable] | 
| error | return location for a GError, or  | 
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.
| provider | camel provider | |
| url | a CamelURL | |
| auto_detected | output GHashTable of auto-detected values. | [out][element-type utf8 utf8][nullable] | 
| error | return location for a GError, or  | 
#define EDS_CAMEL_PROVIDER_DIR "EDS_CAMEL_PROVIDER_DIR"
This environment variable configures where the camel provider modules are loaded from.
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