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
Functions
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_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_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_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_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_initialize_sync
Initializes the cache and opens the filename database.
This should be called by the descendant.
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_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_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
Signals
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.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