35 Room(std::shared_ptr<core::interface::Channel> channel,
36 std::unique_ptr<interface::RoomDomainFactory> factory);
37 interface::RoomType
Type()
override;
40 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
42 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
44 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
49 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<RoomFactory>(),
50 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
51 std::make_unique<RoomDomainFactory>());
53 static std::shared_ptr<Room>
Create();
55 static std::shared_ptr<Room>
Find(
57 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<RoomFactory>(),
58 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
59 std::make_unique<RoomDomainFactory>());
63 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<RoomFactory>(),
64 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
65 std::make_unique<RoomDomainFactory>());
70 std::shared_ptr<plugin::sfu_bot::SfuBot> GetSfuBot();
76 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
77 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
78 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
79 const std::string& metadata)
override;
80 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
81 const std::string& metadata)
override;
83 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
84 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
85 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
86 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
88 void OnPublicationSubscribed(
89 std::shared_ptr<core::interface::Subscription> subscription)
override;
90 void OnPublicationUnsubscribed(
91 std::shared_ptr<core::interface::Subscription> subscription)
override;
94 static std::shared_ptr<Room> CreateShared(
95 std::shared_ptr<core::interface::Channel> channel,
96 std::unique_ptr<interface::RoomDomainFactory> factory);
98 bool IsSfuOriginPublication(std::shared_ptr<core::interface::Publication> publication);
102 friend class RoomFactory;
static std::shared_ptr< Room > FindOrCreate(interface::RoomInitOptions options, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< RoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
Roomの検索をし、存在しなければ作成します。
static std::shared_ptr< Room > Find(interface::RoomQuery query, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< RoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
Roomの検索をします。
static std::shared_ptr< Room > Create(interface::RoomInitOptions options, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< RoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
Roomを作成します。