summaryrefslogtreecommitdiffstats
path: root/WebCore/storage/OriginUsageRecord.h
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:15 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:15 -0800
commit1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353 (patch)
tree4457a7306ea5acb43fe05bfe0973b1f7faf97ba2 /WebCore/storage/OriginUsageRecord.h
parent9364f22aed35e1a1e9d07c121510f80be3ab0502 (diff)
downloadexternal_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.zip
external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.tar.gz
external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.tar.bz2
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'WebCore/storage/OriginUsageRecord.h')
-rw-r--r--WebCore/storage/OriginUsageRecord.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/WebCore/storage/OriginUsageRecord.h b/WebCore/storage/OriginUsageRecord.h
index a83c267..094ce3d 100644
--- a/WebCore/storage/OriginUsageRecord.h
+++ b/WebCore/storage/OriginUsageRecord.h
@@ -36,28 +36,30 @@
namespace WebCore {
+// Objects of this class can be used from multiple threads with external synchronization.
+// String arguments are also supposed to be deeply copied by the caller when necessary.
class OriginUsageRecord {
public:
OriginUsageRecord();
-
+
void addDatabase(const String& identifier, const String& fullPath);
void removeDatabase(const String& identifier);
- void markDatabase(const String& identifier);
+ void markDatabase(const String& identifier); // Size may have changed, and will need to be recalculated.
unsigned long long diskUsage();
private:
struct DatabaseEntry {
- DatabaseEntry() : size(OriginUsageRecord::unknownDiskUsage()) { }
- DatabaseEntry(const String& theFilename, unsigned long long theSize) : filename(theFilename), size(theSize) { }
+ DatabaseEntry() { }
+ DatabaseEntry(const String& filename) : filename(filename) { }
+ DatabaseEntry(const String& filename, unsigned long long size) : filename(filename), size(size) { }
String filename;
- unsigned long long size;
+ unsigned long long size; // This member remains uninitialized until disk usage is calculated.
};
HashMap<String, DatabaseEntry> m_databaseMap;
HashSet<String> m_unknownSet;
-
- unsigned long long m_diskUsage;
- static unsigned long long unknownDiskUsage();
+ unsigned long long m_cachedDiskUsage;
+ bool m_cachedDiskUsageIsValid;
};
} // namespace WebCore