36 SFURoom(std::shared_ptr<core::interface::Channel> channel,
37 std::unique_ptr<interface::RoomDomainFactory> factory);
38 interface::RoomType
Type()
override;
41 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
43 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
45 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
48 static std::shared_ptr<SFURoom>
Create(
50 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<SFURoomFactory>(),
51 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
52 std::make_unique<RoomDomainFactory>());
54 static std::shared_ptr<SFURoom>
Create();
56 static std::shared_ptr<SFURoom>
Find(
58 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<SFURoomFactory>(),
59 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
60 std::make_unique<RoomDomainFactory>());
64 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<SFURoomFactory>(),
65 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
66 std::make_unique<RoomDomainFactory>());
71 std::shared_ptr<plugin::sfu_bot::SfuBot> GetSFUBot();
77 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
78 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
79 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
80 const std::string& metadata)
override;
81 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
82 const std::string& metadata)
override;
84 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
85 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
86 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
87 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
89 void OnPublicationSubscribed(
90 std::shared_ptr<core::interface::Subscription> subscription)
override;
91 void OnPublicationUnsubscribed(
92 std::shared_ptr<core::interface::Subscription> subscription)
override;
95 static std::shared_ptr<SFURoom> CreateShared(
96 std::shared_ptr<core::interface::Channel> channel,
97 std::unique_ptr<interface::RoomDomainFactory> factory);
101 friend class SFURoomFactory;
102 friend class SFURoomTest;
103 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の検索をします。