Index: webkit/database/database_tracker.h |
diff --git a/webkit/database/database_tracker.h b/webkit/database/database_tracker.h |
index a6c7720560e60548f91d94833aea8f76b7b2f1bc..139e5fee32d5ea5624df5a9b9882df16d4a23ff8 100644 |
--- a/webkit/database/database_tracker.h |
+++ b/webkit/database/database_tracker.h |
@@ -41,28 +41,26 @@ class OriginInfo { |
int64 TotalSize() const { return total_size_; } |
int64 Quota() const { return quota_; } |
void GetAllDatabaseNames(std::vector<string16>* databases) const { |
- for (std::map<string16, DatabaseInfo>::const_iterator it = |
- database_info_.begin(); it != database_info_.end(); it++) { |
+ for (DatabaseInfoMap::const_iterator it = database_info_.begin(); |
+ it != database_info_.end(); it++) { |
databases->push_back(it->first); |
} |
} |
int64 GetDatabaseSize(const string16& database_name) const { |
- std::map<string16, DatabaseInfo>::const_iterator it = |
- database_info_.find(database_name); |
+ DatabaseInfoMap::const_iterator it = database_info_.find(database_name); |
if (it != database_info_.end()) |
return it->second.first; |
return 0; |
} |
string16 GetDatabaseDescription(const string16& database_name) const { |
- std::map<string16, DatabaseInfo>::const_iterator it = |
- database_info_.find(database_name); |
+ DatabaseInfoMap::const_iterator it = database_info_.find(database_name); |
if (it != database_info_.end()) |
return it->second.second; |
return string16(); |
} |
protected: |
- typedef std::pair<int64, string16> DatabaseInfo; |
+ typedef std::map<string16, std::pair<int64, string16> > DatabaseInfoMap; |
OriginInfo(const string16& origin, int64 total_size, int64 quota) |
: origin_(origin), total_size_(total_size), quota_(quota) { } |
@@ -70,7 +68,7 @@ class OriginInfo { |
string16 origin_; |
int64 total_size_; |
int64 quota_; |
- std::map<string16, DatabaseInfo> database_info_; |
+ DatabaseInfoMap database_info_; |
}; |
// This class manages the main database, and keeps track of per origin quotas. |
@@ -101,9 +99,6 @@ class DatabaseTracker |
explicit DatabaseTracker(const FilePath& profile_path); |
- // Sets the default quota for all origins. Should be used in tests only. |
- void SetDefaultQuota(int64 quota); |
- |
void DatabaseOpened(const string16& origin_identifier, |
const string16& database_name, |
const string16& database_details, |
@@ -129,16 +124,24 @@ class DatabaseTracker |
bool GetAllOriginsInfo(std::vector<OriginInfo>* origins_info); |
void SetOriginQuota(const string16& origin_identifier, int64 new_quota); |
- bool DeleteDatabase(const string16& origin_identifier, |
- const string16& database_name); |
- bool DeleteOrigin(const string16& origin_identifier); |
+ |
+ // Sets the default quota for all origins. Should be used in tests only. |
+ void SetDefaultQuota(int64 quota); |
+ |
bool IsDatabaseScheduledForDeletion(const string16& origin_identifier, |
const string16& database_name); |
+ // Deletes a single database. Returns net::OK on success, net::FAILED on |
+ // failure, or net::ERR_IO_PENDING and |callback| is invoked upon completion, |
+ // if non-NULL. |
+ int DeleteDatabase(const string16& origin_identifier, |
+ const string16& database_name, |
+ net::CompletionCallback* callback); |
+ |
// Delete any databases that have been touched since the cutoff date that's |
// supplied. Returns net::OK on success, net::FAILED if not all databases |
// could be deleted, and net::ERR_IO_PENDING and |callback| is invoked upon |
- // completion. |
+ // completion, if non-NULL. |
int DeleteDataModifiedSince(const base::Time& cutoff, |
net::CompletionCallback* callback); |
@@ -148,6 +151,9 @@ class DatabaseTracker |
// Need this here to allow RefCountedThreadSafe to call ~DatabaseTracker(). |
friend class base::RefCountedThreadSafe<DatabaseTracker>; |
+ typedef std::map<string16, std::set<string16> > DatabaseSet; |
+ typedef std::map<net::CompletionCallback*, DatabaseSet> PendingCompletionMap; |
+ |
class CachedOriginInfo : public OriginInfo { |
public: |
CachedOriginInfo() : OriginInfo(string16(), 0, 0) {} |
@@ -169,6 +175,10 @@ class DatabaseTracker |
~DatabaseTracker(); |
+ bool DeleteClosedDatabase(const string16& origin_identifier, |
+ const string16& database_name); |
+ bool DeleteOrigin(const string16& origin_identifier); |
+ |
bool LazyInit(); |
bool UpgradeToCurrentVersion(); |
void InsertOrUpdateDatabaseDetails(const string16& origin_identifier, |
@@ -200,8 +210,8 @@ class DatabaseTracker |
DatabaseConnections database_connections_; |
// The set of databases that should be deleted but are still opened |
- std::map<string16, std::set<string16> > dbs_to_be_deleted_; |
- net::CompletionCallback* dbs_deleted_callback_; |
+ DatabaseSet dbs_to_be_deleted_; |
+ PendingCompletionMap deletion_callbacks_; |
// Default quota for all origins; changed only by tests |
int64 default_quota_; |