diff options
Diffstat (limited to 'src/imports/jsondb/jsondbcachinglistmodel_p.h')
-rw-r--r-- | src/imports/jsondb/jsondbcachinglistmodel_p.h | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/src/imports/jsondb/jsondbcachinglistmodel_p.h b/src/imports/jsondb/jsondbcachinglistmodel_p.h index bf949dc3..759440e8 100644 --- a/src/imports/jsondb/jsondbcachinglistmodel_p.h +++ b/src/imports/jsondb/jsondbcachinglistmodel_p.h @@ -50,8 +50,9 @@ #include <QStringList> #include <QPointer> #include <QUuid> +#include <QJsonObject> -#include "jsondb-client.h" +#include "jsondatabase.h" #include "jsondbmodelutils.h" #include "jsondbmodelcache.h" @@ -93,9 +94,8 @@ public: QList<RequestInfo> partitionKeyRequestDetails; QList<JsonDbModelIndexType> partitionObjectUuids; - QList<bool> ascendingOrders; - QStringList orderProperties; - QList<QStringList> orderPaths; + bool ascendingOrder; + QString indexName; QString query; QVariant queryOptions; @@ -110,13 +110,15 @@ public: QHash<int, QByteArray> roleNames; QHash<int, QStringList> properties; - QList<NotifyItem> pendingNotifications; + QList<NotificationItem> pendingNotifications; QList<int> cacheMiss; QMap<int, QJSValue> getCallbacks; QList< QPair<int,int> > requestQueue; + QList< QPointer<ModelRequest> >keyRequests; + QList< QPointer<ModelRequest> >indexRequests; + QList< QPointer<ModelRequest> >valueRequests; JsonDbCachingListModel::State state; - JsonDbClient dbClient; QModelIndex parent; int errorCode; QString errorString; @@ -131,11 +133,11 @@ public: void clearCache(); void removeLastItem(); - void addItem(const QVariantMap &item, int partitionIndex); - void deleteItem(const QVariantMap &item, int partitionIndex); - void updateItem(const QVariantMap &item, int partitionIndex); - void fillKeys(const QVariant &v, int partitionIndex); - void fillData(const QVariant &v, int partitionIndex); + void addItem(const QJsonObject &item, int partitionIndex); + void deleteItem(const QJsonObject &item, int partitionIndex); + void updateItem(const QJsonObject &item, int partitionIndex); + void fillKeys(const QList<QJsonObject> &items, int partitionIndex); + void fillData(const QList<QJsonObject> &items, int partitionIndex); void reset(); void emitDataChanged(int from, int to); @@ -156,13 +158,12 @@ public: void createOrUpdateNotifications(); void parseSortOrder(); void setQueryForSortKeys(); - void verifyIndexSpec(const QVariant &v, int partitionIndex); + void verifyIndexSpec(const QList<QJsonObject> &items, int partitionIndex); - int indexOfKeyRequestId(int requestId); - int indexOfRequestId(int requestId); - int indexOfNotifyUUID(const QString& notifyUuid); - int indexOfKeyIndexSpecId(int requestId); + int indexOfWatcher(QJsonDbWatcher *watcher); + void appendPartition(JsonDbPartition *v); + void clearPartitions(); QVariant getItem(int index); QVariant getItem(int index, int role); void queueGetCallback(int index, const QJSValue &callback); @@ -172,14 +173,16 @@ public: void set(int index, const QJSValue& valuemap, const QJSValue &successCallback, const QJSValue &errorCallback); - void sendNotifications(const QString& currentNotifyUuid, const QVariant &v, JsonDbClient::NotifyType action); + void sendNotification(int partitionIndex, const QJsonObject &object, QJsonDbWatcher::Action action); + // private slots - void _q_jsonDbResponse(int , const QVariant &); - void _q_jsonDbErrorResponse(int , int, const QString&); - void _q_dbNotified(const QString ¬ify_uuid, const QtAddOn::JsonDb::JsonDbNotification &_notification); - void _q_dbNotifyReadyResponse(int id, const QVariant &result); - void _q_dbNotifyErrorResponse(int id, int code, const QString &message); void _q_verifyDefaultIndexType(int index); + void _q_notificationsAvailable(); + void _q_notificationError(QtJsonDb::QJsonDbWatcher::ErrorCode code, const QString &message); + void _q_readError(QtJsonDb::QJsonDbRequest::ErrorCode code, const QString & message); + void _q_keyResponse(int , const QList<QJsonObject>&, const QString&); + void _q_valueResponse(int , const QList<QJsonObject>&); + void _q_indexResponse(int , const QList<QJsonObject>&); static void partitions_append(QQmlListProperty<JsonDbPartition> *p, JsonDbPartition *v); static int partitions_count(QQmlListProperty<JsonDbPartition> *p); |