8 #pragma once // NOLINT(build/header_guard)
9 #include "AgoraRefPtr.h"
10 #include "AgoraBase.h"
12 #include <api/aosl_ref.h>
17 enum SyncClientError {
20 kConnectSyncFailed = -2,
21 kConnectDatabaseFailed = -3,
22 kDisconnectDatabaseFailed = -4,
23 kDatabaseNotConnected = -5,
24 kCreateCollectionFailed = -6,
25 kCollectionNotCreated = -7,
26 kCollectionExisted = -8,
29 kQueryDocFailed = -11,
33 typedef void(*syncClientCallback)(SyncClientError,
void*);
34 typedef void(*dataBaseOpCallback)(SyncClientError,
const char*,
void*);
35 typedef void(*collectionOpCallback)(SyncClientError,
const char*,
const char*,
void*);
36 typedef void(*queryDocCallback)(SyncClientError error,
const char* resultJson,
size_t count,
bool more,
void* userData);
47 kTransactionBegin = 6,
62 virtual void onCollectionEvent(
const char* previousJson,
const char* curJson,
const char* collection,
const char* docName,
64 virtual void onDatabaseEvent(
const char* databaseName, SyncClientError error) = 0;
65 virtual void onDataException(
const char* databaseName,
const char* collectionName) = 0;
75 uint32_t shakehand_interval;
77 uint32_t connection_timeout;
79 uint32_t compact_interval;
80 SyncConfig() : shakehand_interval(1), connection_timeout(10), compact_interval(3600 * 1000) {}
91 virtual int32_t login(
const char* token,
const char* channelName, user_id_t userId, syncClientCallback callback,
void* userData, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
92 virtual int32_t queryDoc(
const char* database,
const char* coll,
const char* range_start,
const char* range_end, int64_t limits,
bool doc_only,
bool count_only, queryDocCallback callback,
void* userData, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
93 virtual int32_t logout(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
94 virtual int32_t renewToken(
const char* token, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
97 virtual int32_t connectDatabase(
const char* database, dataBaseOpCallback callback,
void* userData, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
98 virtual int32_t disconnectDatabase(
const char* database,
99 dataBaseOpCallback callback,
void* userData, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
100 virtual int32_t createCollection(
const char* database,
const char* collection,
101 const char** readable,
int readSize,
102 collectionOpCallback callback,
void* userData, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
103 virtual int32_t deleteCollection(
const char* database,
const char* collection,
104 collectionOpCallback callback,
void* userData, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
107 virtual int32_t subscribe(
const char* database,
const char* collection,
109 virtual int32_t unsubscribe(
const char* database,
const char* collection, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
110 virtual int32_t putDoc(
const char* database,
const char* collection,
111 const char* docName, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
112 virtual int32_t deleteDoc(
const char* database,
const char* collection,
113 const char* docName, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
114 virtual int32_t getDocs(
const char* database,
const char* collection,
118 virtual int32_t putDocValue(
const char* database,
const char* collection,
119 const char* docName,
const char* jsonValue, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
120 virtual int32_t updateDocValue(
const char* database,
const char* collection,
121 const char* docName,
const char* path,
122 const char* jsonValue, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
123 virtual int32_t deleteDocValue(
const char* database,
const char* collection,
124 const char* docName,
const char* path, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
125 virtual int32_t deleteDocValues(
const char* database,
const char* collection,
const char* docName,
126 const char** path, uint32_t pathSize,
127 aosl_ref_t ares = AOSL_REF_INVALID) = 0;
128 virtual int32_t getDocValue(
const char* database,
const char* collection,
130 virtual int32_t hasPath(
const char* database,
const char* collection,
131 const char* docName,
const char* path,
bool& result) = 0;
132 virtual int32_t keepAliveDoc(
const char* database,
const char* collection,
133 const char* docName, uint32_t ttl, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
136 virtual int32_t shakehand(aosl_ref_t ares = AOSL_REF_INVALID) = 0;