SkyWay for Linux
読み取り中…
検索中…
一致する文字列を見つけられません
room_member.hpp
1//
2// room_member.hpp
3// skyway
4//
5// Created by Naoto Takahashi on 2023/11/21.
6// Copyright © 2023 NTT Communications. All rights reserved.
7//
8
9#ifndef SKYWAY_ROOM_INTERFACE_ROOM_MEMBER_HPP
10#define SKYWAY_ROOM_INTERFACE_ROOM_MEMBER_HPP
11
12#include <skyway/core/interface/member.hpp>
13
14namespace skyway {
15namespace room {
16namespace interface {
17
18class Room;
19class RoomPublication;
20class RoomSubscription;
21
24public:
27 public:
28 virtual ~EventListener() = default;
30 virtual void OnLeft() {}
31
34 virtual void OnMetadataUpdated(const std::string& metadata) {}
35
37 virtual void OnPublicationListChanged() {}
38
40 virtual void OnSubscriptionListChanged() {}
41 };
42 virtual ~RoomMember() = default;
44 virtual boost::optional<std::string> RoomId() = 0;
46 virtual boost::optional<std::string> RoomName() = 0;
48 virtual std::string Id() = 0;
50 virtual boost::optional<std::string> Name() = 0;
52 virtual boost::optional<std::string> Metadata() = 0;
54 virtual model::MemberType Type() = 0;
56 virtual std::string Subtype() = 0;
58 virtual model::Side Side() = 0;
60 virtual core::interface::MemberState State() = 0;
61
63 virtual std::vector<std::unique_ptr<RoomPublication>> Publications() = 0;
65 virtual std::vector<std::unique_ptr<RoomSubscription>> Subscriptions() = 0;
66
68 virtual bool UpdateMetadata(const std::string& metadata) = 0;
70 virtual bool Leave() = 0;
71};
72
73} // namespace interface
74} // namespace room
75} // namespace skyway
76
77#endif /* SKYWAY_ROOM_INTERFACE_ROOM_MEMBER_HPP */
イベントリスナ
Definition room_member.hpp:26
virtual void OnSubscriptionListChanged()
このRoomMemberのSubscriptionの数が変化された後に発生するイベント
Definition room_member.hpp:40
virtual void OnLeft()
Memberが退出した後に発生するイベント
Definition room_member.hpp:30
virtual void OnPublicationListChanged()
このRoomMemberのPublicationの数が変化された後に発生するイベント
Definition room_member.hpp:37
virtual void OnMetadataUpdated(const std::string &metadata)
このRoomMemberのMetadataが更新された後に発生するイベント
Definition room_member.hpp:34
RoomMemberの操作を行うインターフェース
Definition room_member.hpp:23
virtual model::Side Side()=0
Sideを取得します。
virtual std::string Subtype()=0
SubTypeを取得します。
virtual bool UpdateMetadata(const std::string &metadata)=0
Metadataを更新します。
virtual boost::optional< std::string > RoomId()=0
このMemberに紐づくRoomのIdを取得します。
virtual boost::optional< std::string > Metadata()=0
Metadataを取得します。
virtual std::vector< std::unique_ptr< RoomPublication > > Publications()=0
このMemberのPublication一覧を取得します。
virtual core::interface::MemberState State()=0
Stateを取得します。
virtual boost::optional< std::string > RoomName()=0
このMemberに紐づくRoomのNameを取得します。
virtual bool Leave()=0
Roomから退室します。
virtual model::MemberType Type()=0
Typeを取得します。
virtual std::vector< std::unique_ptr< RoomSubscription > > Subscriptions()=0
このMemberのSubscription一覧を取得します。
virtual std::string Id()=0
Idを取得します。
virtual boost::optional< std::string > Name()=0
Nameを取得します。