9#ifndef SKYWAY_ROOM_ABSTRACT_ROOM_MEMBER_HPP
10#define SKYWAY_ROOM_ABSTRACT_ROOM_MEMBER_HPP
12#include <skyway/room/interface/room_member.hpp>
14#include "skyway/room/interface/room_domain_factory.hpp"
25 std::optional<std::string>
RoomId()
override;
26 std::optional<std::string>
RoomName()
override;
27 std::string
Id()
override;
28 std::optional<std::string>
Name()
override;
29 std::optional<std::string>
Metadata()
override;
30 model::MemberType
Type()
override;
32 model::Side
Side()
override;
33 core::interface::MemberState
State()
override;
35 std::vector<std::shared_ptr<interface::RoomPublication>>
Publications()
override;
36 std::vector<std::shared_ptr<interface::RoomSubscription>>
Subscriptions()
override;
42 RoomMember(std::shared_ptr<core::interface::Member> core,
43 std::shared_ptr<interface::Room> room,
44 interface::RoomDomainFactory* factory);
46 std::shared_ptr<core::interface::Member> core_;
47 std::weak_ptr<interface::Room> room_;
48 interface::RoomDomainFactory* factory_;
RoomMemberの操作を行う抽象クラス
Definition room_member.hpp:21
model::MemberType Type() override
Typeを取得します。
std::vector< std::shared_ptr< interface::RoomSubscription > > Subscriptions() override
このMemberのSubscription一覧を取得します。
std::string Id() override
Idを取得します。
std::optional< std::string > RoomId() override
このMemberに紐づくRoomのIdを取得します。
std::vector< std::shared_ptr< interface::RoomPublication > > Publications() override
このMemberのPublication一覧を取得します。
std::string Subtype() override
SubTypeを取得します。
core::interface::MemberState State() override
Stateを取得します。
std::optional< std::string > Name() override
Nameを取得します。
bool Leave() override
Roomから退室します。
std::optional< std::string > RoomName() override
このMemberに紐づくRoomのNameを取得します。
std::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