1 // Copyright 2013 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.
5 #include "content/browser/indexed_db/indexed_db_connection.h"
9 IndexedDBConnection::IndexedDBConnection(
10 scoped_refptr
<IndexedDBDatabase
> database
,
11 scoped_refptr
<IndexedDBDatabaseCallbacks
> callbacks
)
12 : database_(database
), callbacks_(callbacks
), weak_factory_(this) {}
14 IndexedDBConnection::~IndexedDBConnection() {}
16 void IndexedDBConnection::Close() {
17 if (!callbacks_
.get())
19 base::WeakPtr
<IndexedDBConnection
> this_obj
= weak_factory_
.GetWeakPtr();
20 database_
->Close(this, false /* forced */);
27 void IndexedDBConnection::ForceClose() {
28 if (!callbacks_
.get())
31 // IndexedDBDatabase::Close() can delete this instance.
32 base::WeakPtr
<IndexedDBConnection
> this_obj
= weak_factory_
.GetWeakPtr();
33 scoped_refptr
<IndexedDBDatabaseCallbacks
> callbacks(callbacks_
);
34 database_
->Close(this, true /* forced */);
39 callbacks
->OnForcedClose();
42 void IndexedDBConnection::VersionChangeIgnored() {
45 database_
->VersionChangeIgnored();
48 bool IndexedDBConnection::IsConnected() {
49 return database_
.get() != NULL
;
52 } // namespace content