9#ifndef SKYWAY_CORE_INTERFACE_LOCAL_PERSON_HPP_
10#define SKYWAY_CORE_INTERFACE_LOCAL_PERSON_HPP_
12#include "skyway/analytics/interface/analytics_client.hpp"
13#include "skyway/core/interface/chunk_messenger.hpp"
14#include "skyway/core/interface/local_stream.hpp"
15#include "skyway/core/interface/publication.hpp"
16#include "skyway/core/interface/remote_member.hpp"
62 virtual ChunkMessenger* Messenger()
const = 0;
64 virtual analytics::interface::AnalyticsClient* AnalyticsClient()
const = 0;
70 virtual std::shared_ptr<interface::Publication>
Publish(std::shared_ptr<LocalStream> stream,
76 virtual std::shared_ptr<interface::Subscription>
Subscribe(
const std::string& publication_id,
81 virtual bool Unpublish(
const std::string& publication_id)
const = 0;
85 virtual bool Unsubscribe(
const std::string& subscription_id)
const = 0;
90 virtual void OnPublished(std::shared_ptr<interface::Publication> publication) = 0;
91 virtual void OnUnpublished(std::shared_ptr<interface::Publication> publication) = 0;
92 virtual void OnSubscribed(std::shared_ptr<interface::Subscription> subscription, std::shared_ptr<interface::RemoteMember> publisher) = 0;
93 virtual void OnUnsubscribed(std::shared_ptr<interface::Subscription> subscription, std::shared_ptr<interface::RemoteMember> publisher) = 0;
96 virtual void OnPublicationSubscribedByRemoteMember(std::shared_ptr<interface::Subscription> subscription,
97 std::shared_ptr<interface::RemoteMember> subscriber) = 0;
98 virtual void OnPublicationUnsubscribedByRemoteMember(std::shared_ptr<interface::Subscription> subscription,
99 std::shared_ptr<interface::RemoteMember> subscriber) = 0;
103 virtual void Dispose() = 0;
イベントリスナ
Definition local_person.hpp:26
virtual void OnStreamUnpublished(std::shared_ptr< interface::Publication > publication)
このLocalPersonがUnpublishした時に発火するイベント
Definition local_person.hpp:31
virtual void OnPublicationUnsubscribed(std::shared_ptr< interface::Subscription > subscription)
このLocalPersonがUnsubscribeした時に発火するイベント
Definition local_person.hpp:36
virtual void OnStreamPublished(std::shared_ptr< interface::Publication > publication)
このLocalPersonがPublishした時に発火するイベント
Definition local_person.hpp:29
virtual void OnPublicationSubscribed(std::shared_ptr< interface::Subscription > subscription)
このLocalPersonがSubscribeした時に発火するイベント
Definition local_person.hpp:34
LocalPersonのインターフェース
Definition local_person.hpp:23
virtual bool Unsubscribe(const std::string &subscription_id) const =0
購読しているSubscriptionの購読を解除します。
virtual std::shared_ptr< interface::Publication > Publish(std::shared_ptr< LocalStream > stream, PublicationOptions options)=0
Streamを公開します。
virtual std::shared_ptr< interface::Subscription > Subscribe(const std::string &publication_id, const SubscriptionOptions &options)=0
公開されているPublicationを購読します。
virtual bool Unpublish(const std::string &publication_id) const =0
公開しているPublicationを非公開にします。
イベントリスナ
Definition member.hpp:34
LocalPersonおよびRemoteMemberの基底クラス
Definition member.hpp:31
PublishでPublicationに対して指定するオプション
Definition local_person.hpp:39
std::vector< model::Encoding > encodings
エンコーディング設定
Definition local_person.hpp:45
std::optional< std::string > metadata
metadata
Definition local_person.hpp:41
bool is_enabled
Publish時の公開状態
Definition local_person.hpp:47
std::vector< model::Codec > codec_capabilities
コーデック一覧
Definition local_person.hpp:43
SubscribeでSubscriptionに対して指定するオプション
Definition local_person.hpp:52
bool is_enabled
Subscribe時の購読状態
Definition local_person.hpp:54
std::optional< std::string > preferred_encoding_id
優先エンコーディングID
Definition local_person.hpp:56
メンバー情報
Definition domain.hpp:54