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