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

Unified Diff: chrome/browser/history/android/android_cache_database.h

Issue 9549031: The implementation of AndroidCacheDatabase. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Sync and remove the Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/history/android/android_cache_database.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/android/android_cache_database.h
diff --git a/chrome/browser/history/android/android_cache_database.h b/chrome/browser/history/android/android_cache_database.h
new file mode 100644
index 0000000000000000000000000000000000000000..7363e061b54dae617a4b5e9ac5310c3abdc9807b
--- /dev/null
+++ b/chrome/browser/history/android/android_cache_database.h
@@ -0,0 +1,87 @@
+// 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_HISTORY_ANDROID_ANDROID_CACHE_DATABASE_H_
+#define CHROME_BROWSER_HISTORY_ANDROID_ANDROID_CACHE_DATABASE_H_
+#pragma once
+
+#include "base/file_path.h"
+#include "base/gtest_prod_util.h"
+#include "base/time.h"
+#include "chrome/browser/history/android/android_history_types.h"
+#include "sql/connection.h"
+#include "sql/init_status.h"
+
+namespace history {
+
+// This database is used to support Android ContentProvider APIs.
+// It will be created only when it used, and deleted by HistoryBackend when
+// history system shutdown.
+class AndroidCacheDatabase {
+ public:
+ AndroidCacheDatabase();
+ virtual ~AndroidCacheDatabase();
+
+ // Creates the database, deletes existing one if any; Also attach it to the
+ // database returned by GetDB(). Returns sql::INIT_OK on success, otherwise
+ // sql::INIT_FAILURE returned.
+ sql::InitStatus InitAndroidCacheDatabase(const FilePath& db_name);
+
+ // Adds a row to the bookmark_cache table. Returns true on success.
+ bool AddBookmarkCacheRow(const base::Time& created_time,
+ const base::Time& last_visit_time,
+ URLID url_id);
+
+ // Clears all rows in the bookmark_cache table; Returns true on success.
+ bool ClearAllBookmarkCache();
+
+ // Marks the given |url_ids| as bookmarked; Returns true on success.
+ bool MarkURLsAsBookmarked(const std::vector<URLID>& url_id);
+
+ // Set the given |url_id|'s favicon column to |favicon_id|. Returns true on
+ // success.
+ bool SetFaviconID(URLID url_id, FaviconID favicon_id);
+
+ protected:
+ // Returns the database for the functions in this interface. The decendent of
+ // this class implements these functions to return its objects.
+ virtual sql::Connection& GetDB() = 0;
+
+ private:
+ FRIEND_TEST_ALL_PREFIXES(AndroidCacheDatabaseTest,
+ CreateDatabase);
+
+ // Creates the database and make it ready for attaching; Returns true on
+ // success.
+ bool CreateDatabase(const FilePath& db_name);
+
+ // Creates the bookmark_cache table in attached DB; Returns true on success.
+ // The created_time, last_visit_time, favicon_id and bookmark are stored.
+ //
+ // The created_time and last_visit_time are cached because Android use the
+ // millisecond for the time unit, and we don't want to convert it in the
+ // runtime for it requires to parsing the SQL.
+ //
+ // The favicon_id is also cached because it is in thumbnail database. Its
+ // default value is set to null as the type of favicon column in Android APIs
+ // is blob. To use default value null, we can support client query by
+ // 'WHERE favicon IS NULL'.
+ //
+ // Bookmark column is used to indicate whether the url is bookmarked.
+ bool CreateBookmarkCacheTable();
+
+ // Attachs to history database; Returns true on success.
+ bool Attach();
+
+ // Does the real attach. Returns true on success.
+ bool DoAttach();
+
+ FilePath db_name_;
+
+ DISALLOW_COPY_AND_ASSIGN(AndroidCacheDatabase);
+};
+
+} // namespace history
+
+#endif // CHROME_BROWSER_HISTORY_ANDROID_ANDROID_CACHE_DATABASE_H_
« no previous file with comments | « no previous file | chrome/browser/history/android/android_cache_database.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698