| 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.";
|
| -}
|
|
|