SkyWay for Linux
読み取り中…
検索中…
一致する文字列を見つけられません
room_subscription.hpp
1//
2// room_subscription.hpp
3// skyway
4//
5// Created by Naoto Takahashi on 2023/11/21.
6// Copyright © 2023 NTT Communications. All rights reserved.
7//
8
9#ifndef SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
10#define SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP
11
12#include <skyway/core/interface/subscription.hpp>
13
14#include "skyway/room/interface/room_member.hpp"
15
16namespace skyway {
17namespace room {
18namespace interface {
19
20class RoomPublication;
21
24public:
27 public:
28 virtual ~EventListener() = default;
31 [[deprecated]] virtual void OnCanceled() {}
32
35 virtual void OnConnectionStateChanged(const core::ConnectionState state) {}
36 };
37 virtual ~RoomSubscription() = default;
39 virtual std::string Id() = 0;
41 virtual model::ContentType ContentType() = 0;
43 virtual std::unique_ptr<RoomPublication> Publication() = 0;
45 virtual std::unique_ptr<RoomMember> Subscriber() = 0;
47 virtual core::interface::SubscriptionState State() = 0;
49 virtual std::shared_ptr<core::interface::RemoteStream> Stream() = 0;
51 virtual boost::optional<std::string> PreferredEncodingId() = 0;
52
54 virtual void AddEventListener(EventListener* listener) = 0;
56 virtual void RemoveEventListener(EventListener* listener) = 0;
58 virtual void ChangePreferredEncoding(const std::string& id) = 0;
61 [[deprecated]] virtual bool Cancel() = 0;
65 [[deprecated]] virtual boost::optional<model::WebRTCStats> GetStats() = 0;
66};
67
68} // namespace interface
69} // namespace room
70} // namespace skyway
71
72#endif /* SKYWAY_ROOM_INTERFACE_ROOM_SUBSCRIPTION_HPP */
イベントリスナ
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を取得します。