### Namespace

# EDataServer – 1.2

Utility library for Evolution Data Server

Version | 3.58.3
Authors | Evolution Data Server Development Team
License | LGPL-2.0-only
Website |
Source | https://gitlab.gnome.org/GNOME/evolution-data-server/

#### Build

C headers | `libedataserver/libedataserver.h`
pkg-config files | `libedataserver-1.2`

#### Dependencies

GObject—2.0 | The base type system library
| Browse documentation
libxml2—2.0 | XML parser and toolkit
| Browse documentation
Json—1.0 | JSON parser and generator
| Browse documentation
Soup—3.0 | HTTP client/server library for GNOME
| Browse documentation

#### Additional documentation

- Classes Hierarchy

#### Classes

Client | Contains only private data that should be read and manipulated using the functions below. since: 3.2
Extension | Contains only private data that should be read and manipulated using the functions below. since: 3.4
GDataSession | Contains only private data that should be read and manipulated using the functions below. since: 3.46
Module | Contains only private data that should be read and manipulated using the functions below. since: 3.4
MsOapxbc |
NetworkMonitor | Contains only private data that should be read and manipulated using the functions below. Implements `GNetworkMonitorInterface`. since: 3.22
OAuth2ServiceBase |
OAuth2ServiceGoogle |
OAuth2ServiceOutlook |
OAuth2Services | Contains only private data that should be read and manipulated using the functions below. since: 3.28
OAuth2ServiceYahoo |
SoupAuthBearer | Contains only private data that should be read and manipulated using the functions below. since: 3.10
SoupSession | Contains only private data that should be read and manipulated using the functions below. since: 3.26
Source | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceAddressBook | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceAlarms | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceAuthentication | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceAutocomplete | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceAutoconfig | Contains only private data that should be read and manipulated using the functions below. since: 3.24
SourceBackend | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceCalendar | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceCamel | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceCollection | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceContacts |
SourceCredentialsProvider | Contains only private data that should be read and manipulated using the functions below. since: 3.16
SourceCredentialsProviderImpl | Credentials provider implementation base structure. The descendants implement the virtual methods. The descendants are automatically registered into an `ESourceCredentialsProvider`. since: 3.16
SourceCredentialsProviderImplOAuth2 | OAuth2 based credentials provider implementation. since: 3.28
SourceCredentialsProviderImplPassword | Password based credentials provider implementation. since: 3.16
SourceExtension | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceGoa | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceLDAP |
SourceLocal |
SourceMailAccount | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceMailComposition | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceMailIdentity | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceMailSignature | Contains only private data that should be read and manipulated using the function below. since: 3.6
SourceMailSubmission | Contains only private data that should be read and manipulated using the function below. since: 3.6
SourceMailTransport | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceMDN | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceMemoList | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceOffline | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceOpenPGP | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceProxy | Contains only private data that should be read and manipulated using the functions below. since: 3.12
SourceRefresh | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceRegistry | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceRegistryWatcher | Contains only private data that should be read and manipulated using the functions below.
SourceResource | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceRevisionGuards | Contains only private data that should be read and manipulated using the functions below. since: 3.8
SourceSecurity | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceSelectable | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceSMIME | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceTaskList | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceUoa | Contains only private data that should be read and manipulated using the functions below. since: 3.8
SourceWeather |
SourceWebdav | Contains only private data that should be read and manipulated using the functions below. since: 3.6
SourceWebDAVNotes | Contains only private data that should be read and manipulated using the functions below. since: 3.44
WebDAVSession | Contains only private data that should be read and manipulated using the functions below. since: 3.26
XmlDocument | Contains only private data that should be read and manipulated using the functions below. since: 3.26

#### Interfaces

Extensible |
OAuth2Service | Contains only private data that should be read and manipulated using the functions below. since: 3.28

#### Structs

AsyncClosure | `EAsyncClosure` provides a simple way to run an asynchronous function synchronously without blocking a running `GMainLoop` or using threads. since: 3.6
ClientErrorsList | deprecated: 3.8 since: 3.2
Collator | An opaque object used for locale specific string comparisons and sort ordering. since: 3.12
Flag | Contains only private data that should be read and manipulated using the functions below. since: 1.12
FreeFormExpSymbol |
GDataQuery | since: 3.46
MemChunk |
NamedParameters | since: 3.8
OperationPool | Contains only private data that should be read and manipulated using the functions below. since: 3.2
WebDAVAccessControlEntry |
WebDAVDiscoveredSource |
WebDAVPrivilege |
WebDAVPropertyChange |
WebDAVResource |
XmlHash | A hash table representation of an XML file.

#### Enumerations

