OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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 // Keep this file in sync with the .proto files in this directory. | |
6 | |
7 #include "sync/protocol/proto_enum_conversions.h" | |
8 | |
9 #include "base/logging.h" | |
10 | |
11 namespace syncer { | |
12 | |
13 #define ASSERT_ENUM_BOUNDS(enum_parent, enum_type, enum_min, enum_max) \ | |
14 static_assert(enum_parent::enum_type##_MIN == enum_parent::enum_min, \ | |
15 #enum_type "_MIN should be " #enum_min); \ | |
16 static_assert(enum_parent::enum_type##_MAX == enum_parent::enum_max, \ | |
17 #enum_type "_MAX should be " #enum_max); | |
18 | |
19 #define ENUM_CASE(enum_parent, enum_value) \ | |
20 case enum_parent::enum_value: return #enum_value | |
21 | |
22 const char* GetAppListItemTypeString( | |
23 sync_pb::AppListSpecifics::AppListItemType item_type) { | |
24 ASSERT_ENUM_BOUNDS(sync_pb::AppListSpecifics, AppListItemType, | |
25 TYPE_APP, TYPE_URL); | |
26 switch (item_type) { | |
27 ENUM_CASE(sync_pb::AppListSpecifics, TYPE_APP); | |
28 ENUM_CASE(sync_pb::AppListSpecifics, TYPE_REMOVE_DEFAULT_APP); | |
29 ENUM_CASE(sync_pb::AppListSpecifics, TYPE_FOLDER); | |
30 ENUM_CASE(sync_pb::AppListSpecifics, TYPE_URL); | |
31 } | |
32 NOTREACHED(); | |
33 return ""; | |
34 } | |
35 | |
36 const char* GetBrowserTypeString( | |
37 sync_pb::SessionWindow::BrowserType browser_type) { | |
38 ASSERT_ENUM_BOUNDS(sync_pb::SessionWindow, BrowserType, | |
39 TYPE_TABBED, TYPE_POPUP); | |
40 switch (browser_type) { | |
41 ENUM_CASE(sync_pb::SessionWindow, TYPE_TABBED); | |
42 ENUM_CASE(sync_pb::SessionWindow, TYPE_POPUP); | |
43 } | |
44 NOTREACHED(); | |
45 return ""; | |
46 } | |
47 | |
48 const char* GetPageTransitionString( | |
49 sync_pb::SyncEnums::PageTransition page_transition) { | |
50 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, PageTransition, | |
51 LINK, KEYWORD_GENERATED); | |
52 switch (page_transition) { | |
53 ENUM_CASE(sync_pb::SyncEnums, LINK); | |
54 ENUM_CASE(sync_pb::SyncEnums, TYPED); | |
55 ENUM_CASE(sync_pb::SyncEnums, AUTO_BOOKMARK); | |
56 ENUM_CASE(sync_pb::SyncEnums, AUTO_SUBFRAME); | |
57 ENUM_CASE(sync_pb::SyncEnums, MANUAL_SUBFRAME); | |
58 ENUM_CASE(sync_pb::SyncEnums, GENERATED); | |
59 ENUM_CASE(sync_pb::SyncEnums, AUTO_TOPLEVEL); | |
60 ENUM_CASE(sync_pb::SyncEnums, FORM_SUBMIT); | |
61 ENUM_CASE(sync_pb::SyncEnums, RELOAD); | |
62 ENUM_CASE(sync_pb::SyncEnums, KEYWORD); | |
63 ENUM_CASE(sync_pb::SyncEnums, KEYWORD_GENERATED); | |
64 } | |
65 NOTREACHED(); | |
66 return ""; | |
67 } | |
68 | |
69 const char* GetPageTransitionRedirectTypeString( | |
70 sync_pb::SyncEnums::PageTransitionRedirectType | |
71 page_transition_qualifier) { | |
72 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, PageTransitionRedirectType, | |
73 CLIENT_REDIRECT, SERVER_REDIRECT); | |
74 switch (page_transition_qualifier) { | |
75 ENUM_CASE(sync_pb::SyncEnums, CLIENT_REDIRECT); | |
76 ENUM_CASE(sync_pb::SyncEnums, SERVER_REDIRECT); | |
77 } | |
78 NOTREACHED(); | |
79 return ""; | |
80 } | |
81 | |
82 const char* GetWifiCredentialSecurityClassString( | |
83 sync_pb::WifiCredentialSpecifics::SecurityClass security_class) { | |
84 ASSERT_ENUM_BOUNDS(sync_pb::WifiCredentialSpecifics, SecurityClass, | |
85 SECURITY_CLASS_INVALID, SECURITY_CLASS_PSK); | |
86 switch (security_class) { | |
87 ENUM_CASE(sync_pb::WifiCredentialSpecifics, SECURITY_CLASS_INVALID); | |
88 ENUM_CASE(sync_pb::WifiCredentialSpecifics, SECURITY_CLASS_NONE); | |
89 ENUM_CASE(sync_pb::WifiCredentialSpecifics, SECURITY_CLASS_WEP); | |
90 ENUM_CASE(sync_pb::WifiCredentialSpecifics, SECURITY_CLASS_PSK); | |
91 } | |
92 NOTREACHED(); | |
93 return ""; | |
94 } | |
95 const char* GetUpdatesSourceString( | |
96 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource updates_source) { | |
97 ASSERT_ENUM_BOUNDS(sync_pb::GetUpdatesCallerInfo, GetUpdatesSource, | |
98 UNKNOWN, PROGRAMMATIC); | |
99 switch (updates_source) { | |
100 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, UNKNOWN); | |
101 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, FIRST_UPDATE); | |
102 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, LOCAL); | |
103 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, NOTIFICATION); | |
104 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, PERIODIC); | |
105 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, SYNC_CYCLE_CONTINUATION); | |
106 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, NEWLY_SUPPORTED_DATATYPE); | |
107 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, MIGRATION); | |
108 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, NEW_CLIENT); | |
109 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, RECONFIGURATION); | |
110 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, DATATYPE_REFRESH); | |
111 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, RETRY); | |
112 ENUM_CASE(sync_pb::GetUpdatesCallerInfo, PROGRAMMATIC); | |
113 } | |
114 NOTREACHED(); | |
115 return ""; | |
116 } | |
117 | |
118 const char* GetUpdatesOriginString( | |
119 sync_pb::SyncEnums::GetUpdatesOrigin origin) { | |
120 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, GetUpdatesOrigin, | |
121 UNKNOWN_ORIGIN, PROGRAMMATIC); | |
122 switch (origin) { | |
123 ENUM_CASE(sync_pb::SyncEnums, UNKNOWN_ORIGIN); | |
124 ENUM_CASE(sync_pb::SyncEnums, PERIODIC); | |
125 ENUM_CASE(sync_pb::SyncEnums, NEWLY_SUPPORTED_DATATYPE); | |
126 ENUM_CASE(sync_pb::SyncEnums, MIGRATION); | |
127 ENUM_CASE(sync_pb::SyncEnums, NEW_CLIENT); | |
128 ENUM_CASE(sync_pb::SyncEnums, RECONFIGURATION); | |
129 ENUM_CASE(sync_pb::SyncEnums, GU_TRIGGER); | |
130 ENUM_CASE(sync_pb::SyncEnums, RETRY); | |
131 ENUM_CASE(sync_pb::SyncEnums, PROGRAMMATIC); | |
132 } | |
133 NOTREACHED(); | |
134 return ""; | |
135 } | |
136 | |
137 const char* GetResponseTypeString( | |
138 sync_pb::CommitResponse::ResponseType response_type) { | |
139 ASSERT_ENUM_BOUNDS(sync_pb::CommitResponse, ResponseType, SUCCESS, | |
140 TRANSIENT_ERROR); | |
141 switch (response_type) { | |
142 ENUM_CASE(sync_pb::CommitResponse, SUCCESS); | |
143 ENUM_CASE(sync_pb::CommitResponse, CONFLICT); | |
144 ENUM_CASE(sync_pb::CommitResponse, RETRY); | |
145 ENUM_CASE(sync_pb::CommitResponse, INVALID_MESSAGE); | |
146 ENUM_CASE(sync_pb::CommitResponse, OVER_QUOTA); | |
147 ENUM_CASE(sync_pb::CommitResponse, TRANSIENT_ERROR); | |
148 } | |
149 NOTREACHED(); | |
150 return ""; | |
151 } | |
152 | |
153 const char* GetErrorTypeString(sync_pb::SyncEnums::ErrorType error_type) { | |
154 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, ErrorType, SUCCESS, UNKNOWN); | |
155 switch (error_type) { | |
156 ENUM_CASE(sync_pb::SyncEnums, SUCCESS); | |
157 ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_ACCESS_DENIED); | |
158 ENUM_CASE(sync_pb::SyncEnums, NOT_MY_BIRTHDAY); | |
159 ENUM_CASE(sync_pb::SyncEnums, THROTTLED); | |
160 ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_AUTH_EXPIRED); | |
161 ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_USER_NOT_ACTIVATED); | |
162 ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_AUTH_INVALID); | |
163 ENUM_CASE(sync_pb::SyncEnums, CLEAR_PENDING); | |
164 ENUM_CASE(sync_pb::SyncEnums, TRANSIENT_ERROR); | |
165 ENUM_CASE(sync_pb::SyncEnums, MIGRATION_DONE); | |
166 ENUM_CASE(sync_pb::SyncEnums, DISABLED_BY_ADMIN); | |
167 ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_USER_ROLLBACK); | |
168 ENUM_CASE(sync_pb::SyncEnums, PARTIAL_FAILURE); | |
169 ENUM_CASE(sync_pb::SyncEnums, CLIENT_DATA_OBSOLETE); | |
170 ENUM_CASE(sync_pb::SyncEnums, UNKNOWN); | |
171 } | |
172 NOTREACHED(); | |
173 return ""; | |
174 } | |
175 | |
176 const char* GetActionString(sync_pb::SyncEnums::Action action) { | |
177 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, Action, | |
178 UPGRADE_CLIENT, UNKNOWN_ACTION); | |
179 switch (action) { | |
180 ENUM_CASE(sync_pb::SyncEnums, UPGRADE_CLIENT); | |
181 ENUM_CASE(sync_pb::SyncEnums, CLEAR_USER_DATA_AND_RESYNC); | |
182 ENUM_CASE(sync_pb::SyncEnums, ENABLE_SYNC_ON_ACCOUNT); | |
183 ENUM_CASE(sync_pb::SyncEnums, STOP_AND_RESTART_SYNC); | |
184 ENUM_CASE(sync_pb::SyncEnums, DISABLE_SYNC_ON_CLIENT); | |
185 ENUM_CASE(sync_pb::SyncEnums, UNKNOWN_ACTION); | |
186 } | |
187 NOTREACHED(); | |
188 return ""; | |
189 } | |
190 | |
191 const char* GetLaunchTypeString(sync_pb::AppSpecifics::LaunchType launch_type) { | |
192 ASSERT_ENUM_BOUNDS(sync_pb::AppSpecifics, LaunchType, PINNED, WINDOW); | |
193 switch (launch_type) { | |
194 ENUM_CASE(sync_pb::AppSpecifics, PINNED); | |
195 ENUM_CASE(sync_pb::AppSpecifics, REGULAR); | |
196 ENUM_CASE(sync_pb::AppSpecifics, FULLSCREEN); | |
197 ENUM_CASE(sync_pb::AppSpecifics, WINDOW); | |
198 } | |
199 NOTREACHED(); | |
200 return ""; | |
201 } | |
202 | |
203 const char* GetWalletInfoTypeString( | |
204 sync_pb::AutofillWalletSpecifics::WalletInfoType wallet_info_type) { | |
205 ASSERT_ENUM_BOUNDS(sync_pb::AutofillWalletSpecifics, WalletInfoType, | |
206 UNKNOWN, POSTAL_ADDRESS); | |
207 switch (wallet_info_type) { | |
208 ENUM_CASE(sync_pb::AutofillWalletSpecifics, UNKNOWN); | |
209 ENUM_CASE(sync_pb::AutofillWalletSpecifics, MASKED_CREDIT_CARD); | |
210 ENUM_CASE(sync_pb::AutofillWalletSpecifics, POSTAL_ADDRESS); | |
211 } | |
212 NOTREACHED(); | |
213 return ""; | |
214 } | |
215 | |
216 const char* GetWalletMetadataTypeString( | |
217 sync_pb::WalletMetadataSpecifics::Type wallet_metadata_type) { | |
218 ASSERT_ENUM_BOUNDS(sync_pb::WalletMetadataSpecifics, Type, UNKNOWN, ADDRESS); | |
219 switch (wallet_metadata_type) { | |
220 ENUM_CASE(sync_pb::WalletMetadataSpecifics, UNKNOWN); | |
221 ENUM_CASE(sync_pb::WalletMetadataSpecifics, CARD); | |
222 ENUM_CASE(sync_pb::WalletMetadataSpecifics, ADDRESS); | |
223 } | |
224 NOTREACHED(); | |
225 return ""; | |
226 } | |
227 | |
228 const char* GetWalletCardStatusString( | |
229 sync_pb::WalletMaskedCreditCard::WalletCardStatus wallet_card_status) { | |
230 switch (wallet_card_status) { | |
231 ENUM_CASE(sync_pb::WalletMaskedCreditCard, VALID); | |
232 ENUM_CASE(sync_pb::WalletMaskedCreditCard, EXPIRED); | |
233 } | |
234 NOTREACHED(); | |
235 return ""; | |
236 } | |
237 | |
238 const char* GetWalletCardTypeString( | |
239 sync_pb::WalletMaskedCreditCard::WalletCardType wallet_card_type) { | |
240 switch (wallet_card_type) { | |
241 ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNKNOWN); | |
242 ENUM_CASE(sync_pb::WalletMaskedCreditCard, AMEX); | |
243 ENUM_CASE(sync_pb::WalletMaskedCreditCard, DISCOVER); | |
244 ENUM_CASE(sync_pb::WalletMaskedCreditCard, JCB); | |
245 ENUM_CASE(sync_pb::WalletMaskedCreditCard, MAESTRO); | |
246 ENUM_CASE(sync_pb::WalletMaskedCreditCard, MASTER_CARD); | |
247 ENUM_CASE(sync_pb::WalletMaskedCreditCard, SOLO); | |
248 ENUM_CASE(sync_pb::WalletMaskedCreditCard, SWITCH); | |
249 ENUM_CASE(sync_pb::WalletMaskedCreditCard, VISA); | |
250 } | |
251 NOTREACHED(); | |
252 return ""; | |
253 } | |
254 | |
255 const char* GetDeviceTypeString( | |
256 sync_pb::SyncEnums::DeviceType device_type) { | |
257 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, DeviceType, TYPE_WIN, TYPE_TABLET); | |
258 switch (device_type) { | |
259 ENUM_CASE(sync_pb::SyncEnums, TYPE_WIN); | |
260 ENUM_CASE(sync_pb::SyncEnums, TYPE_MAC); | |
261 ENUM_CASE(sync_pb::SyncEnums, TYPE_LINUX); | |
262 ENUM_CASE(sync_pb::SyncEnums, TYPE_CROS); | |
263 ENUM_CASE(sync_pb::SyncEnums, TYPE_OTHER); | |
264 ENUM_CASE(sync_pb::SyncEnums, TYPE_PHONE); | |
265 ENUM_CASE(sync_pb::SyncEnums, TYPE_TABLET); | |
266 } | |
267 NOTREACHED(); | |
268 return ""; | |
269 } | |
270 | |
271 const char* GetFaviconTypeString( | |
272 sync_pb::SessionTab::FaviconType favicon_type) { | |
273 ASSERT_ENUM_BOUNDS(sync_pb::SessionTab, FaviconType, TYPE_WEB_FAVICON, | |
274 TYPE_WEB_FAVICON); | |
275 switch (favicon_type) { | |
276 ENUM_CASE(sync_pb::SessionTab, TYPE_WEB_FAVICON); | |
277 } | |
278 NOTREACHED(); | |
279 return ""; | |
280 } | |
281 | |
282 const char* PassphraseTypeString( | |
283 sync_pb::NigoriSpecifics::PassphraseType type) { | |
284 ASSERT_ENUM_BOUNDS(sync_pb::NigoriSpecifics, PassphraseType, | |
285 IMPLICIT_PASSPHRASE, CUSTOM_PASSPHRASE); | |
286 switch (type) { | |
287 ENUM_CASE(sync_pb::NigoriSpecifics, IMPLICIT_PASSPHRASE); | |
288 ENUM_CASE(sync_pb::NigoriSpecifics, KEYSTORE_PASSPHRASE); | |
289 ENUM_CASE(sync_pb::NigoriSpecifics, FROZEN_IMPLICIT_PASSPHRASE); | |
290 ENUM_CASE(sync_pb::NigoriSpecifics, CUSTOM_PASSPHRASE); | |
291 } | |
292 NOTREACHED(); | |
293 return ""; | |
294 } | |
295 | |
296 const char* SingletonDebugEventTypeString( | |
297 sync_pb::SyncEnums::SingletonDebugEventType type) { | |
298 ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, SingletonDebugEventType, | |
299 CONNECTION_STATUS_CHANGE, BOOTSTRAP_TOKEN_UPDATED); | |
300 switch (type) { | |
301 ENUM_CASE(sync_pb::SyncEnums, CONNECTION_STATUS_CHANGE); | |
302 ENUM_CASE(sync_pb::SyncEnums, UPDATED_TOKEN); | |
303 ENUM_CASE(sync_pb::SyncEnums, PASSPHRASE_REQUIRED); | |
304 ENUM_CASE(sync_pb::SyncEnums, PASSPHRASE_ACCEPTED); | |
305 ENUM_CASE(sync_pb::SyncEnums, INITIALIZATION_COMPLETE); | |
306 ENUM_CASE(sync_pb::SyncEnums, STOP_SYNCING_PERMANENTLY); | |
307 ENUM_CASE(sync_pb::SyncEnums, ENCRYPTION_COMPLETE); | |
308 ENUM_CASE(sync_pb::SyncEnums, ACTIONABLE_ERROR); | |
309 ENUM_CASE(sync_pb::SyncEnums, ENCRYPTED_TYPES_CHANGED); | |
310 ENUM_CASE(sync_pb::SyncEnums, PASSPHRASE_TYPE_CHANGED); | |
311 ENUM_CASE(sync_pb::SyncEnums, KEYSTORE_TOKEN_UPDATED); | |
312 ENUM_CASE(sync_pb::SyncEnums, CONFIGURE_COMPLETE); | |
313 ENUM_CASE(sync_pb::SyncEnums, BOOTSTRAP_TOKEN_UPDATED); | |
314 } | |
315 NOTREACHED(); | |
316 return ""; | |
317 } | |
318 | |
319 const char* GetBlockedStateString( | |
320 sync_pb::TabNavigation::BlockedState state) { | |
321 ASSERT_ENUM_BOUNDS(sync_pb::TabNavigation, BlockedState, | |
322 STATE_ALLOWED, STATE_BLOCKED); | |
323 switch (state) { | |
324 ENUM_CASE(sync_pb::TabNavigation, STATE_ALLOWED); | |
325 ENUM_CASE(sync_pb::TabNavigation, STATE_BLOCKED); | |
326 } | |
327 NOTREACHED(); | |
328 return ""; | |
329 } | |
330 | |
331 #undef ASSERT_ENUM_BOUNDS | |
332 #undef ENUM_CASE | |
333 | |
334 } // namespace syncer | |
OLD | NEW |