29enum class ParticipantKind { Standard = 0, Ingress, Egress, Sip, Agent };
34 std::string identity, std::string metadata,
35 std::unordered_map<std::string, std::string> attributes,
36 ParticipantKind kind, DisconnectReason reason)
37 : handle_(std::move(handle)), sid_(std::move(sid)),
38 name_(std::move(name)), identity_(std::move(identity)),
39 metadata_(std::move(metadata)), attributes_(std::move(attributes)),
40 kind_(kind), reason_(reason) {}
44 const std::string &sid()
const noexcept {
return sid_; }
45 const std::string &name()
const noexcept {
return name_; }
46 const std::string &identity()
const noexcept {
return identity_; }
47 const std::string &metadata()
const noexcept {
return metadata_; }
48 const std::unordered_map<std::string, std::string> &
49 attributes()
const noexcept {
52 ParticipantKind kind()
const noexcept {
return kind_; }
53 DisconnectReason disconnectReason()
const noexcept {
return reason_; }
55 uintptr_t ffiHandleId()
const noexcept {
return handle_.get(); }
58 void set_name(std::string name)
noexcept { name_ = std::move(name); }
59 void set_metadata(std::string metadata)
noexcept {
60 metadata_ = std::move(metadata);
63 set_attributes(std::unordered_map<std::string, std::string> attrs)
noexcept {
64 attributes_ = std::move(attrs);
66 void set_attribute(
const std::string &key,
const std::string &value) {
67 attributes_[key] = value;
69 void remove_attribute(
const std::string &key) { attributes_.erase(key); }
70 void set_kind(ParticipantKind kind)
noexcept { kind_ = kind; }
71 void set_disconnect_reason(DisconnectReason reason)
noexcept {
76 virtual std::shared_ptr<TrackPublication>
77 findTrackPublication(
const std::string &sid)
const = 0;
82 std::string sid_, name_, identity_, metadata_;
83 std::unordered_map<std::string, std::string> attributes_;
84 ParticipantKind kind_;
85 DisconnectReason reason_;