1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file.
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_OBSERVER_H_
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_OBSERVER_H_
7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace chromeos {
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace system {
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass AutomaticRebootManagerObserver {
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public:
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  enum Reason {
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    REBOOT_REASON_UNKNOWN,
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    REBOOT_REASON_OS_UPDATE,
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    REBOOT_REASON_PERIODIC,
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  };
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Invoked when a reboot is scheduled.
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual void OnRebootScheduled(Reason reason) = 0;
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  // Invoked before the automatic reboot manager is destroyed.
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual void WillDestroyAutomaticRebootManager() = 0;
24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch protected:
26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  virtual ~AutomaticRebootManagerObserver() {}
27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch};
28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}  // namespace system
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}  // namespace chromeos
31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif  // CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_OBSERVER_H_
33