Class

EBackendCache

since: 3.26

Description [src]

abstract class EBackend.Cache : GObject.Object
{
  /* No available fields */
}

Contains only private data that should be read and manipulated using the functions below.

Available since: 3.26

Hierarchy

hierarchy this ECache ancestor_0 GObject ancestor_0--this

Ancestors

Functions

e_cache_error_quark
No description available.

e_cache_sqlite_stmt_append_printf

Appends an SQLite statement fragment based on the format and its arguments to the stmt. The format can contain any values recognized by sqlite3_mprintf().

since: 3.26

e_cache_sqlite_stmt_free

Frees a statement previously constructed with e_cache_sqlite_stmt_printf().

since: 3.26

e_cache_sqlite_stmt_printf

Creates an SQLite statement based on the format and its arguments. The format can contain any values recognized by sqlite3_mprintf().

since: 3.26

Instance methods

e_cache_change_revision

Instructs the cache to change its revision. In case the revision change is frozen with e_cache_freeze_revision_change() it notes to change the revision once the revision change is fully thaw.

since: 3.26

e_cache_clear_offline_changes

Marks all objects as being fully synchronized with the server and removes those which are marked as locally deleted.

since: 3.26

e_cache_contains

Checkes whether the cache contains an object with the given uid.

since: 3.26

e_cache_copy_missing_to_column_values

Adds every column value which is not part of the other_columns to it, except of E_CACHE_COLUMN_UID, E_CACHE_COLUMN_REVISION, E_CACHE_COLUMN_OBJECT and E_CACHE_COLUMN_STATE columns.

since: 3.32

e_cache_dup_key
No description available.

since: 3.26

e_cache_dup_revision
No description available.

since: 3.26

e_cache_erase

Erases the cache and all of its content from the disk. The only valid operation after this is to free the cache.

since: 3.26

e_cache_foreach

Calls func for each found object, which satisfies the criteria for both deleted_flag and where_clause.

since: 3.26

e_cache_foreach_update

Calls func for each found object, which satisfies the criteria for both deleted_flag and where_clause, letting the caller update values where necessary. The return value of func is used to determine whether the call was successful, not whether there are any changes to be saved. If anything fails during the call then the all changes are reverted.

since: 3.26

e_cache_freeze_revision_change

Freezes automatic revision change for the cache. The function can be called multiple times, but each such call requires its pair function e_cache_thaw_revision_change() call. See also e_cache_change_revision().

since: 3.26

e_cache_get

Returns an object with the given uid. This function does not consider locally deleted objects. The out_revision is set to the object revision, if not NULL. Free it with g_free() when no longer needed. Similarly the out_other_columns contains a column name to column value strings for additional columns which had been requested when calling e_cache_initialize_sync(), if not NULL. Free the returned ECacheColumnValues with e_cache_column_values_free(), when no longer needed.

since: 3.26

e_cache_get_count
No description available.

since: 3.26

e_cache_get_filename
No description available.

since: 3.26

e_cache_get_key_int

Reads the user key value as an integer.

since: 3.26

e_cache_get_object_include_deleted

The same as e_cache_get(), only considers also locally deleted objects.

since: 3.30

e_cache_get_objects

Gets a list of objects stored in the cache, optionally together with their revisions. The uids are not returned in any particular order, but the position between out_objects and out_revisions matches the same object.

since: 3.26

e_cache_get_offline_changes

Gathers the list of all offline changes being done so far. The returned GSList contains ECacheOfflineChange structure. Use e_cache_clear_offline_changes() to clear all offline changes at once.

since: 3.26

e_cache_get_offline_state
No description available.

since: 3.26

e_cache_get_sqlitedb
No description available.

since: 3.26

e_cache_get_uids

Gets a list of unique object identifiers stored in the cache, optionally together with their revisions. The uids are not returned in any particular order, but the position between out_uids and out_revisions matches the same object.

since: 3.26

e_cache_get_version
No description available.

since: 3.26

e_cache_initialize_sync

Initializes the cache and opens the filename database. This should be called by the descendant.

since: 3.26

e_cache_is_revision_change_frozen
No description available.

since: 3.26

e_cache_lock

Locks the cache thus other threads cannot use it. This can be called recursively within one thread. Each call should have its pair e_cache_unlock().

since: 3.26

e_cache_put

Stores an object into the cache. Depending on offline_flag, this update the object’s offline state accordingly. When the offline_flag is set to E_CACHE_IS_ONLINE, then it’s set to #E_OFFLINE_STATE_SYNCED, like to be fully synchronized with the server, regardless of its previous offline state. Overwriting locally deleted object behaves like an addition of a completely new object.

since: 3.26

e_cache_remove

