Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / sync / protocol / proto_value_conversions.h
1 // Copyright 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 #ifndef SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_
8 #define SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_
9
10 #include "sync/base/sync_export.h"
11
12 namespace base {
13 class DictionaryValue;
14 }
15
16 namespace sync_pb {
17 class AppListSpecifics;
18 class AppNotification;
19 class AppNotificationSettings;
20 class AppSettingSpecifics;
21 class AppSpecifics;
22 class ArticleSpecifics;
23 class AttachmentId;
24 class AutofillProfileSpecifics;
25 class AutofillSpecifics;
26 class BookmarkSpecifics;
27 class ClientConfigParams;
28 class ClientToServerMessage;
29 class ClientToServerResponse;
30 class CoalescedSyncedNotification;
31 class CollapsedInfo;
32 class DatatypeAssociationStats;
33 class DebugEventInfo;
34 class DebugInfo;
35 class DeviceInfoSpecifics;
36 class DeviceInformation;
37 class DictionarySpecifics;
38 class EncryptedData;
39 class EntitySpecifics;
40 class EverythingDirective;
41 class ExperimentsSpecifics;
42 class ExtensionSettingSpecifics;
43 class ExtensionSpecifics;
44 class FaviconImageSpecifics;
45 class FaviconTrackingSpecifics;
46 class GlobalIdDirective;
47 class HistoryDeleteDirectiveSpecifics;
48 class KeystoreEncryptionFlagsSpecifics;
49 class Media;
50 class ManagedUserSettingSpecifics;
51 class ManagedUserSharedSettingSpecifics;
52 class ManagedUserSpecifics;
53 class NigoriSpecifics;
54 class PasswordSpecifics;
55 class PasswordSpecificsData;
56 class PreferenceSpecifics;
57 class PriorityPreferenceSpecifics;
58 class SearchEngineSpecifics;
59 class SessionHeader;
60 class SessionSpecifics;
61 class SessionTab;
62 class SessionWindow;
63 class SimpleCollapsedLayout;
64 class SyncCycleCompletedEventInfo;
65 class SyncedNotification;
66 class SyncedNotificationAction;
67 class SyncedNotificationAppInfo;
68 class SyncedNotificationAppInfoSpecifics;
69 class SyncedNotificationDestination;
70 class SyncedNotificationImage;
71 class SyncedNotificationProfileImage;
72 class SyncedNotificationRenderInfo;
73 class SyncedNotificationSpecifics;
74 class TabNavigation;
75 class Target;
76 class ThemeSpecifics;
77 class TimeRangeDirective;
78 class TypedUrlSpecifics;
79 }  // namespace sync_pb
80
81 // Utility functions to convert sync protocol buffers to dictionaries.
82 // Each protocol field is mapped to a key of the same name.  Repeated
83 // fields are mapped to array values and sub-messages are mapped to
84 // sub-dictionary values.
85 //
86 // TODO(akalin): Add has_* information.
87 //
88 // TODO(akalin): Improve enum support.
89
90 namespace syncer {
91
92 // Ownership of all returned DictionaryValues are transferred to the
93 // caller.
94
95 // TODO(akalin): Perhaps extend this to decrypt?
96 SYNC_EXPORT_PRIVATE base::DictionaryValue* EncryptedDataToValue(
97     const sync_pb::EncryptedData& encrypted_data);
98
99 // Sub-protocol of AppListSpecifics.
100 SYNC_EXPORT_PRIVATE base::DictionaryValue* AppListSpecificsToValue(
101     const sync_pb::AppListSpecifics& proto);
102
103 // Sub-protocol of AppSpecifics.
104 SYNC_EXPORT_PRIVATE base::DictionaryValue* AppSettingsToValue(
105     const sync_pb::AppNotificationSettings& app_notification_settings);
106
107 // Sub-protocols of SessionSpecifics.
108
109 SYNC_EXPORT_PRIVATE base::DictionaryValue* SessionHeaderToValue(
110     const sync_pb::SessionHeader& session_header);
111
112 SYNC_EXPORT_PRIVATE base::DictionaryValue* SessionTabToValue(
113     const sync_pb::SessionTab& session_tab);
114
115 SYNC_EXPORT_PRIVATE base::DictionaryValue* SessionWindowToValue(
116     const sync_pb::SessionWindow& session_window);
117
118 SYNC_EXPORT_PRIVATE base::DictionaryValue* TabNavigationToValue(
119     const sync_pb::TabNavigation& tab_navigation);
120
121 // Sub-protocol of PasswordSpecifics.
122
123 SYNC_EXPORT_PRIVATE base::DictionaryValue* PasswordSpecificsDataToValue(
124     const sync_pb::PasswordSpecificsData& password_specifics_data);
125
126 // Sub-protocol of NigoriSpecifics.
127
128 base::DictionaryValue* DeviceInformationToValue(
129     const sync_pb::DeviceInformation& device_information);
130
131 // Sub-protocol of HistoryDeleteDirectiveSpecifics.
132
133 base::DictionaryValue* GlobalIdDirectiveToValue(
134     const sync_pb::GlobalIdDirective& global_id_directive);
135
136 base::DictionaryValue* TimeRangeDirectiveToValue(
137     const sync_pb::TimeRangeDirective& time_range_directive);
138
139 // Sub-protocol of Experiments.
140
141 base::DictionaryValue* KeystoreEncryptionToValue(
142     const sync_pb::KeystoreEncryptionFlagsSpecifics& proto);
143
144 // Sub protocols of SyncedNotifications.
145
146 base::DictionaryValue* SimpleCollapsedLayoutToValue(
147     const sync_pb::SimpleCollapsedLayout& proto);
148
149 base::DictionaryValue* CollapsedInfoToValue(
150     const sync_pb::CollapsedInfo& proto);
151
152 base::DictionaryValue* RenderInfoToValue(
153     const sync_pb::SyncedNotificationRenderInfo& proto);
154
155 base::DictionaryValue* CoalescedNotificationToValue(
156     const sync_pb::CoalescedSyncedNotification& proto);
157
158 base::DictionaryValue* SyncedNotificationActionToValue(
159     const sync_pb::SyncedNotificationAction& action);
160
161 base::DictionaryValue* SyncedNotificationDestinationToValue(
162     const sync_pb::SyncedNotificationDestination& destination);
163
164 base::DictionaryValue* SyncedNotificationToValue(
165     const sync_pb::SyncedNotification& notification);
166
167 SYNC_EXPORT_PRIVATE base::DictionaryValue* SessionSpecificsToValue(
168     const sync_pb::SessionSpecifics& session_specifics);
169
170 SYNC_EXPORT_PRIVATE base::DictionaryValue* SyncedNotificationImageToValue(
171     const sync_pb::SyncedNotificationImage& image);
172
173 SYNC_EXPORT_PRIVATE base::DictionaryValue*
174     SyncedNotificationProfileImageToValue(
175         const sync_pb::SyncedNotificationProfileImage& image);
176
177 SYNC_EXPORT_PRIVATE base::DictionaryValue* TargetToValue(
178     const sync_pb::Target& target);
179
180 // Main *SpecificsToValue functions.
181
182 SYNC_EXPORT_PRIVATE base::DictionaryValue* AppNotificationToValue(
183     const sync_pb::AppNotification& app_notification_specifics);
184
185 base::DictionaryValue* AppSettingSpecificsToValue(
186     const sync_pb::AppSettingSpecifics& app_setting_specifics);
187
188 SYNC_EXPORT_PRIVATE base::DictionaryValue* AppSpecificsToValue(
189     const sync_pb::AppSpecifics& app_specifics);
190
191 SYNC_EXPORT_PRIVATE base::DictionaryValue* ArticleSpecificsToValue(
192     const sync_pb::ArticleSpecifics& article_specifics);
193
194 SYNC_EXPORT_PRIVATE base::DictionaryValue* AutofillSpecificsToValue(
195     const sync_pb::AutofillSpecifics& autofill_specifics);
196
197 SYNC_EXPORT_PRIVATE base::DictionaryValue* AutofillProfileSpecificsToValue(
198     const sync_pb::AutofillProfileSpecifics& autofill_profile_specifics);
199
200 SYNC_EXPORT_PRIVATE base::DictionaryValue* BookmarkSpecificsToValue(
201     const sync_pb::BookmarkSpecifics& bookmark_specifics);
202
203 SYNC_EXPORT_PRIVATE base::DictionaryValue* DeviceInfoSpecificsToValue(
204     const sync_pb::DeviceInfoSpecifics& device_info_specifics);
205
206 SYNC_EXPORT_PRIVATE base::DictionaryValue* DictionarySpecificsToValue(
207     const sync_pb::DictionarySpecifics& dictionary_specifics);
208
209 SYNC_EXPORT_PRIVATE base::DictionaryValue* ExperimentsSpecificsToValue(
210     const sync_pb::ExperimentsSpecifics& proto);
211
212 SYNC_EXPORT_PRIVATE base::DictionaryValue* PriorityPreferenceSpecificsToValue(
213     const sync_pb::PriorityPreferenceSpecifics& proto);
214
215 SYNC_EXPORT_PRIVATE base::DictionaryValue* ExtensionSettingSpecificsToValue(
216     const sync_pb::ExtensionSettingSpecifics& extension_setting_specifics);
217
218 SYNC_EXPORT_PRIVATE base::DictionaryValue* ExtensionSpecificsToValue(
219     const sync_pb::ExtensionSpecifics& extension_specifics);
220
221 SYNC_EXPORT_PRIVATE base::DictionaryValue* FaviconImageSpecificsToValue(
222     const sync_pb::FaviconImageSpecifics& favicon_image_specifics);
223
224 SYNC_EXPORT_PRIVATE base::DictionaryValue* FaviconTrackingSpecificsToValue(
225     const sync_pb::FaviconTrackingSpecifics& favicon_tracking_specifics);
226
227 SYNC_EXPORT base::DictionaryValue* HistoryDeleteDirectiveSpecificsToValue(
228     const sync_pb::HistoryDeleteDirectiveSpecifics&
229         history_delete_directive_specifics);
230
231 SYNC_EXPORT_PRIVATE base::DictionaryValue* ManagedUserSettingSpecificsToValue(
232     const sync_pb::ManagedUserSettingSpecifics& managed_user_setting_specifics);
233
234 SYNC_EXPORT_PRIVATE base::DictionaryValue* ManagedUserSpecificsToValue(
235     const sync_pb::ManagedUserSpecifics& managed_user_specifics);
236
237 SYNC_EXPORT_PRIVATE base::DictionaryValue*
238     ManagedUserSharedSettingSpecificsToValue(
239         const sync_pb::ManagedUserSharedSettingSpecifics&
240             managed_user_shared_setting_specifics);
241
242 SYNC_EXPORT_PRIVATE base::DictionaryValue* MediaToValue(
243     const sync_pb::Media& media);
244
245 SYNC_EXPORT_PRIVATE base::DictionaryValue* NigoriSpecificsToValue(
246     const sync_pb::NigoriSpecifics& nigori_specifics);
247
248 SYNC_EXPORT_PRIVATE base::DictionaryValue* PasswordSpecificsToValue(
249     const sync_pb::PasswordSpecifics& password_specifics);
250
251 SYNC_EXPORT_PRIVATE base::DictionaryValue* PreferenceSpecificsToValue(
252     const sync_pb::PreferenceSpecifics& password_specifics);
253
254 SYNC_EXPORT_PRIVATE base::DictionaryValue*
255     SyncedNotificationAppInfoSpecificsToValue(
256         const sync_pb::SyncedNotificationAppInfoSpecifics&
257         synced_notification_specifics);
258
259 SYNC_EXPORT_PRIVATE base::DictionaryValue* SyncedNotificationSpecificsToValue(
260     const sync_pb::SyncedNotificationSpecifics&
261     synced_notification_specifics);
262
263 SYNC_EXPORT_PRIVATE base::DictionaryValue* SearchEngineSpecificsToValue(
264     const sync_pb::SearchEngineSpecifics& search_engine_specifics);
265
266 SYNC_EXPORT_PRIVATE base::DictionaryValue* ThemeSpecificsToValue(
267     const sync_pb::ThemeSpecifics& theme_specifics);
268
269 SYNC_EXPORT_PRIVATE base::DictionaryValue* TypedUrlSpecificsToValue(
270     const sync_pb::TypedUrlSpecifics& typed_url_specifics);
271
272 // Any present extensions are mapped to sub-dictionary values with the
273 // key equal to the extension name.
274 SYNC_EXPORT_PRIVATE base::DictionaryValue* EntitySpecificsToValue(
275     const sync_pb::EntitySpecifics& specifics);
276
277 SYNC_EXPORT_PRIVATE base::DictionaryValue* ClientToServerMessageToValue(
278     const sync_pb::ClientToServerMessage& proto,
279     bool include_specifics);
280
281 SYNC_EXPORT_PRIVATE base::DictionaryValue* ClientToServerResponseToValue(
282     const sync_pb::ClientToServerResponse& proto,
283     bool include_specifics);
284
285 base::DictionaryValue* DatatypeAssociationStatsToValue(
286     const sync_pb::DatatypeAssociationStats& proto);
287
288 base::DictionaryValue* DebugEventInfoToValue(
289     const sync_pb::DebugEventInfo& proto);
290
291 base::DictionaryValue* DebugInfoToValue(
292     const sync_pb::DebugInfo& proto);
293
294 base::DictionaryValue* SyncCycleCompletedEventInfoToValue(
295     const sync_pb::SyncCycleCompletedEventInfo& proto);
296
297 base::DictionaryValue* ClientConfigParamsToValue(
298     const sync_pb::ClientConfigParams& proto);
299
300 SYNC_EXPORT_PRIVATE base::DictionaryValue* AttachmentIdToValue(
301     const sync_pb::AttachmentId& proto);
302
303 }  // namespace syncer
304
305 #endif  // SYNC_PROTOCOL_PROTO_VALUE_CONVERSIONS_H_