23 std::string
Id()
override;
24 std::optional<std::string>
Name()
override;
25 std::optional<std::string>
Metadata()
override;
26 core::interface::ChannelState
State()
override;
27 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
28 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
29 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
38 Room(std::shared_ptr<core::interface::Channel> core,
39 std::unique_ptr<interface::RoomDomainFactory> factory);
44 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
45 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
46 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
47 const std::string& metadata)
override;
48 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
49 const std::string& metadata)
override;
51 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
52 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
53 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
54 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
56 void OnPublicationSubscribed(
57 std::shared_ptr<core::interface::Subscription> subscription)
override;
58 void OnPublicationUnsubscribed(
59 std::shared_ptr<core::interface::Subscription> subscription)
override;
61 std::shared_ptr<core::interface::Channel> core_;
62 std::unique_ptr<interface::RoomDomainFactory> factory_;
64 std::mutex listener_mtx_;