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 <mutex>
9
10#include "skyway/room/interface/room_domain_factory.hpp"
11
12namespace skyway {
13namespace room {
14namespace abstract {
15
16class RoomDomainFactory : public interface::RoomDomainFactory {
17public:
18 void SetWeakRoom(std::weak_ptr<interface::Room> room) override;
19
20 std::shared_ptr<interface::RoomMember> GetOrCreateRoomMember(
21 std::shared_ptr<core::interface::Member> core) override;
22
23 std::shared_ptr<interface::RemoteRoomMember> GetOrCreateRemoteRoomMember(
24 std::shared_ptr<plugin::remote_person::RemotePerson> person) override;
25
26 std::shared_ptr<interface::RoomPublication> GetOrCreateRoomPublication(
27 std::shared_ptr<core::interface::Publication> core) override;
28
29 std::shared_ptr<interface::RoomSubscription> GetOrCreateRoomSubscription(
30 std::shared_ptr<core::interface::Subscription> core) override;
31
32protected:
33 std::weak_ptr<interface::Room> GetWeakRoom();
34
35private:
36 std::weak_ptr<interface::Room> room_;
37 std::mutex remote_room_member_mtx_;
38 std::mutex room_publication_mtx_;
39 std::mutex room_subscription_mtx_;
40};
41
42} // namespace abstract
43} // namespace room
44} // namespace skyway
45
46#endif /* SKYWAY_ROOM_ABSTRACT_ROOM_DOMAIN_FACTORY_HPP */
Definition room_domain_factory.hpp:16