/* * Copyright (c) 2024 ETH Zürich, IT Services * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ using System.Collections.Generic; using SafeExamBrowser.Core.Contracts.Notifications; using SafeExamBrowser.Proctoring.Contracts.Events; using SafeExamBrowser.Settings.Proctoring; namespace SafeExamBrowser.Proctoring.Contracts { /// /// Defines the remote proctoring functionality. /// public interface IProctoringController { /// /// Indicates whether the hand is currently raised. /// bool IsHandRaised { get; } /// /// The notifications for all active proctoring providers. /// IEnumerable Notifications { get; } /// /// Fired when the hand has been lowered. /// event ProctoringEventHandler HandLowered; /// /// Fired when the hand has been raised. /// event ProctoringEventHandler HandRaised; /// /// Event fired when the status of the remaining work has been updated. /// event RemainingWorkUpdatedEventHandler RemainingWorkUpdated; /// /// Executes any remaining work like e.g. the transmission of cached screen shots. Make sure to do so before calling . /// void ExecuteRemainingWork(); /// /// Indicates whether there is any remaining work which needs to be done before the proctoring can be terminated. /// bool HasRemainingWork(); /// /// Initializes the given settings and starts the proctoring if the settings are valid. /// void Initialize(ProctoringSettings settings); /// /// Lowers the hand. /// void LowerHand(); /// /// Raises the hand, optionally with the given message. /// void RaiseHand(string message = default); /// /// Stops the proctoring functionality. Make sure to call beforehand if necessary. /// void Terminate(); } }