| // 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_ |