SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
room_publication.hpp
1//
2// © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.
3//
4
5#ifndef SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
6#define SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
7
8#include <skyway/core/interface/publication.hpp>
9
10#include "skyway/room/interface/room_member.hpp"
11#include "skyway/room/interface/room_subscription.hpp"
12
13namespace skyway {
14namespace room {
15namespace interface {
16
19public:
22 public:
23 virtual ~EventListener() = default;
26 [[deprecated]] virtual void OnUnpublished() {}
27
30 virtual void OnSubscribed(std::shared_ptr<RoomSubscription> subscription) {}
31
34 virtual void OnUnsubscribed(std::shared_ptr<RoomSubscription> subscription) {}
35
37 virtual void OnSubscriptionListChanged() {}
38
41 virtual void OnMetadataUpdated(const std::string& metadata) {}
42
44 virtual void OnEnabled() {}
45
47 virtual void OnDisabled() {}
48
50 virtual void OnStateChanged() {}
51
54 virtual void OnConnectionStateChanged(const core::ConnectionState new_state) {}
55 };
56 virtual ~RoomPublication() = default;
58 virtual std::string Id() = 0;
60 virtual std::shared_ptr<RoomMember> Publisher() = 0;
62 virtual std::vector<std::shared_ptr<RoomSubscription>> Subscriptions() = 0;
64 virtual model::ContentType ContentType() = 0;
66 virtual std::optional<std::string> Metadata() = 0;
68 virtual std::vector<model::Codec> CodecCapabilities() = 0;
70 virtual std::vector<model::Encoding> Encodings() = 0;
72 virtual core::interface::PublicationState State() = 0;
74 virtual std::shared_ptr<core::interface::LocalStream> Stream() = 0;
76 virtual void AddEventListener(EventListener* listener) = 0;
78 virtual void RemoveEventListener(EventListener* listener) = 0;
80 virtual bool UpdateMetadata(const std::string& metadata) = 0;
84 virtual bool UpdateEncodings(std::vector<model::Encoding> encodings) = 0;
86 virtual bool ReplaceStream(std::shared_ptr<core::interface::LocalStream> stream) = 0;
91 [[deprecated]] virtual std::optional<model::WebRTCStats> GetStats(
92 const std::string& selector) = 0;
95 [[deprecated]] virtual bool Cancel() = 0;
97 virtual bool Enable() = 0;
99 virtual bool Disable() = 0;
100};
101
102} // namespace interface
103} // namespace room
104} // namespace skyway
105
106#endif /* SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP */
イベントリスナ
Definition room_publication.hpp:21
virtual void OnConnectionStateChanged(const core::ConnectionState new_state)
Publicationの接続状態が変化した後にコールされるイベント
Definition room_publication.hpp:54
virtual void OnSubscribed(std::shared_ptr< RoomSubscription > subscription)
このPublicationがSubscribeされた後に発生するイベント
Definition room_publication.hpp:30
virtual void OnEnabled()
Publicationが有効状態に変化した後にコールされるイベント
Definition room_publication.hpp:44
virtual void OnSubscriptionListChanged()
このPublicationに紐づくSubscriptionの数が変化した後に発生するイベント
Definition room_publication.hpp:37
virtual void OnUnsubscribed(std::shared_ptr< RoomSubscription > subscription)
このPublicationがUnsubscribeされた後に発生するイベント
Definition room_publication.hpp:34
virtual void OnMetadataUpdated(const std::string &metadata)
Metadataが更新された後に発生するイベント
Definition room_publication.hpp:41
virtual void OnDisabled()
Publicationが無効状態に変化した後にコールされるイベント
Definition room_publication.hpp:47
virtual void OnUnpublished()
Unpublishされた後に発生するイベント
Definition room_publication.hpp:26
virtual void OnStateChanged()
Publicationの状態(Enabled, Disabled, Canceled)が変化した後にコールされるイベント
Definition room_publication.hpp:50
RoomのPublicationを操作するインタフェース
Definition room_publication.hpp:18
virtual bool UpdateEncodings(std::vector< model::Encoding > encodings)=0
エンコーディング設定を更新します。
virtual std::shared_ptr< core::interface::LocalStream > Stream()=0
Publisherが持つStreamを取得します。
virtual std::shared_ptr< RoomMember > Publisher()=0
このPublicationを公開しているMemberを取得します。
virtual std::optional< std::string > Metadata()=0
Metadataを取得します。
virtual core::interface::PublicationState State()=0
State(公開状態がEnableかDisabelかCancelか)を取得します。
virtual std::vector< model::Encoding > Encodings()=0
このPublicationのエンコーディング設定の一覧を取得します。
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual bool Enable()=0
Publicationの公開を開始します。disableによって停止していた場合は再開します。
virtual std::vector< std::shared_ptr< RoomSubscription > > Subscriptions()=0
このPublicationを購読しているSubsciptionの一覧を取得します。
virtual bool ReplaceStream(std::shared_ptr< core::interface::LocalStream > stream)=0
公開しているStreamを変更します。
virtual std::optional< model::WebRTCStats > GetStats(const std::string &selector)=0
統計情報を取得します。
virtual std::string Id()=0
Idを取得します。
virtual bool Cancel()=0
Publishを中止します。
virtual void AddEventListener(EventListener *listener)=0
イベントを購読します。
virtual model::ContentType ContentType()=0
ContentType(VideoかAudioかDataか)を取得します。
virtual bool UpdateMetadata(const std::string &metadata)=0
Metadataを更新します。
virtual bool Disable()=0
Publicationの公開を一時停止します。
virtual std::vector< model::Codec > CodecCapabilities()=0
このPublicationのコーデック一覧を取得します。