// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_MESSAGE_CENTER_MESSAGE_CENTER_H_ #define UI_MESSAGE_CENTER_MESSAGE_CENTER_H_ #include <stddef.h> #include <memory> #include <string> #include "ui/message_center/message_center_export.h" #include "ui/message_center/message_center_types.h" #include "ui/message_center/notification_list.h" #include "ui/message_center/public/cpp/notification.h" #include "ui/message_center/public/cpp/notifier_id.h" class DownloadNotification; class DownloadNotificationTestBase; // Interface to manage the NotificationList. The client (e.g. Chrome) calls // [Add|Remove|Update]Notification to create and update notifications in the // list. It also sends those changes to its observers when a notification // is shown, closed, or clicked on. // // MessageCenter is agnostic of profiles; it uses the string returned by // Notification::id() to uniquely identify a notification. It is // the caller's responsibility to formulate the id so that 2 different // notification should have different ids. For example, if the caller supports // multiple profiles, then caller should encode both profile characteristics and // notification front end's notification id into a new id and set it into the // notification instance before passing that in. Consequently the id passed to // observers will be this unique id, which can be used with MessageCenter // interface but probably not higher level interfaces. namespace message_center { namespace test { class MessagePopupCollectionTest; } class LockScreenController; class MessageCenterObserver; class MessageCenterImplTest; class NotificationBlocker; class MESSAGE_CENTER_EXPORT MessageCenter { … }; } // namespace message_center #endif // UI_MESSAGE_CENTER_MESSAGE_CENTER_H_