// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CROS_DISKS_SESSION_MANAGER_OBSERVER_INTERFACE_H_
#define CROS_DISKS_SESSION_MANAGER_OBSERVER_INTERFACE_H_

namespace cros_disks {

// An interface class for observing events from the session manager.
// A derived class of this class should override the event methods
// that it would like to observe.
class SessionManagerObserverInterface {
 public:
  virtual ~SessionManagerObserverInterface() = default;

  // This method is called when the screen is locked.
  virtual void OnScreenIsLocked() = 0;

  // This method is called when the screen is unlocked.
  virtual void OnScreenIsUnlocked() = 0;

  // This method is called when a session has started.
  virtual void OnSessionStarted() = 0;

  // This method is called when a session has stopped.
  virtual void OnSessionStopped() = 0;
};

}  // namespace cros_disks

#endif  // CROS_DISKS_SESSION_MANAGER_OBSERVER_INTERFACE_H_
