-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcouchdb.h
88 lines (68 loc) · 3.66 KB
/
couchdb.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#ifndef COUCHDB_H
#define COUCHDB_H
#include <QObject>
#include <QNetworkReply>
#include "couchdbenums.h"
#include "couchdbresponse.h"
class QQmlEngine;
class QJSEngine;
class CouchDBListener;
class CouchDBQuery;
class CouchDBServer;
class CouchDBPrivate;
class CouchDB : public QObject
{
Q_OBJECT
public:
explicit CouchDB(QObject *parent = 0);
virtual ~CouchDB();
static void declareQML();
CouchDBServer *server() const;
void setServer(CouchDBServer *server);
void setServerConfiguration(const QString& url, const int& port, const QString& username = "", const QString& password = "");
signals:
void installationChecked(const CouchDBResponse& response);
void sessionStarted(const CouchDBResponse& response);
void sessionEnded(const CouchDBResponse& response);
void databasesListed(const CouchDBResponse& response);
void databaseCreated(const CouchDBResponse& response);
void databaseDeleted(const CouchDBResponse& response);
void documentsListed(const CouchDBResponse& response);
void revisionRetrieved(const CouchDBResponse& response);
void documentRetrieved(const CouchDBResponse& response);
void documentUpdated(const CouchDBResponse& response);
void documentDeleted(const CouchDBResponse& response);
void attachmentUploaded(const CouchDBResponse& response);
void attachmentDeleted(const CouchDBResponse& response);
void databaseReplicated(const CouchDBResponse& response);
public slots:
Q_INVOKABLE void checkInstallation();
Q_INVOKABLE void startSession(const QString& username, const QString& password);
Q_INVOKABLE void endSession();
Q_INVOKABLE void listDatabases();
Q_INVOKABLE void createDatabase(const QString& database);
Q_INVOKABLE void deleteDatabase(const QString& database);
Q_INVOKABLE void listDocuments(const QString& database);
Q_INVOKABLE void retrieveRevision(const QString& database, const QString& documentID);
Q_INVOKABLE void retrieveDocument(const QString& database, const QString& documentID);
Q_INVOKABLE void updateDocument(const QString& database, const QString& documentID, QByteArray document);
Q_INVOKABLE void deleteDocument(const QString& database, const QString& documentID, const QString& revision);
Q_INVOKABLE void uploadAttachment(const QString& database, const QString& documentID, const QString &attachmentName, QByteArray attachment,
QString mimeType, const QString &revision);
Q_INVOKABLE void deleteAttachment(const QString& database, const QString& documentID, const QString &attachmentName, const QString &revision);
Q_INVOKABLE void replicateDatabaseFrom(CouchDBServer *sourceServer, const QString& sourceDatabase, const QString& targetDatabase,
const bool& createTarget, const bool& continuous, const bool& cancel = false);
Q_INVOKABLE void replicateDatabaseTo(CouchDBServer *targetServer, const QString& sourceDatabase, const QString& targetDatabase,
const bool& createTarget, const bool& continuous, const bool& cancel = false);
Q_INVOKABLE CouchDBListener* createListener(const QString& database, const QString& documentID);
private slots:
void queryFinished();
void queryTimeout();
protected:
void executeQuery(CouchDBQuery *query);
void replicateDatabase(const QString& source, const QString& target, const QString &database, const bool& createTarget, const bool& continuous, const bool& cancel = false);
private:
Q_DECLARE_PRIVATE(CouchDB)
CouchDBPrivate * const d_ptr;
};
#endif // COUCHDB_H