swift
Public Member Functions | Static Public Member Functions | Friends | List of all members
swift::misc::CDataCache Class Reference

Singleton derived class of CValueCache, for core dynamic data. More...

Inheritance diagram for swift::misc::CDataCache:
[legend]

Public Member Functions

virtual ~CDataCache ()
 Destructor.
 
QStringList enumerateStore () const
 Return all files where data may be stored.
 
bool synchronize (const QString &key)
 Method used for implementing CData::synchronize.
 
void setTimeToLive (const QString &key, int ttl)
 Method used for implementing TTL.
 
void renewTimestamp (const QString &key, qint64 timestamp)
 Method used for implementing timestamp renewal.
 
qint64 getTimestampOnDisk (const QString &key)
 Method used for implementing loading timestamp without value.
 
void pinValue (const QString &key)
 Method used for implementing pinning values.
 
void deferValue (const QString &key)
 Method used for implementing deferring values.
 
void admitValue (const QString &key, bool triggerLoad)
 Method used for implementing deferring values.
 
void sessionValue (const QString &key)
 Method used for implementing session values.
 
- Public Member Functions inherited from swift::misc::CValueCache
 CValueCache (int fileSplitDepth, QObject *parent=nullptr)
 Constructor.
 
swift::misc::CVariantMap getAllValues (const QString &keyPrefix={}) const
 Return map containing all values in the cache. If prefix is provided then only those values whose keys start with that prefix. More...
 
swift::misc::CVariantMap getAllValues (const QStringList &keys) const
 Return map containing all given values in the cache. More...
 
swift::misc::CValueCachePacket getAllValuesWithTimestamps (const QString &keyPrefix={}) const
 Return map containing all values in the cache, and timestamps when they were modified. More...
 
QStringList getAllUnsavedKeys (const QString &keyPrefix={}) const
 Return keys of all values which have been changed but not saved. More...
 
void insertValues (const swift::misc::CValueCachePacket &values)
 Add some values to the cache. Values already in the cache will remain in the cache unless they are overwritten. More...
 
QJsonObject saveToJson (const QString &keyPrefix={}) const
 Save values in Json format. If prefix is provided then only those values whose keys start with that prefix. More...
 
void loadFromJson (const QJsonObject &json)
 Load all values in Json format. Values already in the cache will remain in the cache unless they are overwritten. More...
 
CStatusMessageList loadFromJsonNoThrow (const QJsonObject &json, const CLogCategoryList &categories, const QString &prefix)
 Call loadFromJson, catch any CJsonException that are thrown and return them as CStatusMessage. More...
 
CStatusMessage saveToFiles (const QString &directory, const QString &keyPrefix={})
 Save values to Json files in a given directory. If prefix is provided then only those values whose keys start with that prefix. More...
 
CStatusMessage saveToFiles (const QString &directory, const QStringList &keys)
 Save values to Json files in a given directory. More...
 
CStatusMessage loadFromFiles (const QString &directory)
 Load all values from Json files in a given directory. Values already in the cache will remain in the cache unless they are overwritten. More...
 
QString filenameForKey (const QString &key) const
 Return the (relative) filename that may is (or would be) used to save the value with the given key. The file may or may not exist (because it might not have been saved yet). More...
 
QStringList enumerateFiles (const QString &directory) const
 List the Json files which are (or would be) used to save the current values. The files may or may not exist (because they might not have been saved yet). More...
 
void clearAllValues (const QString &keyPrefix={})
 Clear all values from the cache. More...
 
QString getHumanReadableName (const QString &key) const
 Return the human readable name of the given key, or the raw key string if there is none.
 
QString getHumanReadableWithKey (const QString &key) const
 Return the human readable name of the given key, with the raw key string appended.
 
BatchGuard batchChanges (QObject *owner)
 Begins a batch of changes to be made through CCached instances owned by owner. More...
 
 ~BatchGuard ()
 Destructor. Applies deferred changes.
 
 BatchGuard (const BatchGuard &)=delete
 Deleted copy constructor. Class is move-only.
 
BatchGuardoperator= (const BatchGuard &)=delete
 Deleted copy assignment operator. Class is move-only.
 
 BatchGuard (BatchGuard &&other) noexcept
 Move constructor.
 
BatchGuardoperator= (BatchGuard &&other) noexcept
 Move assignment operator.
 

Static Public Member Functions

static CDataCacheinstance ()
 Return the singleton instance.
 
static const QString & persistentStore ()
 The directory where core data are stored.
 
static const QString & revisionFileName ()
 Revision file name.
 
static QString filenameForKey (const QString &key)
 Return the filename where the value with the given key may be stored.
 
static const QString & relativeFilePath ()
 Relative file path in application data directory.
 
- Static Public Member Functions inherited from swift::misc::CValueCache
static const QStringList & getLogCategories ()
 Log categories.
 

Friends

class CDataCacheSerializer
 

Additional Inherited Members

- Public Slots inherited from swift::misc::CValueCache
void changeValuesFromRemote (const swift::misc::CValueCachePacket &values, const swift::misc::CIdentifier &originator)
 Notify this cache that values have been changed by one of the duplicate caches in the multi-process environment. More...
 
- Signals inherited from swift::misc::CValueCache
void valuesChangedByLocal (const swift::misc::CValueCachePacket &values)
 Emitted when values in the cache are changed by an object in this very process. The interprocess communication (e.g. DBus) should arrange for this signal to call the slot changeValueFromRemote of CValueCache instances in all processes including this one. The slot will do its own round-trip detection.
 
void valuesSaveRequested (const swift::misc::CValueCachePacket &values)
 Emitted when this cache has ratified a change which included a request to save (i.e. via CCaches::setAndSave). If the derived class does not handle such requests, the signal can be ignored.
 
- Protected Member Functions inherited from swift::misc::CValueCache
CStatusMessage saveToFiles (const QString &directory, const CVariantMap &values, const QString &keysMessage={}) const
 Save specific values to Json files in a given directory. More...
 
CStatusMessage loadFromFiles (const QString &directory, const QSet< QString > &keys, const CVariantMap &current, CValueCachePacket &o_values, const QString &keysMessage={}, bool keysOnly=false) const
 Load from Json files in a given directory any values which differ from the current ones, and insert them in o_values. More...
 
void markAllAsSaved (const QString &keyPrefix)
 Mark all values with keys that start with the given prefix as having been saved. More...
 
void markAllAsSaved (const QStringList &keys)
 Mark all values with given keys as having been saved. More...
 
CVariant getValueSync (const QString &key)
 Synchronously return a current value. More...
 
qint64 getTimestampSync (const QString &key)
 Synchronously return a current timestamp. More...
 
auto elementsStartingWith (const QString &keyPrefix)
 Returns a range referring to all elements which start with the given prefix.
 
auto elementsStartingWith (const QString &keyPrefix) const
 Returns a range referring to all elements which start with the given prefix.
 
- Protected Attributes inherited from swift::misc::CValueCache
QRecursiveMutex m_mutex
 Mutex protecting operations which are critical on m_elements.
 

Detailed Description

Singleton derived class of CValueCache, for core dynamic data.

File-based distribution between processes is built-in to the class.

Definition at line 244 of file datacache.h.


The documentation for this class was generated from the following file: