blob: 6b889e1d0d805d6e42984a9c970564e305acea86 [file] [log] [blame]
// Copyright 2014 The Chromium 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 CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
#define CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_
#include "base/callback.h"
namespace chromeos {
namespace file_system_provider {
// Handles notifications related to provided the file system.
class NotificationManagerInterface {
public:
// Result of a notification.
enum NotificationResult { ABORT, CONTINUE };
// Callback for handling result of a notification.
typedef base::Callback<void(NotificationResult)> NotificationCallback;
NotificationManagerInterface() {}
virtual ~NotificationManagerInterface() {}
// Shows a notification about the request being unresponsive. The |callback|
// is called when the notification is closed.
virtual void ShowUnresponsiveNotification(
int id,
const NotificationCallback& callback) = 0;
// Hides a notification previously shown with |id|.
virtual void HideUnresponsiveNotification(int id) = 0;
private:
DISALLOW_COPY_AND_ASSIGN(NotificationManagerInterface);
};
} // namespace file_system_provider
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_FILE_SYSTEM_PROVIDER_NOTIFICATION_MANAGER_INTERFACE_H_