From f22d5e9d478a90618bcc008a18ffe2f1e9e7f6a7 Mon Sep 17 00:00:00 2001 From: Timo <16718859+toger5@users.noreply.github.com> Date: Mon, 13 Jan 2025 19:29:50 +0100 Subject: [PATCH] MatrixRTC: additional TS docs for IMembershipManager interface (#4613) * docstrings for IMembershipManager interface * more details and cleanup * timeout docs --- src/matrixrtc/MembershipManager.ts | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/matrixrtc/MembershipManager.ts b/src/matrixrtc/MembershipManager.ts index e195917156..47b892d0d6 100644 --- a/src/matrixrtc/MembershipManager.ts +++ b/src/matrixrtc/MembershipManager.ts @@ -18,13 +18,34 @@ import { MembershipConfig } from "./MatrixRTCSession.ts"; * @internal */ export interface IMembershipManager { + /** + * If we are trying to join the session. + * It does not reflect if the room state is already configures to represent us being joined. + * It only means that the Manager is running. + * @returns true if we intend to be participating in the MatrixRTC session + */ isJoined(): boolean; + /** + * Start sending all necessary events to make this user participant in the RTC session. + * @param fociPreferred the list of preferred foci to use in the joined RTC membership event. + * @param fociActive the active focus to use in the joined RTC membership event. + */ join(fociPreferred: Focus[], fociActive?: Focus): void; + /** + * Send all necessary events to make this user leave the RTC session. + * @param timeout the maximum duration in ms until the promise is forced to resolve. + * @returns It resolves with true in case the leave was sent successfully. + * It resolves with false in case we hit the timeout before sending successfully. + */ leave(timeout: number | undefined): Promise; /** - * call this if the MatrixRTC session members have changed + * Call this if the MatrixRTC session members have changed. */ onRTCSessionMemberUpdate(memberships: CallMembership[]): Promise; + /** + * The used active focus in the currently joined session. + * @returns the used active focus in the currently joined session or undefined if not joined. + */ getActiveFocus(): Focus | undefined; } @@ -102,10 +123,6 @@ export class LegacyMembershipManager implements IMembershipManager { private getOldestMembership: () => CallMembership | undefined, ) {} - /* - * Returns true if we intend to be participating in the MatrixRTC session. - * This is determined by checking if the relativeExpiry has been set. - */ public isJoined(): boolean { return this.relativeExpiry !== undefined; }