Home | History | Annotate | Download | only in predictors
      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