PonyPlayer
kv_engine.h
浏览该文件的文档.
1#pragma once
2
3#include <QtCore>
4#include <QString>
5#include <QtSql/QSqlDatabase>
6#include <QDebug>
7#include <QDir>
8#include <unordered_map>
9#include <QUuid>
10
11
13private:
14 QSqlDatabase db;
15public:
16 explicit PonyKVConnect(const QString &dbName);
17
18 bool hasTable(const QString &tableName);
19
20 void createTableFrom(const QString &className, const QString &tableName);
21
22 static QString qTypeToDDL(const QString &qType);
23
24 void insert(const QString &tableName, const QObject *object);
25
26 void remove(const QString &tableName, const QObject *object);
27
28 void removeByKV(const QString &tableName, const QString &key, const QString &value);
29
30 template<typename T>
31 T* search(const QString &tableName, const QString &className, const QString &key, const QString &value);
32
33 QList<QObject *> retrieveData(const QString &tableName, const QString &className);
34
35 template<typename T>
36 QList<T *> retrieveDataByClass(const QString &tableName, const QString &className);
37};
38
39
40class ListItem : public QObject {
41 Q_OBJECT
42 Q_PROPERTY(QString _uuid_ READ getUUID WRITE setUUID)
43protected:
44 QString _uuid_;
45public:
46 Q_INVOKABLE ListItem() { _uuid_ = QUuid::createUuid().toString(); };
47
48 Q_INVOKABLE void setUUID(QString uuid) { _uuid_ = std::move(uuid); };
49
50 Q_INVOKABLE QString getUUID() { return _uuid_; };
51
52 Q_INVOKABLE ~ListItem() override = default;
53
54// Q_INVOKABLE ListItem(const ListItem &listItem) : QObject() { _uuid_ = listItem._uuid_; };
55};
56
57template<typename T>
59private:
60 PonyKVConnect engine;
61 QString dbName;
62 QString tableName;
63 QString className;
64 QList<T *> data;
65 T* infoData;
66public:
67 PonyKVList(QString _dbName, QString _tableName, QString _className);
68
69 QString getTableName() { return tableName; }
70
71 void insert(T *item);
72
73 void remove(const QString& key,const QString& value);
74
75 T* extractInfo(QString key,QString value);
76
77 QList<T*> extract();
78
79};
Definition: kv_engine.h:40
Q_INVOKABLE ~ListItem() override=default
Q_INVOKABLE QString getUUID()
Definition: kv_engine.h:50
QString _uuid_
Definition: kv_engine.h:42
Q_INVOKABLE void setUUID(QString uuid)
Definition: kv_engine.h:48
Q_INVOKABLE ListItem()
Definition: kv_engine.h:46
Definition: kv_engine.h:12
void createTableFrom(const QString &className, const QString &tableName)
Definition: kv_engine.cpp:55
static QString qTypeToDDL(const QString &qType)
Definition: kv_engine.cpp:78
bool hasTable(const QString &tableName)
Definition: kv_engine.cpp:46
QList< QObject * > retrieveData(const QString &tableName, const QString &className)
Definition: kv_engine.cpp:114
void removeByKV(const QString &tableName, const QString &key, const QString &value)
Definition: kv_engine.cpp:164
QList< T * > retrieveDataByClass(const QString &tableName, const QString &className)
Definition: kv_engine.cpp:134
void insert(const QString &tableName, const QObject *object)
Definition: kv_engine.cpp:91
void remove(const QString &tableName, const QObject *object)
Definition: kv_engine.cpp:158
PonyKVConnect(const QString &dbName)
Definition: kv_engine.cpp:16
T * search(const QString &tableName, const QString &className, const QString &key, const QString &value)
Definition: kv_engine.cpp:186
Definition: kv_engine.h:58
void insert(T *item)
Definition: kv_engine.cpp:217
QList< T * > extract()
Definition: kv_engine.cpp:228
PonyKVList(QString _dbName, QString _tableName, QString _className)
Definition: kv_engine.cpp:205
void remove(const QString &key, const QString &value)
Definition: kv_engine.cpp:223
T * extractInfo(QString key, QString value)
Definition: kv_engine.cpp:234
QString getTableName()
Definition: kv_engine.h:69