26 std::string
Id()
override;
27 std::optional<std::string>
Name()
override;
28 std::optional<std::string>
Metadata()
override;
29 core::interface::ChannelState
State()
override;
30 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
31 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
32 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
41 std::shared_ptr<interface::RoomDomainCacheManager<interface::RoomPublication>>
42 GetRoomPublicationCacheManager()
override;
43 std::shared_ptr<interface::RoomDomainCacheManager<interface::RoomSubscription>>
44 GetRoomSubscriptionCacheManager()
override;
45 std::shared_ptr<interface::RoomDomainCacheManager<interface::LocalRoomMember>>
46 GetLocalRoomMemberCacheManager()
override;
47 std::shared_ptr<interface::RoomDomainCacheManager<interface::RemoteRoomMember>>
48 GetRemoteRoomMemberCacheManager()
override;
52 Room(std::shared_ptr<core::interface::Channel> core,
53 std::unique_ptr<interface::RoomDomainFactory> factory,
54 std::shared_ptr<interface::RoomDomainCacheManager<interface::RoomPublication>>
55 room_publication_cache_manager,
56 std::shared_ptr<interface::RoomDomainCacheManager<interface::RoomSubscription>>
57 room_subscription_cache_manager,
58 std::shared_ptr<interface::RoomDomainCacheManager<interface::LocalRoomMember>>
59 local_room_member_cache_manager,
60 std::shared_ptr<interface::RoomDomainCacheManager<interface::RemoteRoomMember>>
61 remote_room_member_cache_manager);
67 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
68 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
69 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
70 const std::string& metadata)
override;
71 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
72 const std::string& metadata)
override;
74 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
75 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
76 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
77 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
79 void OnPublicationSubscribed(
80 std::shared_ptr<core::interface::Subscription> subscription)
override;
81 void OnPublicationUnsubscribed(
82 std::shared_ptr<core::interface::Subscription> subscription)
override;
84 std::shared_ptr<core::interface::Channel> core_;
85 std::unique_ptr<interface::RoomDomainFactory> factory_;
87 std::mutex listener_mtx_;
91 const std::shared_ptr<interface::RoomDomainCacheManager<interface::RoomPublication>>
92 room_publication_cache_manager_;
93 const std::shared_ptr<interface::RoomDomainCacheManager<interface::RoomSubscription>>
94 room_subscription_cache_manager_;
95 const std::shared_ptr<interface::RoomDomainCacheManager<interface::LocalRoomMember>>
96 local_room_member_cache_manager_;
97 const std::shared_ptr<interface::RoomDomainCacheManager<interface::RemoteRoomMember>>
98 remote_room_member_cache_manager_;