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 "components/webdata/common/web_data_service_base.h" 6 7 #include "base/bind.h" 8 #include "base/message_loop/message_loop.h" 9 #include "base/stl_util.h" 10 #include "base/threading/thread.h" 11 #include "components/webdata/common/web_database_service.h" 12 13 //////////////////////////////////////////////////////////////////////////////// 14 // 15 // WebDataServiceBase implementation. 16 // 17 //////////////////////////////////////////////////////////////////////////////// 18 19 using base::Bind; 20 using base::Time; 21 22 WebDataServiceBase::WebDataServiceBase( 23 scoped_refptr<WebDatabaseService> wdbs, 24 const ProfileErrorCallback& callback, 25 const scoped_refptr<base::MessageLoopProxy>& ui_thread) 26 : base::RefCountedDeleteOnMessageLoop<WebDataServiceBase>(ui_thread), 27 wdbs_(wdbs), 28 profile_error_callback_(callback) { 29 } 30 31 void WebDataServiceBase::ShutdownOnUIThread() { 32 } 33 34 void WebDataServiceBase::Init() { 35 DCHECK(wdbs_.get()); 36 wdbs_->RegisterDBErrorCallback(profile_error_callback_); 37 wdbs_->LoadDatabase(); 38 } 39 40 void WebDataServiceBase::ShutdownDatabase() { 41 if (!wdbs_.get()) 42 return; 43 wdbs_->ShutdownDatabase(); 44 } 45 46 void WebDataServiceBase::CancelRequest(Handle h) { 47 if (!wdbs_.get()) 48 return; 49 wdbs_->CancelRequest(h); 50 } 51 52 bool WebDataServiceBase::IsDatabaseLoaded() { 53 if (!wdbs_.get()) 54 return false; 55 return wdbs_->db_loaded(); 56 } 57 58 void WebDataServiceBase::RegisterDBLoadedCallback( 59 const DBLoadedCallback& callback) { 60 if (!wdbs_.get()) 61 return; 62 wdbs_->RegisterDBLoadedCallback(callback); 63 } 64 65 WebDatabase* WebDataServiceBase::GetDatabase() { 66 if (!wdbs_.get()) 67 return NULL; 68 return wdbs_->GetDatabaseOnDB(); 69 } 70 71 WebDataServiceBase::~WebDataServiceBase() { 72 } 73