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.
5 #ifndef CHROMEOS_PAIRING_HOST_PAIRING_CONTROLLER_H_
6 #define CHROMEOS_PAIRING_HOST_PAIRING_CONTROLLER_H_
10 #include "base/macros.h"
11 #include "chromeos/chromeos_export.h"
15 class CHROMEOS_EXPORT HostPairingController
{
19 STAGE_WAITING_FOR_CONTROLLER
,
20 STAGE_WAITING_FOR_CODE_CONFIRMATION
,
22 STAGE_WAITING_FOR_CONTROLLER_AFTER_UPDATE
,
23 STAGE_WAITING_FOR_CREDENTIALS
,
25 STAGE_ENROLLMENT_ERROR
,
30 struct UpdateProgress
{
40 // Called when pairing has moved on from one stage to another.
41 virtual void PairingStageChanged(Stage new_stage
) = 0;
43 // Called periodically on |STAGE_UPDATING| stage. Current update progress
44 // is stored in |progress|.
45 virtual void UpdateAdvanced(const UpdateProgress
& progress
) = 0;
48 DISALLOW_COPY_AND_ASSIGN(Observer
);
51 HostPairingController();
52 virtual ~HostPairingController();
54 virtual void AddObserver(Observer
* observer
) = 0;
55 virtual void RemoveObserver(Observer
* observer
) = 0;
57 // Returns current stage of pairing process.
58 virtual Stage
GetCurrentStage() = 0;
60 // Starts pairing process. Can be called only on |STAGE_NONE| stage.
61 virtual void StartPairing() = 0;
63 // Returns device name.
64 virtual std::string
GetDeviceName() = 0;
66 // Returns 6-digit confirmation code. Can be called only on
67 // |STAGE_WAITING_FOR_CODE_CONFIRMATION| stage.
68 virtual std::string
GetConfirmationCode() = 0;
70 // Returns an enrollment domain name. Can be called on stage
71 // |STAGE_ENROLLMENT| and later.
72 virtual std::string
GetEnrollmentDomain() = 0;
75 DISALLOW_COPY_AND_ASSIGN(HostPairingController
);
78 } // namespace chromeos
80 #endif // CHROMEOS_PAIRING_HOST_PAIRING_CONTROLLER_H_