32 Room(std::shared_ptr<core::interface::Channel> channel,
33 std::unique_ptr<interface::RoomDomainFactory> factory);
40 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
43 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
46 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
51 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<RoomFactory>(),
52 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
53 std::make_unique<RoomDomainFactory>());
56 static std::shared_ptr<Room>
Create();
59 static std::shared_ptr<Room>
Find(
61 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<RoomFactory>(),
62 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
63 std::make_unique<RoomDomainFactory>());
68 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<RoomFactory>(),
69 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
70 std::make_unique<RoomDomainFactory>());
76 std::shared_ptr<plugin::sfu_bot::SfuBot> GetSfuBot();
82 void OnMemberListChanged()
override;
83 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
84 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
85 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
86 const std::string& metadata)
override;
87 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
88 const std::string& metadata)
override;
89 void OnPublicationListChanged()
override;
90 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
91 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
92 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
93 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
94 void OnSubscriptionListChanged()
override;
95 void OnPublicationSubscribed(
96 std::shared_ptr<core::interface::Subscription> subscription)
override;
97 void OnPublicationUnsubscribed(
98 std::shared_ptr<core::interface::Subscription> subscription)
override;
102 static std::shared_ptr<Room> CreateShared(
103 std::shared_ptr<core::interface::Channel> channel,
104 std::unique_ptr<interface::RoomDomainFactory> factory);
106 bool IsSfuOriginPublication(std::shared_ptr<core::interface::Publication> publication);
110 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を作成します。