ClientError | Error codes for `EClient` operations. since: 3.2
ConflictResolution | Defines what to do when a conflict between the locally stored and remotely stored object versions happen during object modify or remove. since: 3.26
GDataTaskStatus | Holds status of a task. since: 3.46
MdnResponsePolicy | Policy for responding to Message Disposition Notification requests (i.e. a Disposition-Notification-To header) when receiving messages. See RFC 2298 for more information about MDN requests. since: 3.6
OAuth2ServiceNavigationPolicy | A value used during querying authentication URI, to decide whether certain resource can be used or not. The `E_OAUTH2_SERVICE_NAVIGATION_POLICY_ABORT` can be used to abort the authentication query, like when user cancelled it. since: 3.28
ProxyMethod | Network proxy configuration methods. since: 3.12
SourceAuthenticationResult | Status codes used by the `EBackend` authentication wrapper. since: 3.6
SourceConnectionStatus | Connection status codes used by the `ESource` to indicate its connection state. This is used in combination with authentication of the ESource. For example, if there are multiple clients asking for a password and a user enters the password in one of them, then the status will change into ‘connecting’, which is a signal do close the password prompt in the other client, because the credentials had been already provided. since: 3.16
SourceCredentialsReason | An ESource’s authentication reason, used by an ESource::CredentialsRequired method. since: 3.16
SourceLDAPAuthentication | Defines authentication types for LDAP sources. since: 3.18
SourceLDAPScope | Defines search scope for LDAP sources. since: 3.18
SourceLDAPSecurity | Defines what connection security should be used for LDAP sources. since: 3.18
SourceMailCompositionReplyStyle | Set of preferred reply styles for an `ESourceMailComposition` extension. since: 3.20
SourceWeatherUnits | Units to be used in an `ESourceWeather` extension. since: 3.18
ThreeState | Describes a three-state value, which can be either Off, On or Inconsistent. since: 3.26
TimeParseStatus |
TrustPromptResponse | Response codes for the trust prompt. since: 3.8
WebDAVACEPrincipalKind |
WebDAVLockScope |
WebDAVPrivilegeHint |
WebDAVPrivilegeKind |
WebDAVPropertyChangeKind |
WebDAVResourceKind |
XmlHashStatus |
XmlHashType |

#### Bitfields

OAuth2ServiceFlags | Flags of the OAuth2 service. since: 3.28
WebDAVACEFlag |
WebDAVACLRestrictions |
WebDAVDiscoverSupports |
WebDAVListFlags |
WebDAVResourceSupports |

#### Error Domains

CollatorError | Errors from the #E_COLLATOR_ERROR domain.

#### Callbacks

FreeFormExpBuildSexpFunc |
GDataObjectCallback | Callback used to traverse response from the server, which is an array. since: 3.46
OAuth2ServiceRefSourceFunc | since: 3.28
SourceRefreshFunc | since: 3.6
TypeFunc | Specifies the type of functions passed to e_type_traverse(). since: 3.4
WebDAVDiscoverRefSourceFunc | since: 3.30
WebDAVPropstatTraverseFunc | A callback function for e_webdav_session_propfind_sync(), `e_webdav_session_report_sync()` and other XML response with DAV:propstat elements traversal functions. since: 3.26
XmlHashFunc |
XmlHashRemoveFunc |

#### Functions

