SkyWay for Linux
読み取り中…
検索中…
一致する文字列を見つけられません
room_member.hpp
1//
2// room_member.hpp
3// skyway
4//
5// Created by Naoto Takahashi on 2023/12/01.
6// Copyright © 2023 NTT Communications. All rights reserved.
7//
8
9#ifndef SKYWAY_ROOM_ABSTRACT_ROOM_MEMBER_HPP
10#define SKYWAY_ROOM_ABSTRACT_ROOM_MEMBER_HPP
11
12#include <skyway/room/interface/room_member.hpp>
13
14#include "skyway/room/interface/room_domain_factory.hpp"
15
16namespace skyway {
17namespace room {
18namespace abstract {
19
21class RoomMember : public virtual interface::RoomMember {
22public:
23 virtual ~RoomMember();
24
25 boost::optional<std::string> RoomId() override;
26 boost::optional<std::string> RoomName() override;
27 std::string Id() override;
28 boost::optional<std::string> Name() override;
29 boost::optional<std::string> Metadata() override;
30 model::MemberType Type() override;
31 std::string Subtype() override;
32 model::Side Side() override;
33 core::interface::MemberState State() override;
34
35 std::vector<std::unique_ptr<interface::RoomPublication>> Publications() override;
36 std::vector<std::unique_ptr<interface::RoomSubscription>> Subscriptions() override;
37
38 bool UpdateMetadata(const std::string& metadata) override;
39 bool Leave() override;
40
41protected:
43 std::shared_ptr<interface::Room> room,
44 interface::RoomDomainFactory* factory);
45
47 std::shared_ptr<interface::Room> room_;
48 interface::RoomDomainFactory* factory_;
49};
50
51} // namespace abstract
52} // namespace room
53} // namespace skyway
54
55#endif /* SKYWAY_ROOM_ABSTRACT_ROOM_MEMBER_HPP */
LocalPersonおよびRemoteMemberの基底クラス
Definition member.hpp:32
RoomMemberの操作を行う抽象クラス
Definition room_member.hpp:21
model::MemberType Type() override
Typeを取得します。
std::string Id() override
Idを取得します。
std::vector< std::unique_ptr< interface::RoomSubscription > > Subscriptions() override
このMemberのSubscription一覧を取得します。
std::string Subtype() override
SubTypeを取得します。
boost::optional< std::string > RoomId() override
このMemberに紐づくRoomのIdを取得します。
core::interface::MemberState State() override
Stateを取得します。
bool Leave() override
Roomから退室します。
std::vector< std::unique_ptr< interface::RoomPublication > > Publications() override
このMemberのPublication一覧を取得します。
boost::optional< std::string > RoomName() override
このMemberに紐づくRoomのNameを取得します。
boost::optional< std::string > Name() override
Nameを取得します。
boost::optional< std::string > Metadata() override
Metadataを取得します。
bool UpdateMetadata(const std::string &metadata) override
Metadataを更新します。
model::Side Side() override
Sideを取得します。
RoomMemberの操作を行うインターフェース
Definition room_member.hpp:23