SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
room_subscription.hpp
1//
2// © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.
3//
4
5#ifndef SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
6#define SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
7
8#include <skyway/core/interface/subscription.hpp>
9
10#include "skyway/room/interface/room_member.hpp"
11
12namespace skyway {
13namespace room {
14namespace interface {
15
16class RoomPublication;
17
20public:
23 public:
24 virtual ~EventListener() = default;
27 [[deprecated]] virtual void OnCanceled() {}
28
31 virtual void OnConnectionStateChanged(const core::ConnectionState state) {}
32
33 virtual void OnStreamAttached(std::shared_ptr<core::interface::RemoteStream> stream) {}
34 };
35 virtual ~RoomSubscription() = default;
37 virtual std::string Id() = 0;
39 virtual model::ContentType ContentType() = 0;
41 virtual std::shared_ptr<RoomPublication> Publication() = 0;
43 virtual std::shared_ptr<RoomMember> Subscriber() = 0;
45 virtual core::interface::SubscriptionState State() = 0;
47 virtual std::shared_ptr<core::interface::RemoteStream> Stream() = 0;
49 virtual std::optional<std::string> PreferredEncodingId() = 0;
50
52 virtual void AddEventListener(EventListener* listener) = 0;
54 virtual void RemoveEventListener(EventListener* listener) = 0;
56 virtual bool ChangePreferredEncoding(const std::string& id) = 0;
59 [[deprecated]] virtual bool Cancel() = 0;
63 [[deprecated]] virtual std::optional<model::WebRTCStats> GetStats() = 0;
64};
65
66} // namespace interface
67} // namespace room
68} // namespace skyway
69
70#endif /* SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP */
RoomSubscriptionの操作を行うクラス
Definition room_subscription.hpp:18
イベントリスナ
Definition room_subscription.hpp:22
virtual void OnConnectionStateChanged(const core::ConnectionState state)
Subscribe中のStream接続状態が変更された後に発生するイベント
Definition room_subscription.hpp:31
virtual void OnCanceled()
Subscribeが中止(unsubscribe)された後に発生するイベント
Definition room_subscription.hpp:27
RoomのSubscriptionを操作するインタフェース
Definition room_subscription.hpp:19
virtual std::optional< std::string > PreferredEncodingId()=0
このSubscriptionの優先エンコーディングIDを取得します。
virtual std::shared_ptr< RoomPublication > Publication()=0
このSubscriptionに紐づくPublicationを取得します。
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 bool ChangePreferredEncoding(const std::string &id)=0
受信するエンコード設定を切り替えます。
virtual std::optional< model::WebRTCStats > GetStats()=0
統計情報を取得します。
virtual model::ContentType ContentType()=0
ContentType(VideoかAudioかDataか)を取得します。
virtual std::shared_ptr< RoomMember > Subscriber()=0
このSubscriptionを購読しているMemberを取得します。
virtual void AddEventListener(EventListener *listener)=0
イベントを購読します。
virtual std::shared_ptr< core::interface::RemoteStream > Stream()=0
Publisherが持つStreamを取得します。