9#ifndef SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
10#define SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
12#include <skyway/core/interface/subscription.hpp>
14#include "skyway/room/interface/room_member.hpp"
39 virtual std::string
Id() = 0;
47 virtual core::interface::SubscriptionState
State() = 0;
49 virtual std::shared_ptr<core::interface::RemoteStream>
Stream() = 0;
61 [[deprecated]]
virtual bool Cancel() = 0;
65 [[deprecated]]
virtual boost::optional<model::WebRTCStats>
GetStats() = 0;
イベントリスナ
Definition room_subscription.hpp:26
virtual void OnConnectionStateChanged(const core::ConnectionState state)
Subscribe中のStream接続状態が変更された後に発生するイベント
Definition room_subscription.hpp:35
virtual void OnCanceled()
Subscribeが中止(unsubscribe)された後に発生するイベント
Definition room_subscription.hpp:31
RoomのSubscriptionを操作するインタフェース
Definition room_subscription.hpp:23
virtual void ChangePreferredEncoding(const std::string &id)=0
受信するエンコード設定を切り替えます。
virtual boost::optional< model::WebRTCStats > GetStats()=0
統計情報を取得します。
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual core::interface::SubscriptionState State()=0
State(公開状態がEnableかDisabelかCancelか)を取得します。
virtual bool Cancel()=0
Subscribeを中止します。
virtual std::string Id()=0
Idを取得します。
virtual std::unique_ptr< RoomMember > Subscriber()=0
このSubscriptionを購読しているMemberを取得します。
virtual model::ContentType ContentType()=0
ContentType(VideoかAudioかDataか)を取得します。
virtual std::unique_ptr< RoomPublication > Publication()=0
このSubscriptionに紐づくPublicationを取得します。
virtual boost::optional< std::string > PreferredEncodingId()=0
このSubscriptionの優先エンコーディングIDを取得します。
virtual void AddEventListener(EventListener *listener)=0
イベントを購読します。
virtual std::shared_ptr< core::interface::RemoteStream > Stream()=0
Publisherが持つStreamを取得します。