1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/predictors/predictor_table_base.h" 6 7 #include "base/logging.h" 8 #include "content/public/browser/browser_thread.h" 9 #include "sql/connection.h" 10 11 using content::BrowserThread; 12 13 namespace predictors { 14 15 PredictorTableBase::PredictorTableBase() : db_(NULL) { 16 } 17 18 PredictorTableBase::~PredictorTableBase() { 19 } 20 21 void PredictorTableBase::Initialize(sql::Connection* db) { 22 CHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 23 db_ = db; 24 CreateTableIfNonExistent(); 25 } 26 27 void PredictorTableBase::SetCancelled() { 28 cancelled_.Set(); 29 } 30 31 sql::Connection* PredictorTableBase::DB() { 32 CHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 33 return db_; 34 } 35 36 void PredictorTableBase::ResetDB() { 37 CHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 38 db_ = NULL; 39 } 40 41 bool PredictorTableBase::CantAccessDatabase() { 42 CHECK(BrowserThread::CurrentlyOn(BrowserThread::DB)); 43 return cancelled_.IsSet() || !db_; 44 } 45 46 } // namespace predictors 47