Removes the object with the given uid from the cache. Based on the offline_flag, it can remove also any information about locally made offline changes. Removing the object with E_CACHE_IS_OFFLINE will still remember it for later use with e_cache_get_offline_changes().

since: 3.26

e_cache_remove_all

Removes all objects from the cache in one call.

since: 3.26

e_cache_set_key

Sets a value of the user key, or deletes it, if the value is NULL.

since: 3.26

e_cache_set_key_int

Sets an integer value for the user key.

since: 3.26

e_cache_set_offline_state

Sets an offline state for the object identified by uid.

since: 3.26

e_cache_set_revision

Sets the revision of the whole cache. This is not meant to be used by the descendants, because the revision is updated automatically when needed. The descendants can listen to “revision-changed” signal.

since: 3.26

e_cache_set_version

Sets a cache data version. This is meant to be used by the descendants. The version should be greater than zero.

since: 3.26

e_cache_sqlite_exec

Executes an SQLite statement. Use e_cache_sqlite_select() for SELECT statements.

since: 3.26

e_cache_sqlite_maybe_vacuum

Runs vacuum (compacts the database file), if needed.

since: 3.26

e_cache_sqlite_select

Executes a SELECT statement sql_stmt and calls func for each row of the result. Use e_cache_sqlite_exec() for statements which do not return row sets.

since: 3.26

e_cache_thaw_revision_change

Thaws automatic revision change for the cache. It’s the pair function of e_cache_freeze_revision_change().

since: 3.26

e_cache_unlock

Unlocks the cache which was previouly locked with e_cache_lock(). The cache locked with #E_CACHE_LOCK_WRITE should use either action #E_CACHE_UNLOCK_COMMIT or #E_CACHE_UNLOCK_ROLLBACK, while the #E_CACHE_LOCK_READ should use #E_CACHE_UNLOCK_NONE action.

since: 3.26

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Signals

EBackend.Cache::before-put
No description available.

EBackend.Cache::before-remove
No description available.

EBackend.Cache::revision-changed
No description available.

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct EBackendCacheClass {
  gboolean (* put_locked) (
    ECache* cache,
    const gchar* uid,
    const gchar* revision,
    const gchar* object,
    ECacheColumnValues* other_columns,
    EOfflineState offline_state,
    gboolean is_replace,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* remove_locked) (
    ECache* cache,
    const gchar* uid,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* remove_all_locked) (
    ECache* cache,
    const GSList* uids,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* clear_offline_changes_locked) (
    ECache* cache,
    GCancellable* cancellable,
    GError** error
  );
  void (* erase) (
    ECache* cache
  );
  gboolean (* before_put) (
    ECache* cache,
    const gchar* uid,
    const gchar* revision,
    const gchar* object,
    ECacheColumnValues* other_columns,
    gboolean is_replace,
    GCancellable* cancellable,
    GError** error
  );
  gboolean (* before_remove) (
    ECache* cache,
    const gchar* uid,
    GCancellable* cancellable,
    GError** error
  );
  void (* revision_changed) (
    ECache* cache
  );
  
}

No description available.

Class members
put_locked: gboolean (* put_locked) ( ECache* cache, const gchar* uid, const gchar* revision, const gchar* object, ECacheColumnValues* other_columns, EOfflineState offline_state, gboolean is_replace, GCancellable* cancellable, GError** error )

No description available.

remove_locked: gboolean (* remove_locked) ( ECache* cache, const gchar* uid, GCancellable* cancellable, GError** error )

No description available.

remove_all_locked: gboolean (* remove_all_locked) ( ECache* cache, const GSList* uids, GCancellable* cancellable, GError** error )

No description available.

clear_offline_changes_locked: gboolean (* clear_offline_changes_locked) ( ECache* cache, GCancellable* cancellable, GError** error )

No description available.

erase: void (* erase) ( ECache* cache )

No description available.

before_put: gboolean (* before_put) ( ECache* cache, const gchar* uid, const gchar* revision, const gchar* object, ECacheColumnValues* other_columns, gboolean is_replace, GCancellable* cancellable, GError** error )

No description available.

before_remove: gboolean (* before_remove) ( ECache* cache, const gchar* uid, GCancellable* cancellable, GError** error )

No description available.

revision_changed: void (* revision_changed) ( ECache* cache )

No description available.

Virtual methods

EBackend.CacheClass.before_put
No description available.

EBackend.CacheClass.before_remove
No description available.

EBackend.CacheClass.erase

Erases the cache and all of its content from the disk. The only valid operation after this is to free the cache.

since: 3.26

EBackend.CacheClass.put_locked
No description available.

EBackend.CacheClass.remove_all_locked
No description available.

EBackend.CacheClass.remove_locked
No description available.

EBackend.CacheClass.revision_changed
No description available.