31 P2PRoom(std::shared_ptr<core::interface::Channel> channel,
32 std::unique_ptr<interface::RoomDomainFactory> factory);
39 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
42 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
45 std::vector<std::shared_ptr<interface::RoomMember>>
Members()
override;
48 static std::shared_ptr<P2PRoom>
Create(
50 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<P2PRoomFactory>(),
51 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
52 std::make_unique<RoomDomainFactory>());
55 static std::shared_ptr<P2PRoom>
Create();
58 static std::shared_ptr<P2PRoom>
Find(
60 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<P2PRoomFactory>(),
61 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
62 std::make_unique<RoomDomainFactory>());
67 std::unique_ptr<interface::RoomFactory> room_factory = std::make_unique<P2PRoomFactory>(),
68 std::unique_ptr<interface::RoomDomainFactory> domain_factory =
69 std::make_unique<RoomDomainFactory>());
77 void OnMemberListChanged()
override;
78 void OnMemberJoined(std::shared_ptr<core::interface::Member> member)
override;
79 void OnMemberLeft(std::shared_ptr<core::interface::Member> member)
override;
80 void OnMemberMetadataUpdated(std::shared_ptr<core::interface::Member> member,
81 const std::string& metadata)
override;
82 void OnPublicationMetadataUpdated(std::shared_ptr<core::interface::Publication> publication,
83 const std::string& metadata)
override;
84 void OnPublicationListChanged()
override;
85 void OnStreamPublished(std::shared_ptr<core::interface::Publication> publication)
override;
86 void OnStreamUnpublished(std::shared_ptr<core::interface::Publication> publication)
override;
87 void OnPublicationEnabled(std::shared_ptr<core::interface::Publication> publication)
override;
88 void OnPublicationDisabled(std::shared_ptr<core::interface::Publication> publication)
override;
89 void OnSubscriptionListChanged()
override;
90 void OnPublicationSubscribed(
91 std::shared_ptr<core::interface::Subscription> subscription)
override;
92 void OnPublicationUnsubscribed(
93 std::shared_ptr<core::interface::Subscription> subscription)
override;
97 static std::shared_ptr<P2PRoom> CreateShared(
98 std::shared_ptr<core::interface::Channel> channel,
99 std::unique_ptr<interface::RoomDomainFactory> factory);
103 friend class P2PRoomFactory;
104 friend class P2PRoomTest;
105 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の検索をし、存在しなければ作成します。