9#ifndef SKYWAY_ROOM_ROOM_SUBSCRIPTION_HPP
10#define SKYWAY_ROOM_ROOM_SUBSCRIPTION_HPP
12#include <skyway/core/interface/subscription.hpp>
14#include "skyway/room/interface/room_domain_factory.hpp"
15#include "skyway/room/interface/room_subscription.hpp"
25 interface::RoomDomainFactory* factory);
27 std::string
Id()
override;
29 std::shared_ptr<interface::RoomPublication>
Publication()
override;
30 std::shared_ptr<interface::RoomMember>
Subscriber()
override;
31 core::interface::SubscriptionState
State()
override;
32 std::shared_ptr<core::interface::RemoteStream>
Stream()
override;
39 std::optional<model::WebRTCStats>
GetStats()
override;
43 void OnCanceled()
override;
46 void OnConnectionStateChanged(
const core::ConnectionState state)
override;
48 std::shared_ptr<core::interface::Subscription> core_;
49 interface::RoomDomainFactory* factory_;
50 std::mutex listener_mtx_;
イベントリスナ
Definition subscription.hpp:34
RoomSubscriptionの操作を行うクラス
Definition room_subscription.hpp:22
std::shared_ptr< interface::RoomMember > Subscriber() override
このSubscriptionを購読しているMemberを取得します。
void AddEventListener(interface::RoomSubscription::EventListener *listener) override
イベントを購読します。
void RemoveEventListener(interface::RoomSubscription::EventListener *listener) override
イベントの購読を中止します。
std::string Id() override
Idを取得します。
model::ContentType ContentType() override
ContentType(VideoかAudioかDataか)を取得します。
std::shared_ptr< core::interface::RemoteStream > Stream() override
Publisherが持つStreamを取得します。
std::optional< model::WebRTCStats > GetStats() override
統計情報を取得します。
bool ChangePreferredEncoding(const std::string &id) override
受信するエンコード設定を切り替えます。
std::shared_ptr< interface::RoomPublication > Publication() override
このSubscriptionに紐づくPublicationを取得します。
bool Cancel() override
Subscribeを中止します。
std::optional< std::string > PreferredEncodingId() override
このSubscriptionの優先エンコーディングIDを取得します。
core::interface::SubscriptionState State() override
State(公開状態がEnableかDisabelかCancelか)を取得します。
イベントリスナ
Definition room_subscription.hpp:26
RoomのSubscriptionを操作するインタフェース
Definition room_subscription.hpp:23