PrivMX Endpoint v2.8.0
Loading...
Searching...
No Matches
KvdbApi.hpp
1#ifndef _PRIVMXLIB_ENDPOINT_KVDB_KVDBAPI_HPP_
2#define _PRIVMXLIB_ENDPOINT_KVDB_KVDBAPI_HPP_
3
4#include <map>
5#include <memory>
6#include <optional>
7#include <string>
8#include <vector>
9
10#include "privmx/endpoint/core/Connection.hpp"
11#include "privmx/endpoint/core/Types.hpp"
12#include "privmx/endpoint/kvdb/Types.hpp"
13#include <privmx/endpoint/core/ExtendedPointer.hpp>
14
15namespace privmx {
16namespace endpoint {
17namespace kvdb {
18
19class KvdbApiImpl;
20
25public:
33 static KvdbApi create(core::Connection& connection);
34
39 KvdbApi(const KvdbApi& obj);
40 KvdbApi& operator=(const KvdbApi& obj);
41 KvdbApi(KvdbApi&& obj);
42 ~KvdbApi();
43
55 std::string createKvdb(
56 const std::string& contextId,
57 const std::vector<core::UserWithPubKey>& users,
58 const std::vector<core::UserWithPubKey>& managers,
59 const core::Buffer& publicMeta,
60 const core::Buffer& privateMeta,
61 const std::optional<core::ContainerPolicy>& policies = std::nullopt
62 );
63
78 const std::string& kvdbId,
79 const std::vector<core::UserWithPubKey>& users,
80 const std::vector<core::UserWithPubKey>& managers,
81 const core::Buffer& publicMeta,
82 const core::Buffer& privateMeta,
83 const int64_t version,
84 const bool force,
85 const bool forceGenerateNewKey,
86 const std::optional<core::ContainerPolicy>& policies = std::nullopt
87 );
88
94 void deleteKvdb(const std::string& kvdbId);
95
102 Kvdb getKvdb(const std::string& kvdbId);
103
111 core::PagingList<Kvdb> listKvdbs(const std::string& contextId, const core::PagingQuery& pagingQuery);
112
120 KvdbEntry getEntry(const std::string& kvdbId, const std::string& key);
121
129 bool hasEntry(const std::string& kvdbId, const std::string& key);
130
138 core::PagingList<std::string> listEntriesKeys(const std::string& kvdbId, const core::PagingQuery& pagingQuery);
139
147 core::PagingList<KvdbEntry> listEntries(const std::string& kvdbId, const core::PagingQuery& pagingQuery);
148
158 const std::string& kvdbId,
159 const std::string& key,
160 const core::Buffer& publicMeta,
161 const core::Buffer& privateMeta,
162 const core::Buffer& data,
163 int64_t version = 0
164 );
165
172 void deleteEntry(const std::string& kvdbId, const std::string& key);
173
181 std::map<std::string, bool> deleteEntries(const std::string& kvdbId, const std::vector<std::string>& keys);
182
189 std::vector<std::string> subscribeFor(const std::vector<std::string>& subscriptionQueries);
190
195 void unsubscribeFrom(const std::vector<std::string>& subscriptionIds);
196
204 EventType eventType,
205 EventSelectorType selectorType,
206 const std::string& selectorId
207 );
208
216 EventType eventType,
217 const std::string& kvdbId,
218 const std::string& kvdbEntryKey
219 );
220
221private:
222 KvdbApi(const std::shared_ptr<KvdbApiImpl>& impl);
223};
224
225} // namespace kvdb
226} // namespace endpoint
227} // namespace privmx
228
229#endif // _PRIVMXLIB_ENDPOINT_KVDB_KVDBAPI_HPP_
Definition Buffer.hpp:13
Definition Connection.hpp:21
Definition ExtendedPointer.hpp:16
std::string createKvdb(const std::string &contextId, const std::vector< core::UserWithPubKey > &users, const std::vector< core::UserWithPubKey > &managers, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const std::optional< core::ContainerPolicy > &policies=std::nullopt)
bool hasEntry(const std::string &kvdbId, const std::string &key)
std::string buildSubscriptionQuery(EventType eventType, EventSelectorType selectorType, const std::string &selectorId)
KvdbEntry getEntry(const std::string &kvdbId, const std::string &key)
core::PagingList< KvdbEntry > listEntries(const std::string &kvdbId, const core::PagingQuery &pagingQuery)
std::vector< std::string > subscribeFor(const std::vector< std::string > &subscriptionQueries)
void setEntry(const std::string &kvdbId, const std::string &key, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const core::Buffer &data, int64_t version=0)
void unsubscribeFrom(const std::vector< std::string > &subscriptionIds)
core::PagingList< Kvdb > listKvdbs(const std::string &contextId, const core::PagingQuery &pagingQuery)
void deleteEntry(const std::string &kvdbId, const std::string &key)
core::PagingList< std::string > listEntriesKeys(const std::string &kvdbId, const core::PagingQuery &pagingQuery)
std::string buildSubscriptionQueryForSelectedEntry(EventType eventType, const std::string &kvdbId, const std::string &kvdbEntryKey)
static KvdbApi create(core::Connection &connection)
Kvdb getKvdb(const std::string &kvdbId)
void deleteKvdb(const std::string &kvdbId)
std::map< std::string, bool > deleteEntries(const std::string &kvdbId, const std::vector< std::string > &keys)
void updateKvdb(const std::string &kvdbId, const std::vector< core::UserWithPubKey > &users, const std::vector< core::UserWithPubKey > &managers, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const int64_t version, const bool force, const bool forceGenerateNewKey, const std::optional< core::ContainerPolicy > &policies=std::nullopt)
Definition Types.hpp:16
Definition Types.hpp:125
Definition Types.hpp:14