OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2013 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 #ifndef CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INDEX_WRITER_H_ | |
6 #define CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INDEX_WRITER_H_ | |
7 | |
8 #include <map> | |
9 #include <vector> | |
10 | |
11 #include "base/memory/scoped_vector.h" | |
12 #include "content/browser/indexed_db/indexed_db_backing_store.h" | |
13 #include "content/browser/indexed_db/indexed_db_database_impl.h" | |
14 #include "content/browser/indexed_db/indexed_db_metadata.h" | |
15 #include "content/common/indexed_db/indexed_db_key_path.h" | |
16 | |
17 namespace content { | |
18 | |
19 class IndexedDBDatabaseImpl; | |
20 class IndexedDBTransaction; | |
21 struct IndexedDBObjectStoreMetadata; | |
22 | |
23 // TODO: this namespace is temporary until we move its contents out to their | |
jamesr
2013/05/21 23:56:06
TODO(who):
jsbell
2013/05/22 17:54:44
Done.
| |
24 // own home. | |
25 namespace IndexedDBObjectStoreImpl { | |
26 | |
27 class IndexWriter { | |
28 public: | |
29 explicit IndexWriter(const IndexedDBIndexMetadata& index_metadata); | |
30 | |
31 IndexWriter(const IndexedDBIndexMetadata& index_metadata, | |
32 const IndexedDBDatabase::IndexKeys& index_keys); | |
33 | |
34 bool VerifyIndexKeys(IndexedDBBackingStore*, | |
35 IndexedDBBackingStore::Transaction*, | |
36 int64_t database_id, | |
37 int64_t object_store_id, | |
38 int64_t index_id, | |
39 bool* can_add_keys, | |
40 const IndexedDBKey& primary_key, | |
41 string16* error_message = 0) const WARN_UNUSED_RESULT; | |
42 | |
43 void WriteIndexKeys(const IndexedDBBackingStore::RecordIdentifier&, | |
44 IndexedDBBackingStore*, | |
45 IndexedDBBackingStore::Transaction*, | |
46 int64_t database_id, | |
47 int64_t object_store_id) const; | |
48 | |
49 ~IndexWriter(); | |
50 | |
51 private: | |
52 bool AddingKeyAllowed(IndexedDBBackingStore*, | |
53 IndexedDBBackingStore::Transaction*, | |
54 int64_t database_id, | |
55 int64_t object_store_id, | |
56 int64_t index_id, | |
57 const IndexedDBKey& index_key, | |
58 const IndexedDBKey& primary_key, | |
59 bool* allowed) const WARN_UNUSED_RESULT; | |
60 | |
61 const IndexedDBIndexMetadata index_metadata_; | |
62 IndexedDBDatabase::IndexKeys index_keys_; | |
63 }; | |
64 | |
65 bool MakeIndexWriters(scoped_refptr<IndexedDBTransaction>, | |
66 IndexedDBBackingStore*, | |
67 int64_t database_id, | |
68 const IndexedDBObjectStoreMetadata&, | |
69 const IndexedDBKey& primary_key, | |
70 bool key_was_generated, | |
71 const std::vector<int64_t>& index_ids, | |
72 const std::vector<IndexedDBDatabase::IndexKeys>&, | |
73 ScopedVector<IndexWriter>* index_writers, | |
74 string16* error_message, | |
75 bool* completed) WARN_UNUSED_RESULT; | |
76 | |
77 }; | |
78 | |
79 } // namespace content | |
80 | |
81 #endif // CONTENT_BROWSER_INDEXED_DB_INDEXED_DB_INDEX_WRITER_H_ | |
OLD | NEW |