34 P2PRoom(std::shared_ptr<core::interface::Channel> channel,
35 std::unique_ptr<interface::RoomDomainFactory> factory);
36 interface::RoomType
Type()
override;
38 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
40 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
42 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
45 static std::shared_ptr<P2PRoom>
Create(
47 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<P2PRoomFactory>(),
48 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
49 std::make_unique<RoomDomainFactory>());
51 static std::shared_ptr<P2PRoom>
Create();
53 static std::shared_ptr<P2PRoom>
Find(
55 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<P2PRoomFactory>(),
56 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
57 std::make_unique<RoomDomainFactory>());
61 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<P2PRoomFactory>(),
62 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
63 std::make_unique<RoomDomainFactory>());
70 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
71 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
72 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
73 const std::string& metadata)
override;
74 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
75 const std::string& metadata)
override;
77 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
78 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
79 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
80 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
82 void OnPublicationSubscribed(
83 std::shared_ptr<core::interface::Subscription> subscription)
override;
84 void OnPublicationUnsubscribed(
85 std::shared_ptr<core::interface::Subscription> subscription)
override;
88 static std::shared_ptr<P2PRoom> CreateShared(
89 std::shared_ptr<core::interface::Channel> channel,
90 std::unique_ptr<interface::RoomDomainFactory> factory);
94 friend class P2PRoomFactory;
95 friend class P2PRoomTest;
96 friend class LocalP2PRoomMemberTest;
static std::shared_ptr< P2PRoom > Find(interface::RoomQuery query, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< P2PRoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
P2PRoomの検索をします。
static std::shared_ptr< P2PRoom > Create(interface::RoomInitOptions options, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< P2PRoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
P2PRoomを作成します。
static std::shared_ptr< P2PRoom > FindOrCreate(interface::RoomInitOptions options, std::unique_ptr< interface::RoomFactory > room_factory=std::make_unique< P2PRoomFactory >(), std::unique_ptr< interface::RoomDomainFactory > domain_factory=std::make_unique< RoomDomainFactory >())
P2PRoomの検索をし、存在しなければ作成します。