5#ifndef SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP
6#define SKYWAY_ROOM_INTERFACE_LOCAL_ROOM_MEMBER_HPP
8#include <skyway/core/interface/local_person.hpp>
9#include <skyway/model/domain.hpp>
11#include "skyway/room/interface/room_member.hpp"
57 model::PublicationType
type = model::PublicationType::kP2P;
91 virtual std::shared_ptr<RoomPublication>
Publish(std::shared_ptr<core::interface::LocalStream>,
94 virtual std::shared_ptr<RoomSubscription>
Subscribe(
const std::string& publication_id,
97 virtual bool Unpublish(
const std::string& publication_id) = 0;
99 virtual bool Unsubscribe(
const std::string& subscription_id) = 0;
イベントリスナ
Definition local_room_member.hpp:21
virtual void OnStreamPublished(std::shared_ptr< RoomPublication > publication)
このLocalRoomMemerがStreamをPublishした後に発生するイベント
Definition local_room_member.hpp:26
virtual void OnStreamUnpublished(std::shared_ptr< RoomPublication > publication)
このLocalRoomMemerがUnpublishした後に発生するイベント
Definition local_room_member.hpp:30
virtual void OnPublicationUnsubscribed(std::shared_ptr< RoomSubscription > subscription)
このLocalRoomMemerがUnsubscribeした後に発生するイベント
Definition local_room_member.hpp:38
virtual void OnPublicationSubscribed(std::shared_ptr< RoomSubscription > subscription)
このLocalRoomMemerがSubscribeした後に発生するイベント
Definition local_room_member.hpp:34
LocalRoomMemberの操作を行うインターフェース
Definition local_room_member.hpp:18
virtual void RemoveEventListener(EventListener *listener)=0
イベントの購読を中止します。
virtual std::shared_ptr< RoomPublication > Publish(std::shared_ptr< core::interface::LocalStream >, PublicationOptions options)=0
LocalStreamを公開します。
virtual void AddEventListener(EventListener *listener)=0
イベントの購読します。
virtual bool Unsubscribe(const std::string &subscription_id)=0
購読しているSubscriptionの購読を解除します。
virtual bool Unpublish(const std::string &publication_id)=0
公開しているPublicationを非公開にします。
virtual std::shared_ptr< RoomSubscription > Subscribe(const std::string &publication_id, SubscriptionOptions options)=0
公開されているPublicationを購読します。
イベントリスナ
Definition room_member.hpp:22
RoomMemberの操作を行うインターフェース
Definition room_member.hpp:19
PublishでPublicationに対して指定するオプション
Definition local_person.hpp:37
std::vector< model::Encoding > encodings
エンコーディング設定
Definition local_person.hpp:43
std::optional< std::string > metadata
metadata
Definition local_person.hpp:39
bool is_enabled
Publish時の公開状態
Definition local_person.hpp:45
std::vector< model::Codec > codec_capabilities
コーデック一覧
Definition local_person.hpp:41
SubscribeでSubscriptionに対して指定するオプション
Definition local_person.hpp:53
std::optional< std::string > preferred_encoding_id
優先エンコーディングID
Definition local_person.hpp:57
Publish時の設定
Definition local_room_member.hpp:42
std::vector< model::Encoding > encodings
エンコーディング一覧
Definition local_room_member.hpp:48
int max_subscribers
Subscriberの最大人数
Definition local_room_member.hpp:54
std::vector< model::Codec > codec_capabilities
コーデック一覧
Definition local_room_member.hpp:46
std::optional< std::string > metadata
Metadata
Definition local_room_member.hpp:44
model::PublicationType type
PublicationのType
Definition local_room_member.hpp:57
bool is_enabled
Publish時の公開状態
Definition local_room_member.hpp:50
Subscribe時の設定
Definition local_room_member.hpp:72
std::optional< std::string > preferred_encoding_id
Subscribe時に選択するエンコーディング設定。
Definition local_room_member.hpp:75