1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5/** 6 * @fileoverview 7 * Interface abstracting the SessionConnector functionality. 8 */ 9 10'use strict'; 11 12/** @suppress {duplicate} */ 13var remoting = remoting || {}; 14 15/** 16 * @interface 17 */ 18remoting.SessionConnector = function() {}; 19 20/** 21 * Reset the per-connection state so that the object can be re-used for a 22 * second connection. Note the none of the shared WCS state is reset. 23 */ 24remoting.SessionConnector.prototype.reset = function() {}; 25 26/** 27 * Initiate a Me2Me connection. 28 * 29 * @param {remoting.Host} host The Me2Me host to which to connect. 30 * @param {function(boolean, function(string):void):void} fetchPin Function to 31 * interactively obtain the PIN from the user. 32 * @param {function(string, string, string, 33 * function(string, string): void): void} 34 * fetchThirdPartyToken Function to obtain a token from a third party 35 * authenticaiton server. 36 * @param {string} clientPairingId The client id issued by the host when 37 * this device was paired, if it is already paired. 38 * @param {string} clientPairedSecret The shared secret issued by the host when 39 * this device was paired, if it is already paired. 40 * @return {void} Nothing. 41 */ 42remoting.SessionConnector.prototype.connectMe2Me = 43 function(host, fetchPin, fetchThirdPartyToken, 44 clientPairingId, clientPairedSecret) {}; 45 46/** 47 * Update the pairing info so that the reconnect function will work correctly. 48 * 49 * @param {string} clientId The paired client id. 50 * @param {string} sharedSecret The shared secret. 51 */ 52remoting.SessionConnector.prototype.updatePairingInfo = 53 function(clientId, sharedSecret) {}; 54 55/** 56 * Initiate an IT2Me connection. 57 * 58 * @param {string} accessCode The access code as entered by the user. 59 * @return {void} Nothing. 60 */ 61remoting.SessionConnector.prototype.connectIT2Me = 62 function(accessCode) {}; 63 64/** 65 * Reconnect a closed connection. 66 * 67 * @return {void} Nothing. 68 */ 69remoting.SessionConnector.prototype.reconnect = function() {}; 70 71/** 72 * Cancel a connection-in-progress. 73 */ 74remoting.SessionConnector.prototype.cancel = function() {}; 75 76/** 77 * Get the connection mode (Me2Me or IT2Me) 78 * 79 * @return {remoting.ClientSession.Mode} 80 */ 81remoting.SessionConnector.prototype.getConnectionMode = function() {}; 82 83/** 84 * Get host ID. 85 * 86 * @return {string} 87 */ 88remoting.SessionConnector.prototype.getHostId = function() {}; 89 90 91/** 92 * @interface 93 */ 94remoting.SessionConnectorFactory = function() {}; 95 96/** 97 * @param {HTMLElement} clientContainer Container element for the client view. 98 * @param {function(remoting.ClientSession):void} onConnected Callback on 99 * success. 100 * @param {function(remoting.Error):void} onError Callback on error. 101 * @param {function(string, string):boolean} onExtensionMessage The handler for 102 * protocol extension messages. Returns true if a message is recognized; 103 * false otherwise. 104 * @return {remoting.SessionConnector} 105 */ 106remoting.SessionConnectorFactory.prototype.createConnector = 107 function(clientContainer, onConnected, onError, onExtensionMessage) {}; 108 109/** 110 * @type {remoting.SessionConnectorFactory} 111 */ 112remoting.SessionConnector.factory = null; 113