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

Unified Diff: chrome/browser/autocomplete/network_action_predictor_database.cc

Issue 9610006: Refactoring, moving and renaming the NetworkActionPredictor. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Resolved sync conflicts. Created 8 years, 8 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
Index: chrome/browser/autocomplete/network_action_predictor_database.cc
diff --git a/chrome/browser/autocomplete/network_action_predictor_database.cc b/chrome/browser/autocomplete/network_action_predictor_database.cc
deleted file mode 100644
index a1454f439e0166e0c08fa3b9d903fd391354c793..0000000000000000000000000000000000000000
--- a/chrome/browser/autocomplete/network_action_predictor_database.cc
+++ /dev/null
@@ -1,257 +0,0 @@
-// 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.
-
-#include "chrome/browser/autocomplete/network_action_predictor_database.h"
-
-#include "base/bind.h"
-#include "base/file_util.h"
-#include "base/logging.h"
-#include "base/metrics/histogram.h"
-#include "base/stringprintf.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/guid.h"
-#include "content/public/browser/browser_thread.h"
-#include "sql/statement.h"
-
-namespace {
-
-const char kNetworkActionPredictorTableName[] = "network_action_predictor";
-const FilePath::CharType kNetworkActionPredictorDatabaseName[] =
- FILE_PATH_LITERAL("Network Action Predictor");
-
-// The maximum length allowed for strings in the database.
-const size_t kMaxDataLength = 2048;
-
-void BindRowToStatement(const NetworkActionPredictorDatabase::Row& row,
- sql::Statement* statement) {
- DCHECK(guid::IsValidGUID(row.id));
- statement->BindString(0, row.id);
- statement->BindString16(1, row.user_text.substr(0, kMaxDataLength));
- statement->BindString(2, row.url.spec().substr(0, kMaxDataLength));
- statement->BindInt(3, row.number_of_hits);
- statement->BindInt(4, row.number_of_misses);
-}
-
-bool StepAndInitializeRow(sql::Statement* statement,
- NetworkActionPredictorDatabase::Row* row) {
- if (!statement->Step())
- return false;
-
- row->id = statement->ColumnString(0);
- row->user_text = statement->ColumnString16(1);
- row->url = GURL(statement->ColumnString(2));
- row->number_of_hits = statement->ColumnInt(3);
- row->number_of_misses = statement->ColumnInt(4);
- return true;
-}
-
-void LogDatabaseStats(const FilePath& db_path, sql::Connection* db) {
- int64 db_size;
- bool success = file_util::GetFileSize(db_path, &db_size);
- DCHECK(success) << "Failed to get file size for " << db_path.value();
- UMA_HISTOGRAM_MEMORY_KB("NetworkActionPredictor.DatabaseSizeKB",
- static_cast<int>(db_size / 1024));
-
- sql::Statement count_statement(db->GetUniqueStatement(
- base::StringPrintf("SELECT count(id) FROM %s",
- kNetworkActionPredictorTableName).c_str()));
- if (!count_statement.Step())
- return;
- UMA_HISTOGRAM_COUNTS("NetworkActionPredictor.DatabaseRowCount",
- count_statement.ColumnInt(0));
-}
-
-}
-
-NetworkActionPredictorDatabase::Row::Row()
- : number_of_hits(0),
- number_of_misses(0) {
-}
-
-NetworkActionPredictorDatabase::Row::Row(const Row::Id& id,
- const string16& user_text,
- const GURL& url,
- int number_of_hits,
- int number_of_misses)
- : id(id),
- user_text(user_text),
- url(url),
- number_of_hits(number_of_hits),
- number_of_misses(number_of_misses) {
-}
-
-NetworkActionPredictorDatabase::NetworkActionPredictorDatabase(Profile* profile)
- : db_path_(profile->GetPath().Append(kNetworkActionPredictorDatabaseName)) {
-}
-
-NetworkActionPredictorDatabase::~NetworkActionPredictorDatabase() {
-}
-
-void NetworkActionPredictorDatabase::Initialize() {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- db_.set_exclusive_locking();
- if (!db_.Open(db_path_)) {
- canceled_.Set();
- return;
- }
-
- if (!db_.DoesTableExist(kNetworkActionPredictorTableName))
- CreateTable();
-
- LogDatabaseStats(db_path_, &db_);
-}
-
-void NetworkActionPredictorDatabase::GetRow(const Row::Id& id, Row* row) {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- sql::Statement statement(db_.GetCachedStatement(SQL_FROM_HERE,
- base::StringPrintf(
- "SELECT * FROM %s WHERE id=?",
- kNetworkActionPredictorTableName).c_str()));
- statement.BindString(0, id);
-
- bool success = StepAndInitializeRow(&statement, row);
- DCHECK(success) << "Failed to get row " << id << " from "
- << kNetworkActionPredictorTableName;
-}
-
-void NetworkActionPredictorDatabase::GetAllRows(
- std::vector<NetworkActionPredictorDatabase::Row>* row_buffer) {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
- CHECK(row_buffer);
- row_buffer->clear();
-
- if (canceled_.IsSet())
- return;
-
- sql::Statement statement(db_.GetCachedStatement(SQL_FROM_HERE,
- base::StringPrintf(
- "SELECT * FROM %s", kNetworkActionPredictorTableName).c_str()));
-
- Row row;
- while (StepAndInitializeRow(&statement, &row))
- row_buffer->push_back(row);
-}
-
-void NetworkActionPredictorDatabase::AddRow(
- const NetworkActionPredictorDatabase::Row& row) {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- sql::Statement statement(db_.GetCachedStatement(SQL_FROM_HERE,
- base::StringPrintf(
- "INSERT INTO %s "
- "(id, user_text, url, number_of_hits, number_of_misses) "
- "VALUES (?,?,?,?,?)", kNetworkActionPredictorTableName).c_str()));
- BindRowToStatement(row, &statement);
-
- bool success = statement.Run();
- DCHECK(success) << "Failed to insert row " << row.id << " into "
- << kNetworkActionPredictorTableName;
-}
-
-void NetworkActionPredictorDatabase::UpdateRow(
- const NetworkActionPredictorDatabase::Row& row) {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- sql::Statement statement(db_.GetCachedStatement(SQL_FROM_HERE,
- base::StringPrintf(
- "UPDATE %s "
- "SET id=?, user_text=?, url=?, number_of_hits=?, number_of_misses=? "
- "WHERE id=?1", kNetworkActionPredictorTableName).c_str()));
- BindRowToStatement(row, &statement);
-
- statement.Run();
- DCHECK_GT(db_.GetLastChangeCount(), 0);
-}
-
-void NetworkActionPredictorDatabase::DeleteRow(const Row::Id& id) {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- DeleteRows(std::vector<Row::Id>(1, id));
-}
-
-void NetworkActionPredictorDatabase::DeleteRows(
- const std::vector<Row::Id>& id_list) {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- sql::Statement statement(db_.GetUniqueStatement(base::StringPrintf(
- "DELETE FROM %s WHERE id=?",
- kNetworkActionPredictorTableName).c_str()));
-
- db_.BeginTransaction();
- for (std::vector<Row::Id>::const_iterator it = id_list.begin();
- it != id_list.end(); ++it) {
- statement.BindString(0, *it);
- statement.Run();
- statement.Reset(true);
- }
- db_.CommitTransaction();
-}
-
-void NetworkActionPredictorDatabase::DeleteAllRows() {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- sql::Statement statement(db_.GetCachedStatement(SQL_FROM_HERE,
- base::StringPrintf("DELETE FROM %s",
- kNetworkActionPredictorTableName).c_str()));
-
- statement.Run();
-}
-
-void NetworkActionPredictorDatabase::BeginTransaction() {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- db_.BeginTransaction();
-}
-
-void NetworkActionPredictorDatabase::CommitTransaction() {
- CHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::DB));
-
- if (canceled_.IsSet())
- return;
-
- db_.CommitTransaction();
-}
-
-void NetworkActionPredictorDatabase::OnPredictorDestroyed() {
- canceled_.Set();
-}
-
-void NetworkActionPredictorDatabase::CreateTable() {
- bool success = db_.Execute(base::StringPrintf(
- "CREATE TABLE %s ( "
- "id TEXT PRIMARY KEY, "
- "user_text TEXT, "
- "url TEXT, "
- "number_of_hits INTEGER, "
- "number_of_misses INTEGER)", kNetworkActionPredictorTableName).c_str());
- DCHECK(success) << "Failed to create " << kNetworkActionPredictorTableName
- << " table.";
-}

Powered by Google App Engine
This is Rietveld 408576698