/* * Copyright (c) 2020 ETH Zürich, Educational Development and Technology (LET) * * 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; using System.Collections.Generic; using SafeExamBrowser.Server.Contracts.Data; using SafeExamBrowser.Server.Contracts.Events; using SafeExamBrowser.Settings.Server; namespace SafeExamBrowser.Server.Contracts { /// /// Defines the communication options with a server. /// public interface IServerProxy { /// /// Event fired when the server detects an instruction to terminate SEB. /// event TerminationRequestedEventHandler TerminationRequested; /// /// Attempts to initialize a connection with the server. /// ServerResponse Connect(); /// /// Terminates a connection with the server. /// ServerResponse Disconnect(); /// /// Retrieves a list of all currently available exams. /// ServerResponse> GetAvailableExams(); /// /// Retrieves the URI of the configuration file for the given exam. /// ServerResponse GetConfigurationFor(Exam exam); /// /// Retrieves the information required to establish a connection with the server. /// ConnectionInfo GetConnectionInfo(); /// /// Initializes the server settings to be used for communication. /// void Initialize(ServerSettings settings); /// /// Initializes the configuration and server settings to be used for communication. /// void Initialize(string api, string connectionToken, string examId, string oauth2Token, ServerSettings settings); /// /// Sends the given user session identifier of a LMS and thus establishes a connection with the server. /// ServerResponse SendSessionIdentifier(string identifier); /// /// Starts sending ping and log data to the server. /// void StartConnectivity(); /// /// Stops sending ping and log data to the server. /// void StopConnectivity(); } }