binding_bind_property | Thread safe variant of g_object_bind_property(). See its documentation for more information on arguments and return value. since: 3.16
binding_bind_property_full | Thread safe variant of g_object_bind_property_full(). See its documentation for more information on arguments and return value. since: 3.16
binding_bind_property_with_closures | Thread safe variant of g_object_bind_property_with_closures(). See its documentation for more information on arguments and return value. since: 3.16
binding_transform_enum_nick_to_value | Transforms an enumeration nickname to its corresponding value. since: 3.4
binding_transform_enum_value_to_nick | Transforms an enumeration value to its corresponding nickname. since: 3.4
categories_add | Adds a new category, with its corresponding icon, to the configuration database.
categories_dup_icon_file_for | Gets the icon file associated with the given category and returns a copy of it. since: 3.16
categories_dup_list | Returns a sorted list of all the category names currently configured. since: 3.16
categories_exist | Checks whether the given category is available in the configuration.
categories_get_icon_file_for | Gets the icon file associated with the given category. deprecated: 3.16
categories_get_list | Returns a sorted list of all the category names currently configured. deprecated: 3.16
categories_is_searchable | Gets whether the given calendar is to be used for searches in the GUI.
categories_register_change_listener | Registers callback to be called on change of any category. Pair listener and user_data is used to distinguish between listeners. Listeners can be unregistered with `e_categories_unregister_change_listener`. since: 2.24
categories_remove | Removes the given category from the configuration.
categories_set_icon_file_for | Sets the icon file associated with the given category.
categories_unregister_change_listener | Removes previously registered callback from the list of listeners on changes. If it was not registered, then does nothing. since: 2.24
data_server_util_get_dbus_call_timeout | Returns the value set by e_data_server_util_set_dbus_call_timeout(). deprecated: 3.8 since: 3.0
data_server_util_set_dbus_call_timeout | Sets default timeout, in milliseconds, for calls of `g_dbus_proxy_call()` family functions. deprecated: 3.8 since: 3.0
debug_log | Records debug information for the given `domain`, if enabled, or always, when `is_milestone` is set to TRUE. since: 2.32
debug_log_clear | since: 2.32
debug_log_disable_domains | Disables all domains from the `domains` array. since: 2.32
debug_log_dump | Saves current log information to the given `filename`. since: 2.32
debug_log_dump_to_dated_file | Saves current log information to a file “e-debug-log-YYYY-MM-DD-HH-mm-ss.txt” in the user’s HOME directory. since: 2.32
debug_log_enable_domains | Enables all domains from the `domains` array. since: 2.32
debug_log_get_max_lines | since: 2.32
debug_log_is_domain_enabled | since: 2.32
debug_log_load_configuration | Loads configuration for the logging from the given `filename`. since: 2.32
debug_log_set_max_lines | Limits how many lines the log can have. since: 2.32
debug_logv | Records debug information for the given `domain`, if enabled, or always, when `is_milestone` is set to TRUE. since: 2.32
eds_check_version | Checks that the Evolution-Data-Server library in use is compatible with the given version. Generally you would pass in the constants # EDS_MAJOR_VERSION, #EDS_MINOR_VERSION, #EDS_MICRO_VERSION as the three arguments to this function. That produces a check that the library in use is compatible with the version of Evolution-Data-Server the application or module was compiled against. since: 2.24
enum_from_string | Fetches the appropriate enumeration value for `string` in the given enum type `type` and stores the result in `enum_value`. since: 3.8
enum_to_string | Converts an enum value to a string using strings from the GType system. since: 3.8
file_recursive_delete | Asynchronously deletes `file`. If `file` is a directory, its contents are deleted recursively before `file` itself is deleted. The recursive delete operation will stop on the first error. since: 3.6
file_recursive_delete_finish | Finishes the operation started with e_file_recursive_delete(). since: 3.6
file_recursive_delete_sync | Deletes `file`. If `file` is a directory, its contents are deleted recursively before `file` itself is deleted. The recursive delete operation will stop on the first error. since: 3.6
filename_make_safe |
filename_mkdir_encoded | Creates a local path constructed from `basepath` / `fileprefix` + “-” + `filename`, and makes sure the path `basepath` exists. If creation of the path fails, then NULL is returned. since: 3.4
free_form_exp_to_sexp | Converts the `free_form_exp` to an S-Expression using the S-Expression builders defined in the `symbols`. The `symbols` should have one symbol with an empty string as its name, which is used for words which do not have a symbol name prefix. since: 3.16
gdata_task_add_completed | Adds a Task:completed property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_task_add_due | Adds a Task::due property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_task_add_id | Adds a Task::id property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_task_add_notes | Adds a Task::notes property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_task_add_status | Adds a Task::status property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_task_add_title | Adds a Task::title property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_task_get_completed | Returns Task::completed property, as Unix time. since: 3.46
gdata_task_get_deleted | Returns Task::deleted property, as Unix time. since: 3.46
gdata_task_get_due | Returns Task::due property, as Unix time. since: 3.46
gdata_task_get_etag | Returns Task::etag property. since: 3.46
gdata_task_get_hidden | Returns Task::hidden property, as Unix time. since: 3.46
gdata_task_get_id | Returns Task::id property. since: 3.46
gdata_task_get_notes | Returns Task::notes property. since: 3.46
gdata_task_get_parent | Returns Task::parent property. since: 3.46
gdata_task_get_position | Returns Task::position property. since: 3.46
gdata_task_get_self_link | Returns Task::selfLink property. since: 3.46
gdata_task_get_status | Returns Task::status property. since: 3.46
gdata_task_get_title | Returns Task::title property. since: 3.46
gdata_task_get_updated | Returns Task::updated property, as Unix time. since: 3.46
gdata_tasklist_add_id | Adds a TaskList::id property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_tasklist_add_title | Adds a TaskList::title property `value` into the `builder`, which should have started an object member. since: 3.46
gdata_tasklist_get_etag | Returns TaskList::etag property. since: 3.46
gdata_tasklist_get_id | Returns TaskList::id property. since: 3.46
gdata_tasklist_get_self_link | Returns TaskList::selfLink property. since: 3.46
gdata_tasklist_get_title | Returns TaskList::title property. since: 3.46
gdata_tasklist_get_updated | Returns TaskList::updated property, as Unix time. since: 3.46
get_user_cache_dir | Returns a base directory in which to store user-specific, non-essential cached data for Evolution or Evolution-Data-Server. since: 2.32
get_user_config_dir | Returns a base directory in which to store user-specific configuration information for Evolution or Evolution-Data-Server. since: 2.32
get_user_data_dir | Returns a base directory in which to store user-specific data for Evolution or Evolution-Data-Server. since: 2.32
localtime_with_offset | Converts the calendar time time representation `tt` to a broken-down time representation, store in `tm`, and provides the offset in seconds from UTC time, stored in `offset`.
memchunk_alloc | Allocate a new atom size block of memory from an `EMemChunk`. Free the returned atom with e_memchunk_free().
memchunk_alloc0 | Allocate a new atom size block of memory from an `EMemChunk`, and fill the memory with zeros. Free the returned atom with e_memchunk_free().
memchunk_clean | Scan all empty blocks and check for blocks which can be free’d back to the system.
memchunk_destroy | Free the memchunk header, and all associated memory.
memchunk_empty | Clean out the memchunk buffers. Marks all allocated memory as free blocks, but does not give it back to the system. Can be used if the memchunk is to be used repeatedly.
memchunk_free | Free a single atom back to the free pool of atoms in the given memchunk.
memchunk_new | Create a new `EMemChunk` header. Memchunks are an efficient way to allocate and deallocate identical sized blocks of memory quickly, and space efficiently.
mktime_utc | Like mktime(3), but assumes UTC instead of local timezone.
queue_transfer | Transfers the contents of `src_queue` to the tail of `dst_queue`. When the operation is complete, `src_queue` will be empty. since: 3.8
secret_store_delete_sync | Deletes the secret for `uid` from either the default keyring or session keyring. since: 3.18
secret_store_lookup_sync | Looks up a secret for the `uid`. Both the default and session keyrings are queried. since: 3.18
secret_store_store_sync | Stores the `secret` for the `uid`. since: 3.18
soup_ssl_trust_connect | Sets up automatic SSL certificate trust handling for `soup_message` using the trust data stored in `source`‘s WebDAV extension. If `soup_message` is about to be sent on an SSL connection with an invalid certificate, the code checks if the WebDAV extension already has a trust response for that certificate and verifies it with e_source_webdav_verify_ssl_trust(). If the verification fails, then the `soup_message` send also fails. since: 3.16
strftime | This function is a wrapper around the strftime (3) function, which converts the %l and %k (12h and 24h) format variables if necessary.
time_format_date_and_time | Creates a string representation of the time value `date_tm` and stores it in `buffer`. `buffer_size` should be at least 64 to be safe. If `show_midnight` is `FALSE`, and the time is midnight, then only the date is stored in `buffer`. If `show_zero_seconds` is `FALSE`, then if the time has zero seconds only the hour and minute of the time are stored in `buffer`.
time_format_time | Creates a string representation of a time value in `date_tm` and stores it in `buffer`. `buffer_size` should be at least 64.
time_get_d_fmt_with_4digit_year | Retrieves a date format string with a 4-digit year (D_FMT on systems with `nl_langinfo()` available). In case the current locale doesn’t support 4-digit year, the function returns format as specified by the locale. since: 2.22
time_parse_date | Takes in a date string entered by the user and tries to convert it to a struct #tm.
time_parse_date_and_time | Parses a string `value` containing a date and a time and stores the result in `result`. The date in `value` is expected to be in a format like “Wed 3/13/00 14:20:00”, though `gettext()` is used to support the appropriate local formats. There is also some leniency on the format of the string, e.g. the weekday can be skipped or 12-hour formats with am/pm can be used.
time_parse_date_and_time_ex | Parses a string `value` containing a date and a time and stores the result in `result`. The date in `value` is expected to be in a format like “Wed 3/13/00 14:20:00”, though `gettext()` is used to support the appropriate local formats. There is also some leniency on the format of the string, e.g. the weekday can be skipped or 12-hour formats with am/pm can be used. since: 2.22
time_parse_date_ex | Takes in a date string entered by the user and tries to convert it to a struct #tm. since: 2.22
time_parse_date_format | Parses `value` using the `format` saving the parsed date into `out_result`. Optionally sets whether there had been used two-digit year. since: 3.50
time_parse_time | Parses `value`, a string containing a time. `value` is expected to be in a format like “14:20:00”. `gettext()` is used to support the appropriate local formats and slightly different formats, such as 12-hour formats with am/pm, are accepted as well.
timeout_add_seconds_with_name | Similar to g_timeout_add_seconds_full(), but also names the `GSource` as `name`. since: 3.12
timeout_add_with_name | Similar to g_timeout_add_full(), but also names the `GSource` as `name`. since: 3.12
type_traverse | Calls `func` for all instantiable subtypes of `parent_type`. since: 3.4
uid_new | Generate a new unique string for use e.g. in account lists. deprecated: 3.26
utf8_strftime | The UTF-8 equivalent of e_strftime ().
util_call_malloc_trim | Calls `malloc_trim()` to free unused heap memory. The function does nothing, when the `malloc_trim()` is not available. since: 3.48
util_can_use_collection_as_credential_source | Checks whether the `collection_source` can be used as a credential source for the `child_source`. The relationship is not tested in the function. When the `collection_source` is `NULL`, then it simply returns `FALSE`. since: 3.28
util_change_uri_component | Changes component `component` in the `inout_uri` to value `value`. As the `GUri` cannot be modified the `inout_uri` points to a new `GUri` at the end of the call and the previous structure is unreffed. since: 3.46
util_change_uri_port | Changes the port in the `inout_uri` to value `port`. As the `GUri` cannot be modified the `inout_uri` points to a new `GUri` at the end of the call and the previous structure is unreffed. since: 3.46
util_copy_object_slist | Copies `GSList` of `GObject`s at the end of `copy_to`. deprecated: 3.8 since: 3.4
util_copy_string_slist | Copies `GSList` of strings at the end of `copy_to`. deprecated: 3.8 since: 3.4
util_debug_print | Prints a text according to `format` and its arguments to stdout prefixed with `domain` in brackets [] and the current date and time. This function doesn’t check whether the logging is enabled, it’s up to the caller to determine it, the function only prints the information in a consistent format: [domain] YYYY-MM-DD hh:mm:ss.ms - format. since: 3.30
util_debug_printv | Prints a text according to `format` and its `args` to stdout prefixed with `domain` in brackets [] and the current date and time. This function doesn’t check whether the logging is enabled, it’s up to the caller to determine it, the function only prints the information in a consistent form: [`domain`] YYYY-MM-DD hh:mm:ss.ms - `format`. since: 3.30
util_ensure_gdbus_string | If `str` is a valid UTF-8 string, the function returns `str` and does not set `gdbus_str`. since: 3.0
util_free_nullable_object_slist | Calls `g_object_unref()` on each member of `objects` if non-`NULL` and then frees also `objects` itself. since: 3.6
util_free_object_slist | Calls `g_object_unref()` on each member of `objects` and then frees also `objects` itself. deprecated: 3.8 since: 3.4
util_free_string_slist | Frees memory previously allocated by e_util_strv_to_slist(). deprecated: 3.8 since: 3.4
util_generate_uid | Generates a unique identificator, which can be used as part of the Message-ID header, or iCalendar component UID, or vCard UID. The resulting string doesn’t contain any host name, it’s a hexa-decimal string with no particular meaning. since: 3.26
util_get_directory_variants | The `main_path` is a directory, which will be always used. It should have as its prefix the `replace_prefix`, otherwise the function returns only the `main_path` in the paths array. since: 3.40
util_get_source_full_name | Constructs a full name of the `source` with all of its parents of the form: “<account-name> : <parent>/<source>” where the “<parent>/” part can be repeated zero or more times, depending on the deep level of the `source`.
util_gthread_id | Returns a 64-bit integer hopefully uniquely identifying the thread. To be used in debugging output and logging only. The returned value is just a cast of a pointer to the 64-bit integer. since: 2.32
util_guess_source_is_readonly | Guesses whether the `source` is read only. This is done on some heuristic like the source backend, where some are known to be read only. That this function returns `FALSE` does not necessarily mean the source is writable, it only means the source is not well-known read-only source. To know for sure open the corresponding `EClient`, if the `source` references such, and use e_client_is_readonly(). since: 3.50
util_host_is_in_domain | Check whether the hostname `host` is equal to or a subdomain of `domain`. Both `host` and `domain` are UTF-8 strings and can be IDNs (which will be punycode-encoded for comparison). since: 3.54
util_identity_can_send | Checks whether the `identity_source` can be used for sending, which means whether it has configures send mail source. since: 3.26
util_safe_free_string | Calls `g_free()` on `string`, but before it rewrites its content with zeros. This is suitable to free strings with passwords. since: 3.16
util_slist_to_strv | Convert list of strings into NULL-terminates array of strings. since: 3.4
util_source_compare_for_sort | Compares two `ESource`-s in a way suitable for user interface. It can be used as a `GCompareFunc`. since: 3.40
util_strcmp0 | Compares `str1` and `str2` like g_strcmp0(), except it handles `NULL` and empty strings as equal. since: 3.32
util_strdup_strip | Duplicates `string` and strips off any leading or trailing whitespace. The resulting string is returned unless it is empty or `NULL`, in which case the function returns `NULL`. since: 3.6
util_strstrcase | Find the first instance of `needle` in `haystack`, ignoring case for bytes that are ASCII characters.
util_strv_equal | Compares `v1` and `v2` for equality, handling `NULL` gracefully. since: 3.12
util_strv_to_slist | Convert NULL-terminated array of strings to a list of strings. since: 3.4
util_unicode_get_utf8 | Get a UTF-8 character from the beginning of `text`.
util_unref_in_thread | Unrefs the given `object` in a dedicated thread. This is useful when unreffing object deep in call stack when the caller might still use the object and this being the last reference to it. since: 3.26
util_utf8_data_make_valid | Returns a newly-allocated NULL-terminated string with invalid characters replaced by Unicode replacement characters (U+FFFD). For `NULL` `data` returns newly allocated empty string (“”). since: 3.6
util_utf8_decompose | Converts the `text` into a decomposed variant and strips it, which allows also cheap case insensitive comparision afterwards. This produces an output as being used in e_util_utf8_strstrcasedecomp(). since: 3.26
util_utf8_make_valid | Returns a newly-allocated copy of `str`, with invalid characters replaced by Unicode replacement characters (U+FFFD). For `NULL` `str` returns newly allocated empty string (“”). since: 3.0
util_utf8_normalize | Normalizes `str` by making it all lower case and removing any accents from it. since: 3.8
util_utf8_remove_accents | Returns a newly-allocated copy of `str` with accents removed. since: 2.28
util_utf8_strcasecmp | Compares two UTF-8 strings using approximate case-insensitive ordering.
util_utf8_strstrcase | Find the first instance of `needle` in `haystack`, ignoring case. (No proper case folding or decomposing is done.) Both `needle` and `haystack` are UTF-8 strings.
util_utf8_strstrcasedecomp | Find the first instance of `needle` in `haystack`, where both `needle` and `haystack` are UTF-8 strings. Both strings are stripped and decomposed for comparison, and case is ignored.
weak_ref_free | Frees a `GWeakRef` created by e_weak_ref_new(). since: 3.10
weak_ref_new | Allocates a new `GWeakRef` and calls `g_weak_ref_set()` with `object`. since: 3.10
webdav_discover_free_discovered_sources | Frees a `GSList` of discovered sources returned from `e_webdav_discover_sources_finish()` or e_webdav_discover_sources_sync(). since: 3.18
webdav_discover_sources | Asynchronously runs discovery of the WebDAV sources (CalDAV and CardDAV), eventually limited by the `only_supports` filter, which can be `E_WEBDAV_DISCOVER_SUPPORTS_NONE` to search all types. Note that the list of returned calendars can be more general, thus check for its actual support type for further filtering of the results. The `url_use_path` can be used to override actual server path, or even complete URL, for the given `source`. since: 3.18
webdav_discover_sources_finish | Finishes the operation started with e_webdav_discover_sources(). If an error occurred, the function will set `error` and return `FALSE`. The function can return success and no discovered sources, the same as it can return failure, but still set some output arguments, like the certificate related output arguments with G_TLS_ERROR_BAD_CERTIFICATE error. since: 3.18
webdav_discover_sources_full | This is the same as e_webdav_discover_sources(), it only allows to provide a callback function (with its user_data), to reference an additional `ESource`. It’s good to avoid creating its own `ESourceRegistry` instance to get it. since: 3.30
webdav_discover_sources_full_sync | This is the same as e_webdav_discover_sources_sync(), it only allows to provide a callback function (with its user_data), to reference an additional `ESource`. It’s good to avoid creating its own `ESourceRegistry` instance to get it. since: 3.30
webdav_discover_sources_sync | Synchronously runs discovery of the WebDAV sources (CalDAV and CardDAV), eventually limited by the `only_supports` filter, which can be `E_WEBDAV_DISCOVER_SUPPORTS_NONE` to search all types. Note that the list of returned calendars can be more general, thus check for its actual support type for further filtering of the results. The `url_use_path` can be used to override actual server path, or even complete URL, for the given `source`. since: 3.18
xml_destroy_hash | Frees the memory used by `hash` and its contents.
xml_dup_node_content | Duplicates content of the `node`. If the `node` is `NULL`, then the function does nothing and returns also `NULL`. since: 3.38
xml_find_child | Searches the children nodes of the `parent` for an element named `name` in namespace `ns_href`. since: 3.38
xml_find_child_and_dup_content | Searches the children nodes of the `parent` for an element named `name` in namespace `ns_href` and returns its content. This combines `e_xml_find_child()` and `e_xml_dup_node_content()` calls. since: 3.38
xml_find_child_and_get_text | Searches the children nodes of the `parent` for an element named `name` in namespace `ns_href` and returns its text content. since: 3.38
xml_find_children_nodes | Retrieve multiple nodes in one go, in an efficient way. It can be quicker than traversing the children of the `parent` `count` times in certain circumstances. since: 3.38
xml_find_in_hierarchy | Checks whether the `parent` has a hierarchy of children described by pair of ‘ns_href’ and ‘name’. since: 3.38
xml_find_next_sibling | Searches for the next sibling node of the `sibling` for an element named `name` in namespace `ns_href`. Unlike e_xml_find_sibling(), it skips the `sibling` itself. since: 3.38
xml_find_sibling | Searches the sibling nodes of the `sibling` for an element named `name` in namespace `ns_href`. It checks the `sibling` itself too, but it doesn’t check the previous siblings of the `sibling`. since: 3.38
xml_from_hash | Uses the key/value pair representation of an XML structure in `hash` to build an equivalent #xmlDoc. This is the reverse of e_xml_to_hash().
xml_get_child_by_name | Attempts to find a child element of `parent` named `child_name`. If no such child exists, the function returns `NULL`.
xml_get_node_text | Retrieves content of the `node`. If the `node` is `NULL`, then the function does nothing and returns also `NULL`. since: 3.38
xml_initialize_in_main | Initializes libxml library global memory. This should be called in the main thread. The function does nothing, when it had been called already. since: 3.28
xml_is_element_name | since: 3.38
xml_new_xpath_context_with_namespaces | Creates a new #xmlXPathContextPtr on `doc` with preregistered namespaces. The namepsaces are pair of (prefix, href), terminated by `NULL`. since: 3.26
xml_parse_data | Parses XML data into an #xmlDocPtr. Free returned pointer with xmlFreeDoc(), when no longer needed. since: 3.26
xml_parse_file | Reads a local XML file and parses the contents into an XML document structure. If the XML file cannot be read or its contents are malformed, the function returns `NULL`.
xml_save_file | Writes the given XML document structure to the file given by `filename`. If an error occurs while saving, the function returns -1 and sets errno.
xml_to_hash | Creates a `GHashTable` representation of the #xmlDoc `doc`. If `type` is * `E_XML_HASH_TYPE_PROPERTY`, all XML nodes will be indexed in the `GHashTable` by name. If `type` is `E_XML_HASH_TYPE_OBJECT_UID`, then XML objects will be indexed in the hash by their UID (other nodes will still be indexed by name).
xml_xpath_context_register_namespaces | Registers one or more additional namespaces. It’s a caller’s error to try to register a namespace with the same prefix again, unless the prefix uses the same namespace href. since: 3.26
xml_xpath_eval | Evaluates path specified by `format` and returns its #xmlXPathObjectPtr, in case the path evaluates to a non-empty node set. See also `e_xml_xpath_eval_as_string()` which evaluates the path to string. since: 3.26
xml_xpath_eval_as_string | Evaluates path specified by `format` and returns its result as string, in case the path evaluates to a non-empty node set. See also `e_xml_xpath_eval()` which evaluates the path to an #xmlXPathObjectPtr. since: 3.26
xml_xpath_eval_exists | Evaluates path specified by `format` and returns whether it exists. since: 3.26
xmlhash_add | Adds a new key/value pair to the `EXmlHash` `hash`.
xmlhash_compare | Compares the value with key equal to `key` in `hash` against `compare_data`.
xmlhash_destroy | Frees the memory associated with `hash`.
xmlhash_foreach_key | Executes `func` against each key/value pair in `hash`.
xmlhash_foreach_key_remove | Calls `g_hash_table_foreach_remove()` on `hash`‘s internal hash table. See `g_hash_table_foreach_remove()` for details.
xmlhash_new | Creates a new `EXmlHash` from the file `filename`. If `filename` does not already exist, an empty `EXmlHash` will be created.
xmlhash_remove | Remove the entry in `hash` with key equal to `key`, if it exists.
xmlhash_write | Writes the XML represented by `hash` to the file originally passed to e_xmlhash_new().

