QtDataSync
4.2.0
A simple offline-first synchronisation framework, to synchronize data of Qt applications between devices
|
Interface to implement a custom conflict handler for sync conflicts. More...
#include <conflictresolver.h>
Public Member Functions | |
ConflictResolver (QObject *parent=nullptr) | |
Default constructor. | |
QString | setupName () const |
Returns the name of the setup this class operates on. More... | |
virtual QByteArray | name () const |
The resolvers name. Used for logging. More... | |
virtual QJsonObject | resolveConflict (int typeId, const QJsonObject &data1, const QJsonObject &data2) const =0 |
The method called to resolve conflicts between two datasets. More... | |
Public Member Functions inherited from QObject | |
virtual const QMetaObject * | metaObject () const const |
virtual void * | qt_metacast (const char *) |
virtual int | qt_metacall (QMetaObject::Call, int, void **) |
QObject (QObject *parent) | |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
QString | objectName () const const |
void | setObjectName (const QString &name) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
bool | signalsBlocked () const const |
bool | blockSignals (bool block) |
QThread * | thread () const const |
void | moveToThread (QThread *targetThread) |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
void | killTimer (int id) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
const QObjectList & | children () const const |
void | setParent (QObject *parent) |
void | installEventFilter (QObject *filterObj) |
void | removeEventFilter (QObject *obj) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectTree () |
void | dumpObjectInfo () |
void | dumpObjectTree () const const |
void | dumpObjectInfo () const const |
bool | setProperty (const char *name, const QVariant &value) |
QVariant | property (const char *name) const const |
QList< QByteArray > | dynamicPropertyNames () const const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
bool | inherits (const char *className) const const |
void | deleteLater () |
Protected Member Functions | |
Defaults | defaults () const |
Access to the defaults of the current datasync instance. | |
Logger * | logger () const |
Returns the logger that should be used to log merge incidents. | |
QSettings * | settings () const |
Access to the resolvers settings section of the current datasync instance. | |
Protected Member Functions inherited from QObject | |
QObject * | sender () const const |
int | senderSignalIndex () const const |
int | receivers (const char *signal) const const |
bool | isSignalConnected (const QMetaMethod &signal) const const |
virtual void | timerEvent (QTimerEvent *event) |
virtual void | childEvent (QChildEvent *event) |
virtual void | customEvent (QEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
Additional Inherited Members | |
Static Public Member Functions inherited from QObject | |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
Properties inherited from QObject | |
objectName | |
Interface to implement a custom conflict handler for sync conflicts.
When a merge conflict is detected (both local and remote have modified data, with none seeming to be newer than the other) by default one of the two is choosen "by fate" by comparing their checksums - which is basically a random decision. If you need more control about how such conflicts are treated, you can reimplement this class and pass it to the setup.
Definition at line 17 of file conflictresolver.h.
|
virtual |
The resolvers name. Used for logging.
|
pure virtual |
The method called to resolve conflicts between two datasets.
typeId | The id of the type of which the two conflicted objects are |
data1 | The first dataset |
data2 | The second dataset |
QException | In case data corruption was detected an exception can be thrown to abort the synchronization. This will put the engine in an (unrecoverable) error state. |
Must be implemented as the main method of the resolver. The method must always return something. If you find that you cannot decide how to merge, simply return a default constructed json object. In that case, the library will ignore the result and proceed to merge as if no conflict resolver was present.
Implemented in QtDataSync::GenericConflictResolver< T1 >.
QtDataSync::ConflictResolver::setupName | ( | ) | const |
Returns the name of the setup this class operates on.