blob: f5427b815fc8d02bdfe58e8e7ba834c59a36414f [file] [log] [blame]
// Copyright 2016 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 COMPONENTS_EXO_NOTIFICATION_SURFACE_MANAGER_H_
#define COMPONENTS_EXO_NOTIFICATION_SURFACE_MANAGER_H_
#include <string>
namespace exo {
class NotificationSurface;
class NotificationSurfaceManager {
public:
// Gets the NotificationSurface associated with the given notification id.
// Returns nullptr if no NotificationSurface is associated with the id.
virtual NotificationSurface* GetSurface(
const std::string& notification_key) const = 0;
// Adds a NotificationSurface to the manager.
virtual void AddSurface(NotificationSurface* surface) = 0;
// Removes a NotificationSurface from the manager.
virtual void RemoveSurface(NotificationSurface* surface) = 0;
protected:
virtual ~NotificationSurfaceManager() {}
};
} // namespace exo
#endif // COMPONENTS_EXO_NOTIFICATION_SURFACE_MANAGER_H_