11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef COMPONENTS_PAIRING_SHARK_CONNECTION_LISTENER_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define COMPONENTS_PAIRING_SHARK_CONNECTION_LISTENER_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <string> 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/callback.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/macros.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/memory/scoped_ptr.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/pairing/host_pairing_controller.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace pairing_chromeos { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Listens for incoming connection from shark controller. If connection 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// is established, invokes callback passing HostPairingController 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// as an argument. 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass SharkConnectionListener : public HostPairingController::Observer { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci typedef base::Callback<void(scoped_ptr<HostPairingController>)> 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci OnConnectedCallback; 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci explicit SharkConnectionListener(OnConnectedCallback callback); 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~SharkConnectionListener(); 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci typedef HostPairingController::Stage Stage; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // HostPairingController::Observer overrides: 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void PairingStageChanged(Stage new_stage) OVERRIDE; 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void ConfigureHost(bool accepted_eula, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& lang, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& timezone, 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool send_reports, 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const std::string& keyboard_layout) OVERRIDE; 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void EnrollHost(const std::string& auth_token) OVERRIDE; 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci OnConnectedCallback callback_; 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<HostPairingController> controller_; 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(SharkConnectionListener); 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace pairing_chromeos 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // COMPONENTS_PAIRING_SHARK_CONNECTION_LISTENER_H_ 49