OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/common/indexed_db/indexed_db_param_traits.h" | 5 #include "content/common/indexed_db/indexed_db_param_traits.h" |
6 #include "content/common/indexed_db/indexed_db_struct_traits.h" | 6 #include "content/common/indexed_db/indexed_db_struct_traits.h" |
7 #include "mojo/common/common_custom_types_struct_traits.h" | 7 #include "mojo/common/common_custom_types_struct_traits.h" |
8 | 8 |
9 namespace mojo { | 9 namespace mojo { |
10 | 10 |
| 11 // static |
| 12 bool StructTraits<indexed_db::mojom::IndexKeysDataView, |
| 13 content::IndexedDBIndexKeys>:: |
| 14 Read(indexed_db::mojom::IndexKeysDataView data, |
| 15 content::IndexedDBIndexKeys* out) { |
| 16 out->first = data.index_id(); |
| 17 return data.ReadIndexKeys(&out->second); |
| 18 } |
| 19 |
| 20 // static |
11 bool StructTraits<indexed_db::mojom::IndexMetadataDataView, | 21 bool StructTraits<indexed_db::mojom::IndexMetadataDataView, |
12 content::IndexedDBIndexMetadata>:: | 22 content::IndexedDBIndexMetadata>:: |
13 Read(indexed_db::mojom::IndexMetadataDataView data, | 23 Read(indexed_db::mojom::IndexMetadataDataView data, |
14 content::IndexedDBIndexMetadata* out) { | 24 content::IndexedDBIndexMetadata* out) { |
15 out->id = data.id(); | 25 out->id = data.id(); |
16 if (!data.ReadName(&out->name)) | 26 if (!data.ReadName(&out->name)) |
17 return false; | 27 return false; |
18 if (!data.ReadKeyPath(&out->key_path)) | 28 if (!data.ReadKeyPath(&out->key_path)) |
19 return false; | 29 return false; |
20 out->unique = data.unique(); | 30 out->unique = data.unique(); |
21 out->multi_entry = data.multi_entry(); | 31 out->multi_entry = data.multi_entry(); |
22 return true; | 32 return true; |
23 } | 33 } |
24 | 34 |
| 35 // static |
25 bool StructTraits<indexed_db::mojom::ObjectStoreMetadataDataView, | 36 bool StructTraits<indexed_db::mojom::ObjectStoreMetadataDataView, |
26 content::IndexedDBObjectStoreMetadata>:: | 37 content::IndexedDBObjectStoreMetadata>:: |
27 Read(indexed_db::mojom::ObjectStoreMetadataDataView data, | 38 Read(indexed_db::mojom::ObjectStoreMetadataDataView data, |
28 content::IndexedDBObjectStoreMetadata* out) { | 39 content::IndexedDBObjectStoreMetadata* out) { |
29 out->id = data.id(); | 40 out->id = data.id(); |
30 if (!data.ReadName(&out->name)) | 41 if (!data.ReadName(&out->name)) |
31 return false; | 42 return false; |
32 if (!data.ReadKeyPath(&out->key_path)) | 43 if (!data.ReadKeyPath(&out->key_path)) |
33 return false; | 44 return false; |
34 out->auto_increment = data.auto_increment(); | 45 out->auto_increment = data.auto_increment(); |
35 out->max_index_id = data.max_index_id(); | 46 out->max_index_id = data.max_index_id(); |
36 ArrayDataView<indexed_db::mojom::IndexMetadataDataView> indexes; | 47 ArrayDataView<indexed_db::mojom::IndexMetadataDataView> indexes; |
37 data.GetIndexesDataView(&indexes); | 48 data.GetIndexesDataView(&indexes); |
38 for (size_t i = 0; i < indexes.size(); ++i) { | 49 for (size_t i = 0; i < indexes.size(); ++i) { |
39 indexed_db::mojom::IndexMetadataDataView index; | 50 indexed_db::mojom::IndexMetadataDataView index; |
40 indexes.GetDataView(i, &index); | 51 indexes.GetDataView(i, &index); |
41 DCHECK(!base::ContainsKey(out->indexes, index.id())); | 52 DCHECK(!base::ContainsKey(out->indexes, index.id())); |
42 if (!StructTraits< | 53 if (!StructTraits< |
43 indexed_db::mojom::IndexMetadataDataView, | 54 indexed_db::mojom::IndexMetadataDataView, |
44 content::IndexedDBIndexMetadata>::Read(index, | 55 content::IndexedDBIndexMetadata>::Read(index, |
45 &out->indexes[index.id()])) | 56 &out->indexes[index.id()])) |
46 return false; | 57 return false; |
47 } | 58 } |
48 return true; | 59 return true; |
49 } | 60 } |
50 | 61 |
| 62 // static |
51 bool StructTraits<indexed_db::mojom::DatabaseMetadataDataView, | 63 bool StructTraits<indexed_db::mojom::DatabaseMetadataDataView, |
52 content::IndexedDBDatabaseMetadata>:: | 64 content::IndexedDBDatabaseMetadata>:: |
53 Read(indexed_db::mojom::DatabaseMetadataDataView data, | 65 Read(indexed_db::mojom::DatabaseMetadataDataView data, |
54 content::IndexedDBDatabaseMetadata* out) { | 66 content::IndexedDBDatabaseMetadata* out) { |
55 out->id = data.id(); | 67 out->id = data.id(); |
56 if (!data.ReadName(&out->name)) | 68 if (!data.ReadName(&out->name)) |
57 return false; | 69 return false; |
58 out->version = data.version(); | 70 out->version = data.version(); |
59 out->max_object_store_id = data.max_object_store_id(); | 71 out->max_object_store_id = data.max_object_store_id(); |
60 ArrayDataView<indexed_db::mojom::ObjectStoreMetadataDataView> object_stores; | 72 ArrayDataView<indexed_db::mojom::ObjectStoreMetadataDataView> object_stores; |
61 data.GetObjectStoresDataView(&object_stores); | 73 data.GetObjectStoresDataView(&object_stores); |
62 for (size_t i = 0; i < object_stores.size(); ++i) { | 74 for (size_t i = 0; i < object_stores.size(); ++i) { |
63 indexed_db::mojom::ObjectStoreMetadataDataView object_store; | 75 indexed_db::mojom::ObjectStoreMetadataDataView object_store; |
64 object_stores.GetDataView(i, &object_store); | 76 object_stores.GetDataView(i, &object_store); |
65 DCHECK(!base::ContainsKey(out->object_stores, object_store.id())); | 77 DCHECK(!base::ContainsKey(out->object_stores, object_store.id())); |
66 if (!StructTraits<indexed_db::mojom::ObjectStoreMetadataDataView, | 78 if (!StructTraits<indexed_db::mojom::ObjectStoreMetadataDataView, |
67 content::IndexedDBObjectStoreMetadata>:: | 79 content::IndexedDBObjectStoreMetadata>:: |
68 Read(object_store, &out->object_stores[object_store.id()])) | 80 Read(object_store, &out->object_stores[object_store.id()])) |
69 return false; | 81 return false; |
70 } | 82 } |
71 return true; | 83 return true; |
72 } | 84 } |
73 | 85 |
74 } // namespace mojo | 86 } // namespace mojo |
OLD | NEW |