12#ifndef _PRIVMXLIB_ENDPOINT_STREAM_STREAMAPILOW_HPP_
13#define _PRIVMXLIB_ENDPOINT_STREAM_STREAMAPILOW_HPP_
15#include "privmx/endpoint/stream/Types.hpp"
16#include "privmx/endpoint/stream/WebRTCInterface.hpp"
19#include <privmx/endpoint/core/Connection.hpp>
20#include <privmx/endpoint/core/ExtendedPointer.hpp>
21#include <privmx/endpoint/core/Types.hpp>
29class StreamApiLowImpl;
90 const std::string& contextId,
91 const std::vector<core::UserWithPubKey>& users,
92 const std::vector<core::UserWithPubKey>& managers,
95 const std::optional<core::ContainerPolicyWithoutItem>& policies,
96 const std::optional<int64_t>& emptyRoomTtl = std::nullopt
114 const std::string& streamRoomId,
115 const std::vector<core::UserWithPubKey>& users,
116 const std::vector<core::UserWithPubKey>& managers,
119 const int64_t version,
121 const bool forceGenerateNewKey,
122 const std::optional<core::ContainerPolicyWithoutItem>& policies
161 std::vector<StreamInfo>
listStreams(
const std::string& streamRoomId);
185 std::vector<std::string>
subscribeFor(
const std::vector<std::string>& subscriptionQueries);
208 EventSelectorType selectorType,
209 const std::string& selectorId
221 void trickle(
const int64_t sessionId,
const std::string& candidateAsJson);
246 const std::string& streamRoomId,
247 std::shared_ptr<WebRTCInterface> webRtc
329 const std::string& streamRoomId,
330 const std::vector<StreamSubscription>& subscriptions
344 const SubscriberStreamHandle& subscriptionHandle,
345 const std::vector<StreamSubscription>& subscriptionsToAdd,
346 const std::vector<StreamSubscription>& subscriptionsToRemove
387 const std::string& streamRoomId,
388 const std::string& remoteStreamId,
393 StreamApiLow(
const std::shared_ptr<StreamApiLowImpl>& impl);
Definition Connection.hpp:21
Definition ExtendedPointer.hpp:16
StreamPublishResult publishStream(const StreamHandle &streamHandle)
void removeStream(const StreamHandle &streamHandle)
std::vector< StreamInfo > listStreams(const std::string &streamRoomId)
core::Buffer encryptDataChannelMessage(const std::string &streamRoomId, const DataChannelMessage &plainMessage)
static StreamApiLow create(const core::Connection &connection)
std::vector< TurnCredentials > getTurnCredentials()
std::vector< StreamSubscriber > listStreamRoomParticipants(const std::string &streamRoomId)
void joinStreamRoom(const std::string &streamRoomId, std::shared_ptr< WebRTCInterface > webRtc)
void updateSubscriberStream(const SubscriberStreamHandle &subscriptionHandle, const std::vector< StreamSubscription > &subscriptionsToAdd, const std::vector< StreamSubscription > &subscriptionsToRemove)
StreamRoom getStreamRoom(const std::string &streamRoomId)
void removeSubscriberStream(const SubscriberStreamHandle &subscriptionHandle)
void updateStreamRoom(const std::string &streamRoomId, 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::ContainerPolicyWithoutItem > &policies)
StreamHandle createStream(const std::string &streamRoomId)
DecryptedDataChannelMessage decryptDataChannelMessage(const std::string &streamRoomId, const std::string &remoteStreamId, const core::Buffer &encryptedData)
void leaveStreamRoom(const std::string &streamRoomId)
std::string createStreamRoom(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::ContainerPolicyWithoutItem > &policies, const std::optional< int64_t > &emptyRoomTtl=std::nullopt)
std::string buildSubscriptionQuery(EventType eventType, EventSelectorType selectorType, const std::string &selectorId)
SubscriberStreamHandle createSubscriberStream(const std::string &streamRoomId, const std::vector< StreamSubscription > &subscriptions)
void trickle(const int64_t sessionId, const std::string &candidateAsJson)
core::PagingList< StreamRoom > listStreamRooms(const std::string &contextId, const core::PagingQuery &query)
void deleteStreamRoom(const std::string &streamRoomId)
void unsubscribeFrom(const std::vector< std::string > &subscriptionIds)
StreamPublishResult updateStream(const StreamHandle &streamHandle)
std::vector< std::string > subscribeFor(const std::vector< std::string > &subscriptionQueries)
void setNewOfferOnReconfigure(const int64_t sessionId, const SdpWithTypeModel &sdp)