19 interface::RoomDomainFactory* factory);
23 std::string
Id()
override;
25 std::shared_ptr<interface::RoomPublication>
Publication()
override;
26 std::shared_ptr<interface::RoomMember>
Subscriber()
override;
28 std::shared_ptr<media::stream::interface::remote::RemoteStream>
Stream()
override;
34 std::optional<WebRTCStats>
GetStats()
override;
37 class CoreEventListenerAdapter :
public core::interface::Subscription::EventListener {
41 void OnConnectionStateChanged(
const core::ConnectionState state);
42 void OnStreamAttached(std::shared_ptr<core::interface::RemoteStream> stream);
50 void OnConnectionStateChanged(
const core::ConnectionState state);
51 void OnStreamAttached(std::shared_ptr<core::interface::RemoteStream> stream);
52 SubscriptionState ConvertToPlatformSubscriptionState(core::interface::SubscriptionState state);
54 std::mutex stream_mtx_;
55 std::shared_ptr<media::stream::interface::remote::RemoteStream> stream_;
57 std::shared_ptr<core::interface::Subscription> core_;
58 interface::RoomDomainFactory* factory_;
59 std::unique_ptr<CoreEventListenerAdapter> core_event_listener_adapter_;
60 std::mutex listener_mtx_;