SkyWay Linux SDK
読み取り中…
検索中…
一致する文字列を見つけられません
room_domain_factory.hpp
1//
2// © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.
3//
4
5#ifndef SKYWAY_ROOM_ABSTRACT_ROOM_DOMAIN_FACTORY_HPP
6#define SKYWAY_ROOM_ABSTRACT_ROOM_DOMAIN_FACTORY_HPP
7
8#include "skyway/room/interface/room_domain_factory.hpp"
9
10namespace skyway {
11namespace room {
12namespace abstract {
13
14class RoomDomainFactory : public interface::RoomDomainFactory {
15public:
16 void SetWeakRoom(std::weak_ptr<interface::Room> room) override;
17
18 std::shared_ptr<interface::RoomMember> GetOrCreateRoomMember(
19 std::shared_ptr<core::interface::Member> core) override;
20
21 std::shared_ptr<interface::RemoteRoomMember> GetOrCreateRemoteRoomMember(
22 std::shared_ptr<plugin::remote_person::RemotePerson> person) override;
23
24 std::shared_ptr<interface::RoomPublication> GetOrCreateRoomPublication(
25 std::shared_ptr<core::interface::Publication> core) override;
26
27 std::shared_ptr<interface::RoomSubscription> GetOrCreateRoomSubscription(
28 std::shared_ptr<core::interface::Subscription> core) override;
29
30protected:
31 std::weak_ptr<interface::Room> GetWeakRoom();
32
33private:
34 std::weak_ptr<interface::Room> room_;
35 std::mutex remote_room_member_mtx_;
36 std::mutex room_publication_mtx_;
37 std::mutex room_subscription_mtx_;
38};
39
40} // namespace abstract
41} // namespace room
42} // namespace skyway
43
44#endif /* SKYWAY_ROOM_ABSTRACT_ROOM_DOMAIN_FACTORY_HPP */
Definition room_domain_factory.hpp:14