Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(512)

Side by Side Diff: content/common/indexed_db/indexed_db_enum_traits.cc

Issue 2507233002: Define EnumTraits for many IndexedDB enums. (Closed)
Patch Set: GCC doesn't trust exhaustive switch statements. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/common/indexed_db/indexed_db_enum_traits.h"
6
7 using indexed_db::mojom::CursorDirection;
8 using indexed_db::mojom::DataLoss;
9 using indexed_db::mojom::PutMode;
10 using indexed_db::mojom::TaskType;
11 using indexed_db::mojom::TransactionMode;
12
13 namespace mojo {
14
15 // static
16 CursorDirection
17 EnumTraits<CursorDirection, blink::WebIDBCursorDirection>::ToMojom(
18 blink::WebIDBCursorDirection input) {
19 switch (input) {
20 case blink::WebIDBCursorDirectionNext:
21 return CursorDirection::Next;
22 case blink::WebIDBCursorDirectionNextNoDuplicate:
23 return CursorDirection::NextNoDuplicate;
24 case blink::WebIDBCursorDirectionPrev:
25 return CursorDirection::Prev;
26 case blink::WebIDBCursorDirectionPrevNoDuplicate:
27 return CursorDirection::PrevNoDuplicate;
28 }
29 NOTREACHED();
30 return CursorDirection::Next;
31 }
32
33 // static
34 bool EnumTraits<CursorDirection, blink::WebIDBCursorDirection>::FromMojom(
35 CursorDirection input,
36 blink::WebIDBCursorDirection* output) {
37 switch (input) {
38 case CursorDirection::Next:
39 *output = blink::WebIDBCursorDirectionNext;
40 return true;
41 case CursorDirection::NextNoDuplicate:
42 *output = blink::WebIDBCursorDirectionNextNoDuplicate;
43 return true;
44 case CursorDirection::Prev:
45 *output = blink::WebIDBCursorDirectionPrev;
46 return true;
47 case CursorDirection::PrevNoDuplicate:
48 *output = blink::WebIDBCursorDirectionPrevNoDuplicate;
49 return true;
50 }
51 return false;
52 }
53
54 // static
55 DataLoss EnumTraits<DataLoss, blink::WebIDBDataLoss>::ToMojom(
56 blink::WebIDBDataLoss input) {
57 switch (input) {
58 case blink::WebIDBDataLossNone:
59 return DataLoss::None;
60 case blink::WebIDBDataLossTotal:
61 return DataLoss::Total;
62 }
63 NOTREACHED();
64 return DataLoss::None;
65 }
66
67 // static
68 bool EnumTraits<DataLoss, blink::WebIDBDataLoss>::FromMojom(
69 DataLoss input,
70 blink::WebIDBDataLoss* output) {
71 switch (input) {
72 case DataLoss::None:
73 *output = blink::WebIDBDataLossNone;
74 return true;
75 case DataLoss::Total:
76 *output = blink::WebIDBDataLossTotal;
77 return true;
78 }
79 return false;
80 }
81
82 // static
83 PutMode EnumTraits<PutMode, blink::WebIDBPutMode>::ToMojom(
84 blink::WebIDBPutMode input) {
85 switch (input) {
86 case blink::WebIDBPutModeAddOrUpdate:
87 return PutMode::AddOrUpdate;
88 case blink::WebIDBPutModeAddOnly:
89 return PutMode::AddOnly;
90 case blink::WebIDBPutModeCursorUpdate:
91 return PutMode::CursorUpdate;
92 }
93 NOTREACHED();
94 return PutMode::AddOrUpdate;
95 }
96
97 // static
98 bool EnumTraits<PutMode, blink::WebIDBPutMode>::FromMojom(
99 PutMode input,
100 blink::WebIDBPutMode* output) {
101 switch (input) {
102 case PutMode::AddOrUpdate:
103 *output = blink::WebIDBPutModeAddOrUpdate;
104 return true;
105 case PutMode::AddOnly:
106 *output = blink::WebIDBPutModeAddOnly;
107 return true;
108 case PutMode::CursorUpdate:
109 *output = blink::WebIDBPutModeCursorUpdate;
110 return true;
111 }
112 return false;
113 }
114
115 // static
116 TaskType EnumTraits<TaskType, blink::WebIDBTaskType>::ToMojom(
117 blink::WebIDBTaskType input) {
118 switch (input) {
119 case blink::WebIDBTaskTypeNormal:
120 return TaskType::Normal;
121 case blink::WebIDBTaskTypePreemptive:
122 return TaskType::Preemptive;
123 }
124 NOTREACHED();
125 return TaskType::Normal;
126 }
127
128 // static
129 bool EnumTraits<TaskType, blink::WebIDBTaskType>::FromMojom(
130 TaskType input,
131 blink::WebIDBTaskType* output) {
132 switch (input) {
133 case TaskType::Normal:
134 *output = blink::WebIDBTaskTypeNormal;
135 return true;
136 case TaskType::Preemptive:
137 *output = blink::WebIDBTaskTypePreemptive;
138 return true;
139 }
140 return false;
141 }
142
143 // static
144 TransactionMode
145 EnumTraits<TransactionMode, blink::WebIDBTransactionMode>::ToMojom(
146 blink::WebIDBTransactionMode input) {
147 switch (input) {
148 case blink::WebIDBTransactionModeReadOnly:
149 return TransactionMode::ReadOnly;
150 case blink::WebIDBTransactionModeReadWrite:
151 return TransactionMode::ReadWrite;
152 case blink::WebIDBTransactionModeVersionChange:
153 return TransactionMode::VersionChange;
154 }
155 NOTREACHED();
156 return TransactionMode::ReadOnly;
157 }
158
159 // static
160 bool EnumTraits<TransactionMode, blink::WebIDBTransactionMode>::FromMojom(
161 TransactionMode input,
162 blink::WebIDBTransactionMode* output) {
163 switch (input) {
164 case TransactionMode::ReadOnly:
165 *output = blink::WebIDBTransactionModeReadOnly;
166 return true;
167 case TransactionMode::ReadWrite:
168 *output = blink::WebIDBTransactionModeReadWrite;
169 return true;
170 case TransactionMode::VersionChange:
171 *output = blink::WebIDBTransactionModeVersionChange;
172 return true;
173 }
174 return false;
175 }
176
177 } // namespace mojo
OLDNEW
« no previous file with comments | « content/common/indexed_db/indexed_db_enum_traits.h ('k') | content/common/indexed_db/indexed_db_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698