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

Side by Side Diff: webkit/database/database_connections.cc

Issue 507014: Adding methods that will be used by the quota management UI.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 11 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
« no previous file with comments | « webkit/database/database_connections.h ('k') | webkit/database/database_tracker.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2009 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 "webkit/database/database_connections.h"
6
7 #include "base/logging.h"
8
9 namespace webkit_database {
10
11 DatabaseConnections::DatabaseConnections() {
12 }
13
14 DatabaseConnections::~DatabaseConnections() {
15 DCHECK(connections_.empty());
16 }
17
18 bool DatabaseConnections::IsDatabaseOpened(const string16& origin_identifier,
19 const string16& database_name) {
20 OriginConnections::const_iterator origin_it =
21 connections_.find(origin_identifier);
22 if (origin_it == connections_.end())
23 return false;
24 const DBConnections& origin_connections = origin_it->second;
25 return (origin_connections.find(database_name) != origin_connections.end());
26 }
27
28 bool DatabaseConnections::IsOriginUsed(const string16& origin_identifier) {
29 return (connections_.find(origin_identifier) != connections_.end());
30 }
31
32 void DatabaseConnections::AddConnection(const string16& origin_identifier,
33 const string16& database_name) {
34 connections_[origin_identifier][database_name]++;
35 }
36
37 void DatabaseConnections::RemoveConnection(const string16& origin_identifier,
38 const string16& database_name) {
39 RemoveConnectionsHelper(origin_identifier, database_name, 1);
40 }
41
42 void DatabaseConnections::RemoveAllConnections() {
43 connections_.clear();
44 }
45
46 void DatabaseConnections::RemoveConnections(
47 const DatabaseConnections& connections) {
48 for (OriginConnections::const_iterator origin_it =
49 connections.connections_.begin();
50 origin_it != connections.connections_.end();
51 origin_it++) {
52 const DBConnections& db_connections = origin_it->second;
53 for (DBConnections::const_iterator db_it = db_connections.begin();
54 db_it != db_connections.end(); db_it++) {
55 RemoveConnectionsHelper(origin_it->first, db_it->first, db_it->second);
56 }
57 }
58 }
59
60 void DatabaseConnections::RemoveConnectionsHelper(
61 const string16& origin_identifier,
62 const string16& database_name,
63 int num_connections) {
64 OriginConnections::iterator origin_iterator =
65 connections_.find(origin_identifier);
66 DCHECK(origin_iterator != connections_.end());
67 DBConnections& db_connections = origin_iterator->second;
68 int& count = db_connections[database_name];
69 DCHECK(count >= num_connections);
70 count -= num_connections;
71 if (!count) {
72 db_connections.erase(database_name);
73 if (db_connections.empty())
74 connections_.erase(origin_iterator);
75 }
76 }
77
78 } // namespace webkit_database
OLDNEW
« no previous file with comments | « webkit/database/database_connections.h ('k') | webkit/database/database_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698