#### Function Macros

EDS_CHECK_VERSION | Checks the version of the Evolution-Data-Server library. Returns `TRUE` if the version of the EDS header files is the same as or newer than the passed-in version.
GDATA_SESSION |
GDATA_SESSION_CLASS |
named_timeout_add | Similar to g_timeout_add(), but also names the `GSource` for use in debugging and profiling. The name is formed from `function` and the PACKAGE definintion from a <config.h> file. since: 3.12
named_timeout_add_full | Similar to g_timeout_add_full(), but also names the `GSource` for use in debugging and profiling. The name is formed from `function` and the PACKAGE definition from a <config.h> file. since: 3.12
named_timeout_add_seconds | Similar to g_timeout_add_seconds(), but also names the `GSource` for use in debugging and profiling. The name is formed from `function` and the PACKAGE definition from a <config.h> file. since: 3.12
named_timeout_add_seconds_full | Similar to g_timeout_add_seconds_full(), but also names the `GSource` for use in debugging and profiling. The name is formed from `function` and the PACKAGE definition from a <config.h> file. since: 3.12
OAUTH2_SERVICE |
OAUTH2_SERVICE_BASE |
OAUTH2_SERVICE_BASE_CLASS |
OAUTH2_SERVICE_GOOGLE |
OAUTH2_SERVICE_GOOGLE_CLASS |
OAUTH2_SERVICE_OUTLOOK |
OAUTH2_SERVICE_OUTLOOK_CLASS |
OAUTH2_SERVICE_YAHOO |
OAUTH2_SERVICE_YAHOO_CLASS |
OAUTH2_SERVICES |
OAUTH2_SERVICES_CLASS |
SOURCE_CREDENTIALS_PROVIDER_IMPL_OAUTH2 |
SOURCE_CREDENTIALS_PROVIDER_IMPL_OAUTH2_CLASS |
SOURCE_LDAP |
SOURCE_LDAP_CLASS |
SOURCE_MDN |
SOURCE_MDN_CLASS |
SOURCE_OPENPGP |
SOURCE_OPENPGP_CLASS |
SOURCE_SMIME |
SOURCE_SMIME_CLASS |
SOURCE_WEBDAV_NOTES |
SOURCE_WEBDAV_NOTES_CLASS |
WEBDAV_SESSION |
WEBDAV_SESSION_CLASS |

