swift
Signals | Public Member Functions | Static Public Member Functions | List of all members
swift::misc::CDataCacheSerializer Class Reference

Worker which performs (de)serialization on behalf of CDataCache, in a separate thread so that the main thread is not blocked by (de)serialization of large objects. More...

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

Signals

void valuesLoadedFromStore (const swift::misc::CValueCachePacket &values, const swift::misc::CIdentifier &originator)
 Signal back to the cache when values have been loaded.
 
- Signals inherited from swift::misc::CWorkerBase
void aboutToStart ()
 Emitted when the task is about to start.
 
void finished ()
 Emitted when the task is finished. More...
 

Public Member Functions

 CDataCacheSerializer (CDataCache *owner, const QString &revisionFileName)
 Constructor.
 
void saveToStore (const swift::misc::CVariantMap &values, const swift::misc::CValueCachePacket &baseline)
 Save values to persistent store. Called whenever a value is changed locally.
 
CDataCacheRevision::LockGuard loadFromStore (const swift::misc::CValueCachePacket &baseline, bool defer=false, bool pinsOnly=false)
 Load values from persistent store. Called once per second. Also called by saveToStore, to ensure that remote changes to unrelated values are not lost. More...
 
- Public Member Functions inherited from swift::misc::CContinuousWorker
 CContinuousWorker (QObject *owner, const QString &name)
 Constructor. More...
 
void start (QThread::Priority priority=QThread::InheritPriority)
 Starts a thread and moves the worker into it.
 
void quit () noexcept final
 Stops the thread the next time around its event loop. The thread and the worker will then be deleted. More...
 
void quitAndWait () noexcept final
 Calls quit() and blocks until the thread is finished. More...
 
bool isEnabled () const
 Enabled (running)? More...
 
void setEnabled (bool enabled)
 Enabled (running)? More...
 
void startUpdating (int updateTimeSecs)
 Start updating (start/stop timer) More...
 
const QString & getName ()
 Name of the worker.
 
const QObject * owner () const
 Owner of the worker.
 
- Public Member Functions inherited from swift::misc::CWorkerBase
template<typename T , typename F >
void then (T *context, F functor)
 Connects to a functor or method which will be called when the task is finished. More...
 
template<typename F >
void then (F functor)
 Connects to a functor which will be called when the task is finished. More...
 
bool isFinished () const
 Returns true if the task has finished. More...
 
template<typename F >
void doIfFinished (F functor) const
 Executes some code (in the caller's thread) if the task has finished. More...
 
template<typename F >
void doIfNotFinished (F functor) const
 Executes some code (in the caller's thread) if the task has not finished. More...
 
template<typename F1 , typename F2 >
void doIfFinishedElse (F1 ifFunctor, F2 elseFunctor) const
 Executes some code (in the caller's thread) if the task has finished and some different code if it has not finished. More...
 
void waitForFinished () noexcept
 Blocks until the task is finished. More...
 
void abandon () noexcept
 Notify the task that its result is no longer needed, so it can finish early. More...
 
void abandonAndWait () noexcept
 Convenience to call abandon() followed by waitForFinished().
 

Static Public Member Functions

static const QStringList & getLogCategories ()
 Log categories.
 
- Static Public Member Functions inherited from swift::misc::CWorkerBase
static const QStringList & getLogCategories ()
 Log categories.
 
static const QSet< CWorkerBase * > & allWorkers ()
 All workers currently existing.
 

Additional Inherited Members

- Protected Member Functions inherited from swift::misc::CContinuousWorker
virtual void initialize ()
 Called when the thread is started.
 
virtual void cleanup ()
 Called when the thread is finished.
 
virtual void beforeQuit () noexcept
 Called before quit is called. More...
 
virtual unsigned long waitTimeoutMs () const
 Wait time for quitAndWait, 0 means not waiting.
 
void stopUpdateTimer ()
 Safely stop update time.
 
- Protected Member Functions inherited from swift::misc::CWorkerBase
 CWorkerBase ()
 Constructor.
 
 ~CWorkerBase ()
 Destructor.
 
bool isAbandoned () const
 For the task to check whether it can finish early. More...
 
bool hasStarted () const
 True if the worker has started.
 
void setStarted ()
 Mark the task as started.
 
void setFinished ()
 Mark the task as finished.
 
- Protected Attributes inherited from swift::misc::CContinuousWorker
QTimer m_updateTimer { this }
 timer which can be used by implementing classes
 

Detailed Description

Worker which performs (de)serialization on behalf of CDataCache, in a separate thread so that the main thread is not blocked by (de)serialization of large objects.

Definition at line 200 of file datacache.h.

Member Function Documentation

◆ loadFromStore()

CDataCacheRevision::LockGuard swift::misc::CDataCacheSerializer::loadFromStore ( const swift::misc::CValueCachePacket baseline,
bool  defer = false,
bool  pinsOnly = false 
)

Load values from persistent store. Called once per second. Also called by saveToStore, to ensure that remote changes to unrelated values are not lost.

Parameters
baselineA snapshot of the currently loaded values, taken when the load is queued.
deferWhether to defer applying the changes. Used when called by saveToStore.
pinsOnlyOnly load pinned values.
Returns
Usually ignored, but can be held in order to retain the revision file lock.

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