PrivMX Endpoint v2.8.0
Loading...
Searching...
No Matches
ThreadApi.hpp
1#ifndef _PRIVMXLIB_ENDPOINT_THREAD_THREADAPI_HPP_
2#define _PRIVMXLIB_ENDPOINT_THREAD_THREADAPI_HPP_
3
4#include <memory>
5#include <optional>
6#include <string>
7#include <vector>
8
9#include "privmx/endpoint/core/Connection.hpp"
10#include "privmx/endpoint/core/Types.hpp"
11#include "privmx/endpoint/thread/Types.hpp"
12#include <privmx/endpoint/core/ExtendedPointer.hpp>
13
14namespace privmx {
15namespace endpoint {
16namespace thread {
17
18class ThreadApiImpl;
19
24public:
32 static ThreadApi create(core::Connection& connetion);
33
38 ThreadApi(const ThreadApi& obj);
39 ThreadApi& operator=(const ThreadApi& obj);
40 ThreadApi(ThreadApi&& obj);
41 ~ThreadApi();
42
55 std::string createThread(
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
79 const std::string& threadId,
80 const std::vector<core::UserWithPubKey>& users,
81 const std::vector<core::UserWithPubKey>& managers,
82 const core::Buffer& publicMeta,
83 const core::Buffer& privateMeta,
84 const int64_t version,
85 const bool force,
86 const bool forceGenerateNewKey,
87 const std::optional<core::ContainerPolicy>& policies = std::nullopt
88 );
89
95 void deleteThread(const std::string& threadId);
96
103 Thread getThread(const std::string& threadId);
104
112 core::PagingList<Thread> listThreads(const std::string& contextId, const core::PagingQuery& pagingQuery);
113
120 Message getMessage(const std::string& messageId);
121
129 core::PagingList<Message> listMessages(const std::string& threadId, const core::PagingQuery& pagingQuery);
130
140 std::string sendMessage(
141 const std::string& threadId,
142 const core::Buffer& publicMeta,
143 const core::Buffer& privateMeta,
144 const core::Buffer& data
145 );
146
152 void deleteMessage(const std::string& messageId);
153
163 const std::string& messageId,
164 const core::Buffer& publicMeta,
165 const core::Buffer& privateMeta,
166 const core::Buffer& data
167 );
168
175 std::vector<std::string> subscribeFor(const std::vector<std::string>& subscriptionQueries);
176
181 void unsubscribeFrom(const std::vector<std::string>& subscriptionIds);
182
190 EventType eventType,
191 EventSelectorType selectorType,
192 const std::string& selectorId
193 );
194
195private:
196 ThreadApi(const std::shared_ptr<ThreadApiImpl>& impl);
197};
198
199} // namespace thread
200} // namespace endpoint
201} // namespace privmx
202
203#endif // _PRIVMXLIB_ENDPOINT_THREAD_THREADAPI_HPP_
Definition Buffer.hpp:13
Definition Connection.hpp:21
Definition ExtendedPointer.hpp:16
void updateMessage(const std::string &messageId, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const core::Buffer &data)
Thread getThread(const std::string &threadId)
void deleteThread(const std::string &threadId)
std::vector< std::string > subscribeFor(const std::vector< std::string > &subscriptionQueries)
static ThreadApi create(core::Connection &connetion)
core::PagingList< Message > listMessages(const std::string &threadId, const core::PagingQuery &pagingQuery)
std::string createThread(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)
core::PagingList< Thread > listThreads(const std::string &contextId, const core::PagingQuery &pagingQuery)
std::string buildSubscriptionQuery(EventType eventType, EventSelectorType selectorType, const std::string &selectorId)
void deleteMessage(const std::string &messageId)
std::string sendMessage(const std::string &threadId, const core::Buffer &publicMeta, const core::Buffer &privateMeta, const core::Buffer &data)
Message getMessage(const std::string &messageId)
void unsubscribeFrom(const std::vector< std::string > &subscriptionIds)
void updateThread(const std::string &threadId, 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:39
Definition Types.hpp:79