#### Constants

CLIENT_BACKEND_PROPERTY_CACHE_DIR | The “cache-dir” property indicates the backend’s local directory for cached data.
CLIENT_BACKEND_PROPERTY_CAPABILITIES | The “capabilities” property is a comma-separated list of capabilities supported by the backend. The preferred method of retrieving and working with capabilities is `e_client_get_capabilities()` and e_client_check_capability().
CLIENT_BACKEND_PROPERTY_ONLINE | The “online” property is “TRUE” when the client is fully opened and online, “FALSE” at all other times. See also e_client_is_online().
CLIENT_BACKEND_PROPERTY_OPENED | The “opened” property is “TRUE” when the client is fully opened, “FALSE” at all other times. deprecated: 3.8
CLIENT_BACKEND_PROPERTY_OPENING | The “opening” property is “TRUE” when the client is in the process of opening, “FALSE” at all other times. deprecated: 3.8
CLIENT_BACKEND_PROPERTY_READONLY | The “online” property is “TRUE” if the backend has only read access to its data, “FALSE” if the backend can modify its data. See also e_client_is_readonly().
CLIENT_BACKEND_PROPERTY_REVISION | The current overall revision string, this can be used as a quick check to see if data has changed at all since the last time the revision was observed.
DEBUG_LOG_DOMAIN_CAL_QUERIES |
DEBUG_LOG_DOMAIN_GLOG |
DEBUG_LOG_DOMAIN_USER |
EDS_MAJOR_VERSION | The major version number of the Evolution-Data-Server library. Like eds_major_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.
EDS_MICRO_VERSION | The micro version number of the Evolution-Data-Server library. Like eds_micro_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.
EDS_MINOR_VERSION | The minor version number of the Evolution-Data-Server library. Like eds_minor_version(), but from the headers used at application compile time, rather than from the library linked against at application run time.
NETWORK_MONITOR_ALWAYS_ONLINE_NAME | A special name, which can be used as a GIO name in the call to e_network_monitor_set_gio_name(), which is used to report the network as always reachable.
OAUTH2_SECRET_ACCESS_TOKEN |
OAUTH2_SECRET_EXPIRES_AFTER |
OAUTH2_SECRET_REFRESH_TOKEN |
SOURCE_CREDENTIAL_PASSWORD | A name of the named parameter used for passwords in credentials, used to authenticate users with `e_source_invoke_authenticate_sync()` and e_source_invoke_authenticate(). The named parameter is optional, different authentication methods can use different names.
SOURCE_CREDENTIAL_SSL_TRUST | A name of the named parameter used for SSL/TLS trust in credentials, used to authenticate users with `e_source_invoke_authenticate_sync()` and e_source_invoke_authenticate(). The named parameter is optional. Its value corresponds to current ESourceWebdav::ssl-trust property, in case the ESource has that extension available. This is required to have up-to-date data on the server side, when the client side just saved the SSL trust change, which might not be propagated into the server (factory) side quickly enough. The key is added into the credentials in `e_source_invoke_authenticate()` automatically, if the corresponding ESource contain a WebDAV extension and the key is not part of the credentials already.
SOURCE_CREDENTIAL_USERNAME | A name of the named parameter used for usernames in credentials, used to authenticate users with `e_source_invoke_authenticate_sync()` and e_source_invoke_authenticate(). The named parameter is optional, different authentication methods can use different names.
SOURCE_EXTENSION_ADDRESS_BOOK | Pass this extension name to `e_source_get_extension()` to access `ESourceAddressBook`. This is also used as a group name in key files.
SOURCE_EXTENSION_ALARMS | Pass this extension name to `e_source_get_extension()` to access `ESourceAlarms`. This is also used as a group name in key files.
SOURCE_EXTENSION_AUTHENTICATION | Pass this extension name to `e_source_get_extension()` to access `ESourceAuthentication`. This is also used as a group name in key files.
SOURCE_EXTENSION_AUTOCOMPLETE | Pass this extension name to `e_source_get_extension()` to access `ESourceAutocomplete`. This is also used as a group name in key files.
SOURCE_EXTENSION_AUTOCONFIG | Pass this extension name to `e_source_get_extension()` to access `ESourceAutoconfig`. This is also used as a group name in key files.
SOURCE_EXTENSION_CALENDAR | Pass this extension name to `e_source_get_extension()` to access `ESourceCalendar`. This is also used as a group name in key files.
SOURCE_EXTENSION_COLLECTION | Pass this extension name to `e_source_get_extension()` to access `ESourceCollection`. This is also used as a group name in key files.
SOURCE_EXTENSION_CONTACTS_BACKEND | Pass this extension name to `e_source_get_extension()` to access `ESourceContacts`. This is also used as a group name in key files.
SOURCE_EXTENSION_GOA | Pass this extension name to `e_source_get_extension()` to access `ESourceGoa`. This is also used as a group name in key files.
SOURCE_EXTENSION_LDAP_BACKEND | Pass this extension name to `e_source_get_extension()` to access `ESourceLDAP`. This is also used as a group name in key files.
SOURCE_EXTENSION_LOCAL_BACKEND | Pass this extension name to `e_source_get_extension()` to access `ESourceLocal`. This is also used as a group name in key files.
SOURCE_EXTENSION_MAIL_ACCOUNT | Pass this extension name to `e_source_get_extension()` to access `ESourceMailAccount`. This is also used as a group name in key files.
SOURCE_EXTENSION_MAIL_COMPOSITION | Pass this extension name to `e_source_get_extension()` to access `ESourceMailComposition`. This is also used as a group name in key files.
SOURCE_EXTENSION_MAIL_IDENTITY | Pass this extension name to `e_source_get_extension()` to access `ESourceMailIdentity`. This is also used as a group name in key files.
SOURCE_EXTENSION_MAIL_SIGNATURE | Pass this extension name to `e_source_get_extension()` to access `ESourceMailSignature`. This is also used as a group name in key files.
SOURCE_EXTENSION_MAIL_SUBMISSION | Pass this extension name to `e_source_get_extension()` to access `ESourceMailSubmission`. This is also used as a group name in key files.
SOURCE_EXTENSION_MAIL_TRANSPORT | Pass this extension name to `e_source_get_extension()` to access `ESourceMailTransport`. This is also used as a group name in key files.
SOURCE_EXTENSION_MDN | Pass this extension name to `e_source_get_extension()` to access `ESourceMDN`. This is also used as a group name in key files.
SOURCE_EXTENSION_MEMO_LIST | Pass this extension name to `e_source_get_extension()` to access `ESourceMemoList`. This is also used as a group name in key files.
SOURCE_EXTENSION_OFFLINE | Pass this extension name to `e_source_get_extension()` to access `ESourceOffline`. This is also used as a group name in key files.
SOURCE_EXTENSION_OPENPGP | Pass this extension name to `e_source_get_extension()` to access `ESourceOpenPGP`. This is also used as a group name in key files.
SOURCE_EXTENSION_PROXY | Pass this extension name to `e_source_get_extension()` to access `ESourceProxy`. This is also used as a group name in key files.
SOURCE_EXTENSION_REFRESH | Pass this extension name to `e_source_get_extension()` to access `ESourceRefresh`. This is also used as a group name in key files.
SOURCE_EXTENSION_RESOURCE | Pass this extension name to `e_source_get_extension()` to access `ESourceResource`. This is also used as a group name in key files.
SOURCE_EXTENSION_REVISION_GUARDS | Pass this extension name to `e_source_get_extension()` to access `ESourceRevisionGuards`. This is also used as a group name in key files.
SOURCE_EXTENSION_SECURITY | Pass this extension name to `e_source_get_extension()` to access `ESourceSecurity`. This is also used as a group name in key files.
SOURCE_EXTENSION_SMIME | Pass this extension name to `e_source_get_extension()` to access `ESourceSMIME`. This is also used as a group name in key files.
SOURCE_EXTENSION_TASK_LIST | Pass this extension name to `e_source_get_extension()` to access `ESourceTaskList`. This is also used as a group name in key files.
SOURCE_EXTENSION_UOA | Pass this extension name to `e_source_get_extension()` to access `ESourceUoa`. This is also used as a group name in key files.
SOURCE_EXTENSION_WEATHER_BACKEND | Pass this extension name to `e_source_get_extension()` to access `ESourceWeather`. This is also used as a group name in key files.
SOURCE_EXTENSION_WEBDAV_BACKEND | Pass this extension name to `e_source_get_extension()` to access `ESourceWebdav`. This is also used as a group name in key files.
SOURCE_EXTENSION_WEBDAV_NOTES | Pass this extension name to `e_source_get_extension()` to access `ESourceWebDAVNotes`. This is also used as a group name in key files.
SOURCE_PARAM_SETTING | Extends `GParamFlags` to indicate the `GObject` property is associated with a key file value. Use this flag when installing `GObject` properties in `ESourceExtension` subclasses.
WEBDAV_CAPABILITY_ACCESS_CONTROL |
WEBDAV_CAPABILITY_ADDRESSBOOK |
WEBDAV_CAPABILITY_BIND |
WEBDAV_CAPABILITY_CALENDAR_ACCESS |
WEBDAV_CAPABILITY_CALENDAR_AUTO_SCHEDULE |
WEBDAV_CAPABILITY_CALENDAR_PROXY |
WEBDAV_CAPABILITY_CALENDAR_SCHEDULE |
WEBDAV_CAPABILITY_CLASS_1 |
WEBDAV_CAPABILITY_CLASS_2 |
WEBDAV_CAPABILITY_CLASS_3 |
WEBDAV_CAPABILITY_EXTENDED_MKCOL |
WEBDAV_COLLATION_ASCII_CASEMAP |
WEBDAV_COLLATION_ASCII_CASEMAP_SUFFIX |
WEBDAV_COLLATION_ASCII_NUMERIC |
WEBDAV_COLLATION_ASCII_NUMERIC_SUFFIX |
WEBDAV_COLLATION_OCTET |
WEBDAV_COLLATION_OCTET_SUFFIX |
WEBDAV_COLLATION_UNICODE_CASEMAP |
WEBDAV_COLLATION_UNICODE_CASEMAP_SUFFIX |
WEBDAV_CONTENT_TYPE_CALENDAR |
WEBDAV_CONTENT_TYPE_VCARD |
WEBDAV_CONTENT_TYPE_XML |
WEBDAV_DEPTH_INFINITY |
WEBDAV_DEPTH_THIS |
WEBDAV_DEPTH_THIS_AND_CHILDREN |
WEBDAV_NS_CALDAV |
WEBDAV_NS_CALENDARSERVER |
WEBDAV_NS_CARDDAV |
WEBDAV_NS_DAV |
WEBDAV_NS_ICAL |