• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_CHROMEOS_CROS_SCREEN_LOCK_LIBRARY_H_
6 #define CHROME_BROWSER_CHROMEOS_CROS_SCREEN_LOCK_LIBRARY_H_
7 #pragma once
8 
9 #include "base/observer_list.h"
10 #include "third_party/cros/chromeos_screen_lock.h"
11 
12 namespace chromeos {
13 
14 // This interface defines interaction with the ChromeOS screen lock
15 // APIs.
16 class ScreenLockLibrary {
17  public:
18   class Observer {
19    public:
~Observer()20     virtual ~Observer() {}
21     virtual void LockScreen(ScreenLockLibrary* obj) = 0;
22     virtual void UnlockScreen(ScreenLockLibrary* obj) = 0;
23     virtual void UnlockScreenFailed(ScreenLockLibrary* obj) = 0;
24   };
ScreenLockLibrary()25   ScreenLockLibrary() {}
~ScreenLockLibrary()26   virtual ~ScreenLockLibrary() {}
27   virtual void AddObserver(Observer* observer) = 0;
28   virtual void RemoveObserver(Observer* observer) = 0;
29 
30   // Notifies PowerManager that screen lock has been completed.
31   virtual void NotifyScreenLockCompleted() = 0;
32   // Notifies PowerManager that a user requested to lock the screen.
33   virtual void NotifyScreenLockRequested() = 0;
34   // Notifies PowerManager that a user unlocked the screen.
35   virtual void NotifyScreenUnlockRequested() = 0;
36   // Notifies PowerManager that screen is unlocked.
37   virtual void NotifyScreenUnlockCompleted() = 0;
38 
39   // Factory function, creates a new instance and returns ownership.
40   // For normal usage, access the singleton via CrosLibrary::Get().
41   static ScreenLockLibrary* GetImpl(bool stub);
42 };
43 
44 }  // namespace chromeos
45 
46 #endif  // CHROME_BROWSER_CHROMEOS_CROS_SCREEN_LOCK_LIBRARY_H_
47