56 using PublicationMap =
57 std::unordered_map<std::string, std::shared_ptr<LocalTrackPublication>>;
73 std::string identity, std::string metadata,
74 std::unordered_map<std::string, std::string> attributes,
75 ParticipantKind kind, DisconnectReason reason);
79 return track_publications_;
94 const std::vector<std::string> &destination_identities = {},
95 const std::string &topic = {});
106 void setMetadata(
const std::string &metadata);
107 void setName(
const std::string &name);
109 setAttributes(
const std::unordered_map<std::string, std::string> &attributes);
119 const std::vector<ParticipantTrackPermission>
120 &participant_permissions = {});
127 std::shared_ptr<LocalTrackPublication>
155 std::string
performRpc(
const std::string &destination_identity,
156 const std::string &method,
const std::string &payload,
157 std::optional<double> response_timeout = std::nullopt);
201 void handleRpcMethodInvocation(std::uint64_t invocation_id,
202 const std::string &method,
203 const std::string &request_id,
204 const std::string &caller_identity,
205 const std::string &payload,
206 double response_timeout);
208 std::shared_ptr<TrackPublication>
209 findTrackPublication(
const std::string &sid)
const override;
213 PublicationMap track_publications_;
214 std::unordered_map<std::string, RpcHandler> rpc_handlers_;
219 struct RpcInvocationState {
221 std::condition_variable cv;
222 int active_invocations = 0;
223 bool shutting_down =
false;
225 std::shared_ptr<RpcInvocationState> rpc_state_ =
226 std::make_shared<RpcInvocationState>();
const PublicationMap & trackPublications() const noexcept
Track publications associated with this participant, keyed by track SID.
Definition local_participant.h:78