33 SFURoom(std::shared_ptr<core::interface::Channel> channel,
34 std::unique_ptr<interface::RoomDomainFactory> factory);
41 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
44 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
47 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
50 static std::shared_ptr<SFURoom>
Create(
52 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<SFURoomFactory>(),
53 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
54 std::make_unique<RoomDomainFactory>());
57 static std::shared_ptr<SFURoom>
Create();
60 static std::shared_ptr<SFURoom>
Find(
62 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<SFURoomFactory>(),
63 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
64 std::make_unique<RoomDomainFactory>());
69 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<SFURoomFactory>(),
70 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
71 std::make_unique<RoomDomainFactory>());
77 std::shared_ptr<plugin::sfu_bot::SfuBot> GetSFUBot();
83 void OnMemberListChanged()
override;
84 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
85 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
86 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
87 const std::string& metadata)
override;
88 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
89 const std::string& metadata)
override;
90 void OnPublicationListChanged()
override;
91 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
92 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
93 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
94 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
95 void OnSubscriptionListChanged()
override;
96 void OnPublicationSubscribed(
97 std::shared_ptr<core::interface::Subscription> subscription)
override;
98 void OnPublicationUnsubscribed(
99 std::shared_ptr<core::interface::Subscription> subscription)
override;
103 static std::shared_ptr<SFURoom> CreateShared(
104 std::shared_ptr<core::interface::Channel> channel,
105 std::unique_ptr<interface::RoomDomainFactory> factory);
109 friend class SFURoomFactory;
110 friend class SFURoomTest;
111 friend class LocalSFURoomMemberTest;
static std::shared_ptr< SFURoom > Create(interface::RoomInitOptions options, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< SFURoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
SFURoomを作成します。
static std::shared_ptr< SFURoom > FindOrCreate(interface::RoomInitOptions options, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< SFURoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
SFURoomの検索をし、存在しなければ作成します。
static std::shared_ptr< SFURoom > Find(interface::RoomQuery query, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< SFURoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
SFURoomの検索をします。