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

Unified Diff: chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager_factory.h

Issue 11535008: Implement mediaGalleriesPrivate api to notify extensions about gallery changed events. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager_factory.h
diff --git a/chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager_factory.h b/chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager_factory.h
new file mode 100644
index 0000000000000000000000000000000000000000..9d61c9365082504e9a641881ccbac24f2d9b15ab
--- /dev/null
+++ b/chrome/browser/extensions/api/media_galleries_private/gallery_watch_manager_factory.h
@@ -0,0 +1,62 @@
+// Copyright (c) 2012 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_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_GALLERY_WATCH_MANAGER_FACTORY_H_
+#define CHROME_BROWSER_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_GALLERY_WATCH_MANAGER_FACTORY_H_
+
+#include <map>
+
+#include "base/lazy_instance.h"
+#include "base/threading/thread_checker.h"
+
+class Profile;
+
+namespace extensions {
+
+class GalleryWatchManager;
+
+// Singleton that associate GalleryWatchManager objects with profiles. This
+// class is constructed, destructed and operated on the FILE thread.
+class GalleryWatchManagerFactory {
Lei Zhang 2012/12/15 04:13:21 Can you just replace this with a map in gallery_wa
kmadhusu 2012/12/17 23:58:05 Done.
+ public:
+ // Returns the GalleryFilePathWatchManagerFactory instance.
+ static GalleryWatchManagerFactory* GetInstance();
+
+ // Returns true if an GalleryWatchManager already exists for the specified
+ // |profile|.
+ bool HasForProfile(const Profile* profile);
+
+ // Returns the GalleryWatchManager for |profile|, creating it if it is not
+ // yet created.
+ GalleryWatchManager* GetForProfile(const Profile* profile);
+
+ // Handles profile shutdown event.
+ void OnProfileShutdown(const Profile* profile);
+
+ private:
+ friend struct base::DefaultLazyInstanceTraits<GalleryWatchManagerFactory>;
+
+ typedef std::map<const Profile*, GalleryWatchManager*> WatchManagerMap;
+
+ // Use GetInstance().
+ GalleryWatchManagerFactory();
+
+ // Leaky lazy instance. Destructor should not be called.
+ virtual ~GalleryWatchManagerFactory();
+
+ // Map to keep track of profile specific GalleryWatchManager objects.
+ // Key: Profile*.
+ // Value: GalleryWatchManager*.
+ // This map owns the GalleryWatchManager object.
+ WatchManagerMap gallery_watch_managers_;
+
+ // Make sure all the member functions are called on the right thread.
+ base::ThreadChecker thread_checker_;
+
+ DISALLOW_COPY_AND_ASSIGN(GalleryWatchManagerFactory);
+};
+
+} // namespace extensions
+
+#endif // CHROME_BROWSER_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_GALLERY_WATCH_MANAGER_FACTORY_H_

Powered by Google App Engine
This is Rietveld 408576698