Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(262)

Side by Side Diff: storage/common/database/database_connections.cc

Issue 442383002: Move storage-related files from webkit/ to new top-level directory storage/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/common/database/database_connections.h" 5 #include "storage/common/database/database_connections.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/message_loop/message_loop_proxy.h" 11 #include "base/message_loop/message_loop_proxy.h"
12 12
13 namespace webkit_database { 13 namespace webkit_database {
14 14
15 DatabaseConnections::DatabaseConnections() { 15 DatabaseConnections::DatabaseConnections() {
(...skipping 16 matching lines...) Expand all
32 return false; 32 return false;
33 const DBConnections& origin_connections = origin_it->second; 33 const DBConnections& origin_connections = origin_it->second;
34 return (origin_connections.find(database_name) != origin_connections.end()); 34 return (origin_connections.find(database_name) != origin_connections.end());
35 } 35 }
36 36
37 bool DatabaseConnections::IsOriginUsed( 37 bool DatabaseConnections::IsOriginUsed(
38 const std::string& origin_identifier) const { 38 const std::string& origin_identifier) const {
39 return (connections_.find(origin_identifier) != connections_.end()); 39 return (connections_.find(origin_identifier) != connections_.end());
40 } 40 }
41 41
42 bool DatabaseConnections::AddConnection( 42 bool DatabaseConnections::AddConnection(const std::string& origin_identifier,
43 const std::string& origin_identifier, 43 const base::string16& database_name) {
44 const base::string16& database_name) {
45 int& count = connections_[origin_identifier][database_name].first; 44 int& count = connections_[origin_identifier][database_name].first;
46 return ++count == 1; 45 return ++count == 1;
47 } 46 }
48 47
49 bool DatabaseConnections::RemoveConnection( 48 bool DatabaseConnections::RemoveConnection(
50 const std::string& origin_identifier, 49 const std::string& origin_identifier,
51 const base::string16& database_name) { 50 const base::string16& database_name) {
52 return RemoveConnectionsHelper(origin_identifier, database_name, 1); 51 return RemoveConnectionsHelper(origin_identifier, database_name, 1);
53 } 52 }
54 53
55 void DatabaseConnections::RemoveAllConnections() { 54 void DatabaseConnections::RemoveAllConnections() {
56 connections_.clear(); 55 connections_.clear();
57 } 56 }
58 57
59 void DatabaseConnections::RemoveConnections( 58 void DatabaseConnections::RemoveConnections(
60 const DatabaseConnections& connections, 59 const DatabaseConnections& connections,
61 std::vector<std::pair<std::string, base::string16> >* closed_dbs) { 60 std::vector<std::pair<std::string, base::string16> >* closed_dbs) {
62 for (OriginConnections::const_iterator origin_it = 61 for (OriginConnections::const_iterator origin_it =
63 connections.connections_.begin(); 62 connections.connections_.begin();
64 origin_it != connections.connections_.end(); 63 origin_it != connections.connections_.end();
65 origin_it++) { 64 origin_it++) {
66 const DBConnections& db_connections = origin_it->second; 65 const DBConnections& db_connections = origin_it->second;
67 for (DBConnections::const_iterator db_it = db_connections.begin(); 66 for (DBConnections::const_iterator db_it = db_connections.begin();
68 db_it != db_connections.end(); db_it++) { 67 db_it != db_connections.end();
69 if (RemoveConnectionsHelper(origin_it->first, db_it->first, 68 db_it++) {
70 db_it->second.first)) 69 if (RemoveConnectionsHelper(
70 origin_it->first, db_it->first, db_it->second.first))
71 closed_dbs->push_back(std::make_pair(origin_it->first, db_it->first)); 71 closed_dbs->push_back(std::make_pair(origin_it->first, db_it->first));
72 } 72 }
73 } 73 }
74 } 74 }
75 75
76 int64 DatabaseConnections::GetOpenDatabaseSize( 76 int64 DatabaseConnections::GetOpenDatabaseSize(
77 const std::string& origin_identifier, 77 const std::string& origin_identifier,
78 const base::string16& database_name) const { 78 const base::string16& database_name) const {
79 DCHECK(IsDatabaseOpened(origin_identifier, database_name)); 79 DCHECK(IsDatabaseOpened(origin_identifier, database_name));
80 return connections_[origin_identifier][database_name].second; 80 return connections_[origin_identifier][database_name].second;
81 } 81 }
82 82
83 void DatabaseConnections::SetOpenDatabaseSize( 83 void DatabaseConnections::SetOpenDatabaseSize(
84 const std::string& origin_identifier, 84 const std::string& origin_identifier,
85 const base::string16& database_name, 85 const base::string16& database_name,
86 int64 size) { 86 int64 size) {
87 DCHECK(IsDatabaseOpened(origin_identifier, database_name)); 87 DCHECK(IsDatabaseOpened(origin_identifier, database_name));
88 connections_[origin_identifier][database_name].second = size; 88 connections_[origin_identifier][database_name].second = size;
89 } 89 }
90 90
91 void DatabaseConnections::ListConnections( 91 void DatabaseConnections::ListConnections(
92 std::vector<std::pair<std::string, base::string16> > *list) const { 92 std::vector<std::pair<std::string, base::string16> >* list) const {
93 for (OriginConnections::const_iterator origin_it = 93 for (OriginConnections::const_iterator origin_it = connections_.begin();
94 connections_.begin();
95 origin_it != connections_.end(); 94 origin_it != connections_.end();
96 origin_it++) { 95 origin_it++) {
97 const DBConnections& db_connections = origin_it->second; 96 const DBConnections& db_connections = origin_it->second;
98 for (DBConnections::const_iterator db_it = db_connections.begin(); 97 for (DBConnections::const_iterator db_it = db_connections.begin();
99 db_it != db_connections.end(); db_it++) { 98 db_it != db_connections.end();
99 db_it++) {
100 list->push_back(std::make_pair(origin_it->first, db_it->first)); 100 list->push_back(std::make_pair(origin_it->first, db_it->first));
101 } 101 }
102 } 102 }
103 } 103 }
104 104
105 bool DatabaseConnections::RemoveConnectionsHelper( 105 bool DatabaseConnections::RemoveConnectionsHelper(
106 const std::string& origin_identifier, 106 const std::string& origin_identifier,
107 const base::string16& database_name, 107 const base::string16& database_name,
108 int num_connections) { 108 int num_connections) {
109 OriginConnections::iterator origin_iterator = 109 OriginConnections::iterator origin_iterator =
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 } 155 }
156 156
157 void DatabaseConnectionsWrapper::RemoveOpenConnection( 157 void DatabaseConnectionsWrapper::RemoveOpenConnection(
158 const std::string& origin_identifier, 158 const std::string& origin_identifier,
159 const base::string16& database_name) { 159 const base::string16& database_name) {
160 // But only remove from the collection on the main thread 160 // But only remove from the collection on the main thread
161 // so we can handle the waiting_for_dbs_to_close_ case. 161 // so we can handle the waiting_for_dbs_to_close_ case.
162 if (!main_thread_->BelongsToCurrentThread()) { 162 if (!main_thread_->BelongsToCurrentThread()) {
163 main_thread_->PostTask( 163 main_thread_->PostTask(
164 FROM_HERE, 164 FROM_HERE,
165 base::Bind(&DatabaseConnectionsWrapper::RemoveOpenConnection, this, 165 base::Bind(&DatabaseConnectionsWrapper::RemoveOpenConnection,
166 origin_identifier, database_name)); 166 this,
167 origin_identifier,
168 database_name));
167 return; 169 return;
168 } 170 }
169 base::AutoLock auto_lock(open_connections_lock_); 171 base::AutoLock auto_lock(open_connections_lock_);
170 open_connections_.RemoveConnection(origin_identifier, database_name); 172 open_connections_.RemoveConnection(origin_identifier, database_name);
171 if (waiting_for_dbs_to_close_ && open_connections_.IsEmpty()) 173 if (waiting_for_dbs_to_close_ && open_connections_.IsEmpty())
172 base::MessageLoop::current()->Quit(); 174 base::MessageLoop::current()->Quit();
173 } 175 }
174 176
175 } // namespace webkit_database 177 } // namespace webkit_database
OLDNEW
« no previous file with comments | « storage/common/database/database_connections.h ('k') | storage/common/database/database_identifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698