diff options
Diffstat (limited to 'content/browser/indexed_db/indexed_db_metadata.h')
-rw-r--r-- | content/browser/indexed_db/indexed_db_metadata.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/content/browser/indexed_db/indexed_db_metadata.h b/content/browser/indexed_db/indexed_db_metadata.h new file mode 100644 index 0000000..29f6a9f --- /dev/null +++ b/content/browser/indexed_db/indexed_db_metadata.h @@ -0,0 +1,84 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_METADATA_H_ +#define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_METADATA_H_ + +#include <map> + +#include "base/basictypes.h" +#include "base/string16.h" +#include "content/common/indexed_db/indexed_db_key_path.h" + +namespace content { + +struct IndexedDBIndexMetadata { + IndexedDBIndexMetadata() {} + IndexedDBIndexMetadata(const string16& name, + int64 id, + const IndexedDBKeyPath& key_path, + bool unique, + bool multi_entry) + : name(name), + id(id), + key_path(key_path), + unique(unique), + multi_entry(multi_entry) {} + string16 name; + int64 id; + IndexedDBKeyPath key_path; + bool unique; + bool multi_entry; + + static const int64 kInvalidId = -1; +}; + +struct CONTENT_EXPORT IndexedDBObjectStoreMetadata { + IndexedDBObjectStoreMetadata(); + IndexedDBObjectStoreMetadata(const string16& name, + int64 id, + const IndexedDBKeyPath& key_path, + bool auto_increment, + int64 max_index_id); + ~IndexedDBObjectStoreMetadata(); + string16 name; + int64 id; + IndexedDBKeyPath key_path; + bool auto_increment; + int64 max_index_id; + + static const int64 kInvalidId = -1; + + typedef std::map<int64, IndexedDBIndexMetadata> IndexMap; + IndexMap indexes; +}; + +struct CONTENT_EXPORT IndexedDBDatabaseMetadata { + // TODO(jsbell): These can probably be collapsed into 0. + enum { + NO_INT_VERSION = -1, + DEFAULT_INT_VERSION = 0 + }; + + typedef std::map<int64, IndexedDBObjectStoreMetadata> ObjectStoreMap; + + IndexedDBDatabaseMetadata(); + IndexedDBDatabaseMetadata(const string16& name, + int64 id, + const string16& version, + int64 int_version, + int64 max_object_store_id); + ~IndexedDBDatabaseMetadata(); + + string16 name; + int64 id; + string16 version; + int64 int_version; + int64 max_object_store_id; + + ObjectStoreMap object_stores; +}; +} + +#endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_METADATA_H_ |