17c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet/* 27c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Copyright (C) 2009 Google Inc. All rights reserved. 37c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 47c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Licensed under the Apache License, Version 2.0 (the "License"); 57c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * you may not use this file except in compliance with the License. 67c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * You may obtain a copy of the License at 77c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 87c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * http://www.apache.org/licenses/LICENSE-2.0 97c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 107c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Unless required by applicable law or agreed to in writing, software 117c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * distributed under the License is distributed on an "AS IS" BASIS, 127c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * See the License for the specific language governing permissions and 147c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * limitations under the License. 157c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 167c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 177c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetpackage com.google.polo.pairing; 187c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 197c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetimport com.google.polo.exception.PoloException; 207c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 217c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet/** 227c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Listener interface for handling events within a pairing session. 237c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 247c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetpublic interface PairingListener { 257c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 267c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public static enum LogLevel { 277c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet LOG_DEBUG, 287c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet LOG_INFO, 297c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet LOG_ERROR 307c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 317c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 327c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet /** 337c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Called at the start of a new pairing session. The session object can be 347c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * inspected to determine whether in client or server mode. 357c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 367c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @param session the pairing session 377c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 387c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet void onSessionCreated(PairingSession session); 397c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 407c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet /** 417c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Called when the session calls for the local entity to act as the input 427c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * device. 437c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 447c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @param session the pairing session 457c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @throws PoloException on error receiving the input 467c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 477c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet void onPerformInputDeviceRole(PairingSession session) throws PoloException; 487c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 497c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet /** 507c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Called when the session calls for the local entity to act as the display 517c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * device. 527c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 537c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @param session the pairing session 547c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @throws PoloException on error displaying the secret 557c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 567c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet void onPerformOutputDeviceRole(PairingSession session, byte[] gamma) 577c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet throws PoloException; 587c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 597c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet /** 607c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Called at the end of a pairing session. The session object can be 617c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * inspected to determine success or failure. 627c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 637c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @param session the pairing session 647c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 657c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet void onSessionEnded(PairingSession session); 667c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 677c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet /** 687c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Receives various log messages from the protocol. 697c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 707c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @param level the severity of the message 717c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * @param message the message to log 727c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 737c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet void onLogMessage(LogLevel level, String message); 747c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 757c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet} 76