Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Side by Side Diff: chrome/common/desktop_notifications/active_notification_tracker.h

Issue 6677096: Move a bunch of files from chrome\common to content\common. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_COMMON_DESKTOP_NOTIFICATIONS_ACTIVE_NOTIFICATION_TRACKER_H_
6 #define CHROME_COMMON_DESKTOP_NOTIFICATIONS_ACTIVE_NOTIFICATION_TRACKER_H_
7 #pragma once
8
9 #include <map>
10
11 #include "base/basictypes.h"
12 #include "base/id_map.h"
13 #include "base/hash_tables.h"
14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNotification.h"
15
16 namespace WebKit {
17 class WebNotificationPermissionCallback;
18 }
19
20 // This class manages the set of active Notification objects in either
21 // a render or worker process. This class should be accessed only on
22 // the main thread.
23 class ActiveNotificationTracker {
24 public:
25 ActiveNotificationTracker();
26 ~ActiveNotificationTracker();
27
28 // Methods for tracking active notification objects.
29 int RegisterNotification(const WebKit::WebNotification& notification);
30 void UnregisterNotification(int id);
31 bool GetId(const WebKit::WebNotification& notification, int& id);
32 bool GetNotification(int id, WebKit::WebNotification* notification);
33
34 // Methods for tracking active permission requests.
35 int RegisterPermissionRequest(
36 WebKit::WebNotificationPermissionCallback* callback);
37 void OnPermissionRequestComplete(int id);
38 WebKit::WebNotificationPermissionCallback* GetCallback(int id);
39
40 // Clears out all active notifications. Useful on page navigation.
41 void Clear();
42
43 // Detaches all active notifications from their presenter. Necessary
44 // when the Presenter is destroyed.
45 void DetachAll();
46
47 private:
48 typedef std::map<WebKit::WebNotification, int> ReverseTable;
49
50 // Tracking maps for active notifications and permission requests.
51 IDMap<WebKit::WebNotification> notification_table_;
52 ReverseTable reverse_notification_table_;
53 IDMap<WebKit::WebNotificationPermissionCallback> callback_table_;
54
55 DISALLOW_COPY_AND_ASSIGN(ActiveNotificationTracker);
56 };
57
58 #endif // CHROME_COMMON_DESKTOP_NOTIFICATIONS_ACTIVE_NOTIFICATION_TRACKER_H_
OLDNEW
« no previous file with comments | « chrome/common/common_param_traits_unittest.cc ('k') | chrome/common/desktop_notifications/active_notification_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698