summaryrefslogtreecommitdiffstats
path: root/components/enhanced_bookmarks/persistent_image_store.h
diff options
context:
space:
mode:
authorkkimlabs@chromium.org <kkimlabs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-11 14:19:52 +0000
committerkkimlabs@chromium.org <kkimlabs@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-11 14:19:52 +0000
commit174a621f96913029748c965389706d2b32eb153b (patch)
tree53f6483025d2b4996abf854ec9fe776e6545e165 /components/enhanced_bookmarks/persistent_image_store.h
parent41a7fd691f089cb0f40cb88c328b3ea8313fb644 (diff)
downloadchromium_src-174a621f96913029748c965389706d2b32eb153b.zip
chromium_src-174a621f96913029748c965389706d2b32eb153b.tar.gz
chromium_src-174a621f96913029748c965389706d2b32eb153b.tar.bz2
Local salient image storage for enhanced bookmark experiment.
BUG=368034 Review URL: https://codereview.chromium.org/259863007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269703 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/enhanced_bookmarks/persistent_image_store.h')
-rw-r--r--components/enhanced_bookmarks/persistent_image_store.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/components/enhanced_bookmarks/persistent_image_store.h b/components/enhanced_bookmarks/persistent_image_store.h
new file mode 100644
index 0000000..aaa86fa
--- /dev/null
+++ b/components/enhanced_bookmarks/persistent_image_store.h
@@ -0,0 +1,42 @@
+// Copyright 2014 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_ENHANCED_BOOKMARKS_PERSISTENT_IMAGE_STORE_H_
+#define COMPONENTS_ENHANCED_BOOKMARKS_PERSISTENT_IMAGE_STORE_H_
+
+#include "components/enhanced_bookmarks/image_store.h"
+
+#include "base/files/file_path.h"
+#include "sql/connection.h"
+#include "sql/init_status.h"
+
+// The PersistentImageStore is an implementation of ImageStore that persists its
+// data on disk.
+class PersistentImageStore : public ImageStore {
+ public:
+ // Creates a PersistentImageStore in the directory at the given path.
+ explicit PersistentImageStore(const base::FilePath& path);
+ virtual bool HasKey(const GURL& page_url) OVERRIDE;
+ virtual void Insert(const GURL& page_url,
+ const GURL& image_url,
+ const gfx::Image& image) OVERRIDE;
+ virtual void Erase(const GURL& page_url) OVERRIDE;
+ virtual std::pair<gfx::Image, GURL> Get(const GURL& page_url) OVERRIDE;
+ virtual gfx::Size GetSize(const GURL& page_url) OVERRIDE;
+ virtual void GetAllPageUrls(std::set<GURL>* urls) OVERRIDE;
+ virtual void ClearAll() OVERRIDE;
+
+ protected:
+ virtual ~PersistentImageStore();
+
+ private:
+ sql::InitStatus OpenDatabase();
+
+ const base::FilePath path_;
+ sql::Connection db_;
+
+ DISALLOW_COPY_AND_ASSIGN(PersistentImageStore);
+};
+
+#endif // COMPONENTS_ENHANCED_BOOKMARKS_PERSISTENT_IMAGE_STORE_H_