PrivMX Endpoint v2.7.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(const std::string& contextId, const std::vector<core::UserWithPubKey>& users,
56 const std::vector<core::UserWithPubKey>& managers, const core::Buffer& publicMeta,
57 const core::Buffer& privateMeta, const std::optional<core::ContainerPolicy>& policies = std::nullopt);
58
73 void updateThread(const std::string& threadId, const std::vector<core::UserWithPubKey>& users,
74 const std::vector<core::UserWithPubKey>& managers, const core::Buffer& publicMeta, const core::Buffer& privateMeta,
75 const int64_t version, const bool force, const bool forceGenerateNewKey, const std::optional<core::ContainerPolicy>& policies = std::nullopt);
76
82 void deleteThread(const std::string& threadId);
83
90 Thread getThread(const std::string& threadId);
91
99 core::PagingList<Thread> listThreads(const std::string& contextId, const core::PagingQuery& pagingQuery);
100
107 Message getMessage(const std::string& messageId);
108
116 core::PagingList<Message> listMessages(const std::string& threadId, const core::PagingQuery& pagingQuery);
117
127 std::string sendMessage(const std::string& threadId, const core::Buffer& publicMeta,
128 const core::Buffer& privateMeta, const core::Buffer& data);
129
135 void deleteMessage(const std::string& messageId);
136
145 void updateMessage(const std::string& messageId, const core::Buffer& publicMeta,
146 const core::Buffer& privateMeta, const core::Buffer& data);
147
154 std::vector<std::string> subscribeFor(const std::vector<std::string>& subscriptionQueries);
155
160 void unsubscribeFrom(const std::vector<std::string>& subscriptionIds);
161
168 std::string buildSubscriptionQuery(EventType eventType, EventSelectorType selectorType, const std::string& selectorId);
169
170private:
171 ThreadApi(const std::shared_ptr<ThreadApiImpl>& impl);
172};
173
174} // namespace thread
175} // namespace endpoint
176} // namespace privmx
177
178#endif // _PRIVMXLIB_ENDPOINT_THREAD_THREADAPI_HPP_
Definition Buffer.hpp:13
Definition Connection.hpp:22
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:40
Definition Types.hpp:81