// 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 "components/webdata/common/web_data_service_base.h" #include "base/bind.h" #include "base/message_loop/message_loop.h" #include "base/stl_util.h" #include "base/threading/thread.h" #include "components/webdata/common/web_database_service.h" //////////////////////////////////////////////////////////////////////////////// // // WebDataServiceBase implementation. // //////////////////////////////////////////////////////////////////////////////// using base::Bind; using base::Time; WebDataServiceBase::WebDataServiceBase( scoped_refptr wdbs, const ProfileErrorCallback& callback, const scoped_refptr& ui_thread) : base::RefCountedDeleteOnMessageLoop(ui_thread), wdbs_(wdbs), profile_error_callback_(callback) { } void WebDataServiceBase::ShutdownOnUIThread() { } void WebDataServiceBase::Init() { DCHECK(wdbs_.get()); wdbs_->RegisterDBErrorCallback(profile_error_callback_); wdbs_->LoadDatabase(); } void WebDataServiceBase::UnloadDatabase() { if (!wdbs_.get()) return; wdbs_->UnloadDatabase(); } void WebDataServiceBase::ShutdownDatabase() { if (!wdbs_.get()) return; wdbs_->ShutdownDatabase(); } void WebDataServiceBase::CancelRequest(Handle h) { if (!wdbs_.get()) return; wdbs_->CancelRequest(h); } bool WebDataServiceBase::IsDatabaseLoaded() { if (!wdbs_.get()) return false; return wdbs_->db_loaded(); } void WebDataServiceBase::RegisterDBLoadedCallback( const DBLoadedCallback& callback) { if (!wdbs_.get()) return; wdbs_->RegisterDBLoadedCallback(callback); } WebDatabase* WebDataServiceBase::GetDatabase() { if (!wdbs_.get()) return NULL; return wdbs_->GetDatabaseOnDB(); } WebDataServiceBase::~WebDataServiceBase() { }