9#ifndef SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
10#define SKYWAY_ROOM_INTERFACE_ROOM_PUBLICATION_HPP
12#include <skyway/core/interface/publication.hpp>
14#include "skyway/room/interface/room_member.hpp"
15#include "skyway/room/interface/room_subscription.hpp"
34 virtual void OnSubscribed(std::unique_ptr<RoomSubscription> subscription) {}
38 virtual void OnUnsubscribed(std::unique_ptr<RoomSubscription> subscription) {}
62 virtual std::string
Id() = 0;
64 virtual std::unique_ptr<RoomMember>
Publisher() = 0;
66 virtual std::vector<std::unique_ptr<RoomSubscription>>
Subscriptions() = 0;
70 virtual boost::optional<std::string>
Metadata() = 0;
74 virtual std::vector<model::Encoding>
Encodings() = 0;
76 virtual core::interface::PublicationState
State() = 0;
78 virtual std::shared_ptr<core::interface::LocalStream>
Stream() = 0;
88 virtual bool ReplaceStream(std::shared_ptr<core::interface::LocalStream> stream) = 0;
93 [[deprecated]]
virtual boost::optional<model::WebRTCStats>
GetStats(
94 const std::string& selector) = 0;
97 [[deprecated]]
virtual bool Cancel() = 0;
イベントリスナ
Definition room_publication.hpp:25
virtual void OnConnectionStateChanged(const core::ConnectionState new_state)
Publicationの接続状態が変化した後にコールされるイベント
Definition room_publication.hpp:58
virtual void OnUnsubscribed(std::unique_ptr< RoomSubscription > subscription)
このPublicationがUnsubscribeされた後に発生するイベント
Definition room_publication.hpp:38
virtual void OnSubscribed(std::unique_ptr< RoomSubscription > subscription)
このPublicationがSubscribeされた後に発生するイベント
Definition room_publication.hpp:34
virtual void OnEnabled()
Publicationが有効状態に変化した後にコールされるイベント
Definition room_publication.hpp:48
virtual void OnSubscriptionListChanged()
このPublicationに紐づくSubscriptionの数が変化した後に発生するイベント
Definition room_publication.hpp:41
virtual void OnMetadataUpdated(const std::string &metadata)
Metadataが更新された後に発生するイベント
Definition room_publication.hpp:45
virtual void OnDisabled()
Publicationが無効状態に変化した後にコールされるイベント
Definition room_publication.hpp:51
virtual void OnUnpublished()
Unpublishされた後に発生するイベント
Definition room_publication.hpp:30
virtual void OnStateChanged()
Publicationの状態(Enabled, Disabled, Canceled)が変化した後にコールされるイベント
Definition room_publication.hpp:54
RoomのPublicationを操作するインタフェース
Definition room_publication.hpp:22
virtual boost::optional< model::WebRTCStats > GetStats(const std::string &selector)=0
統計情報を取得します。
virtual std::shared_ptr< core::interface::LocalStream > Stream()=0
Publisherが持つStreamを取得します。
virtual std::unique_ptr< RoomMember > Publisher()=0
このPublicationを公開しているMemberを取得します。
virtual void UpdateEncodings(std::vector< model::Encoding > encodings)=0
エンコーディング設定を更新します。
virtual core::interface::PublicationState State()=0
State(公開状態がEnableかDisabelかCancelか)を取得します。
virtual std::vector< model::Encoding > Encodings()=0
このPublicationのエンコーディング設定の一覧を取得します。
virtual boost::optional< std::string > Metadata()=0
Metadataを取得します。
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual bool Enable()=0
Publicationの公開を開始します。disableによって停止していた場合は再開します。
virtual bool ReplaceStream(std::shared_ptr< core::interface::LocalStream > stream)=0
公開しているStreamを変更します。
virtual std::string Id()=0
Idを取得します。
virtual bool Cancel()=0
Publishを中止します。
virtual void AddEventListener(EventListener *listener)=0
イベントを購読します。
virtual std::vector< std::unique_ptr< RoomSubscription > > Subscriptions()=0
このPublicationを購読しているSubsciptionの一覧を取得します。
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のコーデック一覧を取得します。