9#ifndef SKYWAY_MODEL_DOMAIN_HPP_
10#define SKYWAY_MODEL_DOMAIN_HPP_
12#include <boost/optional.hpp>
18enum class Side { kLocal, kRemote };
19enum class MemberType { kPerson, kBot };
20enum class ContentType { kAudio, kVideo, kData };
22std::string ToString(Side side);
23std::string ToString(MemberType type);
24std::string ToString(ContentType type);
26boost::optional<Side> ToSide(
const std::string& side);
27boost::optional<MemberType> ToMemberType(
const std::string& type);
28boost::optional<ContentType> ToContentType(
const std::string& type);
34 boost::optional<bool> use_dtx;
45 boost::optional<std::string>
id;
62 boost::optional<std::string>
name;
73 boost::optional<std::string>
name;
82 Member(
const std::string&
id,
const boost::optional<std::string>&
name,
const Init& init) {
94 std::string channel_id;
95 std::string publisher_id;
96 ContentType content_type;
97 boost::optional<std::string> origin;
98 boost::optional<std::string> metadata;
99 std::vector<Codec> codec_capabilities = {};
100 std::vector<Encoding> encodings = {};
120 Publication(
const std::string&
id,
const Init& init) {
135 std::string channel_id;
136 std::string publication_id;
137 std::string subscriber_id;
162 boost::optional<std::string>
name;
169 boost::optional<std::string>
name;
171 boost::optional<std::string>
id;
176 boost::optional<std::string>
name;
197 std::unordered_map<std::string, nlohmann::json>
params;
207void from_json(
const nlohmann::json& j,
Codec& codec);
208void from_json(
const nlohmann::json& j,
Encoding& encoding);
209void from_json(
const nlohmann::json& j,
Channel& channel);
210void from_json(
const nlohmann::json& j,
Member& member);
211void from_json(
const nlohmann::json& j,
Publication& publication);
212void from_json(
const nlohmann::json& j,
Subscription& subscription);
214[[deprecated]]
void from_json(
const nlohmann::json& j,
WebRTCStats& stats);
216void to_json(nlohmann::json& j,
const Codec& codec);
217void to_json(nlohmann::json& j,
const Encoding& encoding);
CreateもしくはFindOrCreateで指定する情報
Definition domain.hpp:160
boost::optional< std::string > metadata
ChannelのMetadata
Definition domain.hpp:164
boost::optional< std::string > name
Channelの名前
Definition domain.hpp:162
FindもしくはFindOrCreateで指定する情報
Definition domain.hpp:167
boost::optional< std::string > name
Channelの名前
Definition domain.hpp:169
boost::optional< std::string > id
ChannelのId
Definition domain.hpp:171
Channel情報
Definition domain.hpp:158
boost::optional< std::string > metadata
Metadata
Definition domain.hpp:178
std::string id
Id
Definition domain.hpp:174
std::vector< Member > members
このChannelの存在するメンバーの一覧
Definition domain.hpp:180
std::vector< Subscription > subscriptions
このChannelの存在するSubscriptionの一覧
Definition domain.hpp:184
boost::optional< std::string > name
名前
Definition domain.hpp:176
std::vector< Publication > publications
このChannelの存在するPublicationの一覧
Definition domain.hpp:182
uint64_t version
バージョン
Definition domain.hpp:186
Dtxオプションを適応するかのオプション
Definition domain.hpp:33
コーデック情報
Definition domain.hpp:31
std::string mime_type
mimetype
Definition domain.hpp:37
Parameters parameters
パラメーター
Definition domain.hpp:39
エンコーディング設定
Definition domain.hpp:43
boost::optional< double > scale_resolution_down_by
解像度の倍率
Definition domain.hpp:49
boost::optional< double > max_framerate
最大フレームレート
Definition domain.hpp:51
boost::optional< int > max_bitrate
最大ビットレート
Definition domain.hpp:47
boost::optional< std::string > id
Id
Definition domain.hpp:45
Join時に使用するメンバー情報
Definition domain.hpp:56
boost::optional< std::string > metadata
Metadata
Definition domain.hpp:64
boost::optional< int > keepalive_interval_gap_sec
生存確認の間隔を超えてChannelからMemberが削除されるまでの時間
Definition domain.hpp:68
std::string subtype
サブタイプ
Definition domain.hpp:60
boost::optional< std::string > name
名前
Definition domain.hpp:62
boost::optional< int > keepalive_interval_sec
生存確認の間隔
Definition domain.hpp:66
MemberType type
種類
Definition domain.hpp:58
メンバー情報
Definition domain.hpp:54
boost::optional< std::string > metadata
Metadata
Definition domain.hpp:79
std::string subtype
サブタイプ
Definition domain.hpp:77
MemberType type
種類
Definition domain.hpp:75
boost::optional< std::string > name
名前
Definition domain.hpp:73
std::string id
Id
Definition domain.hpp:71
Publication情報
Definition domain.hpp:92
boost::optional< std::string > metadata
Metadata
Definition domain.hpp:112
std::string publisher_id
PublishしたメンバーのId
Definition domain.hpp:106
std::vector< Encoding > encodings
エンコーディング一覧
Definition domain.hpp:116
std::string id
Id
Definition domain.hpp:104
ContentType content_type
コンテンツの種類
Definition domain.hpp:110
std::vector< Codec > codec_capabilities
コーデック一覧
Definition domain.hpp:114
bool is_enabled
有効か無効か
Definition domain.hpp:118
boost::optional< std::string > origin
Origin
Definition domain.hpp:108
Definition domain.hpp:134
Subscription情報
Definition domain.hpp:133
std::string publication_id
このSubscriptionに紐づくPublicationのId
Definition domain.hpp:143
std::string subscriber_id
このSubscriptionをSubscribeしているメンバーのId
Definition domain.hpp:145
std::string id
Id
Definition domain.hpp:141
bool is_enabled
有効か無効か
Definition domain.hpp:147
統計情報
Definition domain.hpp:202
std::vector< WebRTCStatsReport > reports
統計情報の一覧
Definition domain.hpp:204
統計情報の詳細
Definition domain.hpp:191
std::string id
Id
Definition domain.hpp:193
std::unordered_map< std::string, nlohmann::json > params
各パラメーターに対応するJson
Definition domain.hpp:197
std::string type
種類
Definition domain.hpp:195