Merge lp:~rodrigo-moya/ubuntuone-client/high-level-libsd-api into lp:ubuntuone-client
- high-level-libsd-api
- Merge into trunk
Proposed by
Rodrigo Moya
Status: | Merged |
---|---|
Approved by: | John Lenton |
Approved revision: | 736 |
Merged at revision: | 741 |
Proposed branch: | lp:~rodrigo-moya/ubuntuone-client/high-level-libsd-api |
Merge into: | lp:ubuntuone-client |
Diff against target: |
723 lines (+577/-32) 4 files modified
libsyncdaemon/syncdaemon-config-interface.c (+1/-1) libsyncdaemon/syncdaemon-daemon.c (+520/-0) libsyncdaemon/syncdaemon-daemon.h (+41/-0) libsyncdaemon/test-libsyncdaemon.c (+15/-31) |
To merge this branch: | bzr merge lp:~rodrigo-moya/ubuntuone-client/high-level-libsd-api |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
John Lenton (community) | Approve | ||
Alejandro J. Cura (community) | Approve | ||
Review via email: mp+39121@code.launchpad.net |
Commit message
Add high level API to SyncdaemonDaemon object
Description of the change
Add high level API to SyncdaemonDaemon object
To post a comment you must log in.
Revision history for this message
Alejandro J. Cura (alecu) : | # |
review:
Approve
Revision history for this message
John Lenton (chipaca) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'libsyncdaemon/syncdaemon-config-interface.c' |
2 | --- libsyncdaemon/syncdaemon-config-interface.c 2010-10-04 20:29:05 +0000 |
3 | +++ libsyncdaemon/syncdaemon-config-interface.c 2010-10-22 07:46:49 +0000 |
4 | @@ -130,7 +130,7 @@ |
5 | } |
6 | |
7 | /** |
8 | - * syncdaemon_config_interface_set_bandwidth_throttling_enabled: |
9 | + * syncdaemon_config_interface_set_bandwidth_throttling: |
10 | */ |
11 | void |
12 | syncdaemon_config_interface_set_bandwidth_throttling (SyncdaemonConfigInterface *interface, gboolean enabled) |
13 | |
14 | === modified file 'libsyncdaemon/syncdaemon-daemon.c' |
15 | --- libsyncdaemon/syncdaemon-daemon.c 2010-10-05 12:47:32 +0000 |
16 | +++ libsyncdaemon/syncdaemon-daemon.c 2010-10-22 07:46:49 +0000 |
17 | @@ -662,6 +662,251 @@ |
18 | } |
19 | |
20 | /** |
21 | + * syncdaemon_daemon_get_bandwidth_throttling: |
22 | + * @daemon: A #SyncdaemonDaemon object |
23 | + * |
24 | + * Get whether bandwidth throttling is enabled or not. |
25 | + * |
26 | + * Return value: TRUE if enabled, FALSE if disabled. |
27 | + */ |
28 | +gboolean |
29 | +syncdaemon_daemon_get_bandwidth_throttling (SyncdaemonDaemon *daemon) |
30 | +{ |
31 | + SyncdaemonInterface *interface; |
32 | + |
33 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), FALSE); |
34 | + |
35 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
36 | + if (SYNCDAEMON_IS_CONFIG_INTERFACE (interface)) |
37 | + return syncdaemon_config_interface_get_bandwidth_throttling (SYNCDAEMON_CONFIG_INTERFACE (interface)); |
38 | + |
39 | + return FALSE; |
40 | +} |
41 | + |
42 | +/** |
43 | + * syncdaemon_daemon_set_bandwidth_throttling: |
44 | + * @daemon: A #SyncdaemonDaemon object |
45 | + * @enabled: Whether to enable bandwidth throttling or not. |
46 | + * |
47 | + * Enable or disable bandwidth throttling. |
48 | + */ |
49 | +void |
50 | +syncdaemon_daemon_set_bandwidth_throttling (SyncdaemonDaemon *daemon, gboolean enabled) |
51 | +{ |
52 | + SyncdaemonInterface *interface; |
53 | + |
54 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
55 | + |
56 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
57 | + if (SYNCDAEMON_IS_CONFIG_INTERFACE (interface)) |
58 | + syncdaemon_config_interface_set_bandwidth_throttling (SYNCDAEMON_CONFIG_INTERFACE (interface), enabled); |
59 | +} |
60 | + |
61 | +/** |
62 | + * syncdaemon_daemon_get_files_sync: |
63 | + * @daemon: A #SyncdaemonDaemon object |
64 | + * |
65 | + * Get whether file syncing is enabled or not. |
66 | + * |
67 | + * Return value: TRUE if enabled, FALSE if disabled. |
68 | + */ |
69 | +gboolean |
70 | +syncdaemon_daemon_get_files_sync (SyncdaemonDaemon *daemon) |
71 | +{ |
72 | + SyncdaemonInterface *interface; |
73 | + |
74 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), FALSE); |
75 | + |
76 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
77 | + if (SYNCDAEMON_IS_CONFIG_INTERFACE (interface)) |
78 | + return syncdaemon_config_interface_get_files_sync (SYNCDAEMON_CONFIG_INTERFACE (interface)); |
79 | + |
80 | + return FALSE; |
81 | +} |
82 | + |
83 | +/** |
84 | + * syncdaemon_daemon_set_files_sync: |
85 | + * @daemon: A #SyncdaemonDaemon object |
86 | + * @enabled: Whether to enable file syncing or not. |
87 | + * |
88 | + * Enable or disable file syncing. |
89 | + */ |
90 | +void |
91 | +syncdaemon_daemon_set_files_sync (SyncdaemonDaemon *daemon, gboolean enabled) |
92 | +{ |
93 | + SyncdaemonInterface *interface; |
94 | + |
95 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
96 | + |
97 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
98 | + if (SYNCDAEMON_IS_CONFIG_INTERFACE (interface)) |
99 | + syncdaemon_config_interface_set_files_sync (SYNCDAEMON_CONFIG_INTERFACE (interface), enabled); |
100 | +} |
101 | + |
102 | +/** |
103 | + * syncdaemon_daemon_get_throttling_limits: |
104 | + * @daemon: A #SyncdaemonDaemon object |
105 | + * @download: Placeholder for download limits |
106 | + * @upload: Placeholder for upload limits |
107 | + * |
108 | + * Retrieve download and upload throttling limits. |
109 | + */ |
110 | +void |
111 | +syncdaemon_daemon_get_throttling_limits (SyncdaemonDaemon *daemon, gint *download, gint *upload) |
112 | +{ |
113 | + SyncdaemonInterface *interface; |
114 | + |
115 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
116 | + |
117 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
118 | + if (interface != NULL) { |
119 | + syncdaemon_config_interface_get_throttling_limits (SYNCDAEMON_CONFIG_INTERFACE (interface), |
120 | + download, |
121 | + upload); |
122 | + } |
123 | +} |
124 | + |
125 | +/** |
126 | + * syncdaemon_daemon_set_throttling_limits: |
127 | + * @daemon: A #SyncdaemonDaemon object |
128 | + * @download: Download limit |
129 | + * @upload: Upload limit |
130 | + * |
131 | + * Set download and upload throttling limits. |
132 | + */ |
133 | +void |
134 | +syncdaemon_daemon_set_throttling_limits (SyncdaemonDaemon *daemon, gint download, gint upload) |
135 | +{ |
136 | + SyncdaemonInterface *interface; |
137 | + |
138 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
139 | + |
140 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
141 | + if (interface != NULL) { |
142 | + syncdaemon_config_interface_set_throttling_limits (SYNCDAEMON_CONFIG_INTERFACE (interface), |
143 | + download, |
144 | + upload); |
145 | + } |
146 | +} |
147 | + |
148 | +/** |
149 | + * syncdaemon_daemon_get_udf_autosubscribe: |
150 | + * @daemon: A #SyncdaemonDaemon object |
151 | + * |
152 | + * Get whether autosubscription for UDFs is enabled or not. |
153 | + * |
154 | + * Return value: TRUE if enabled, FALSE if disabled. |
155 | + */ |
156 | +gboolean |
157 | +syncdaemon_daemon_get_udf_autosubscribe (SyncdaemonDaemon *daemon) |
158 | +{ |
159 | + SyncdaemonInterface *interface; |
160 | + |
161 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), FALSE); |
162 | + |
163 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
164 | + if (SYNCDAEMON_IS_CONFIG_INTERFACE (interface)) |
165 | + return syncdaemon_config_interface_get_udf_autosubscribe (SYNCDAEMON_CONFIG_INTERFACE (interface)); |
166 | + |
167 | + return FALSE; |
168 | +} |
169 | + |
170 | +/** |
171 | + * syncdaemon_daemon_set_udf_autosubscribe: |
172 | + * @daemon: A #SyncdaemonDaemon object |
173 | + * @enabled: Whether to enable UDF autosubscription or not. |
174 | + * |
175 | + * Enable or disable UDF autosubscription. |
176 | + */ |
177 | +void |
178 | +syncdaemon_daemon_set_udf_autosubscribe (SyncdaemonDaemon *daemon, gboolean enabled) |
179 | +{ |
180 | + SyncdaemonInterface *interface; |
181 | + |
182 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
183 | + |
184 | + interface = syncdaemon_daemon_get_config_interface (daemon); |
185 | + if (SYNCDAEMON_IS_CONFIG_INTERFACE (interface)) |
186 | + syncdaemon_config_interface_set_udf_autosubscribe (SYNCDAEMON_CONFIG_INTERFACE (interface), enabled); |
187 | +} |
188 | + |
189 | +/** |
190 | + * syncdaemon_daemon_get_metadata: |
191 | + * @daemon: A #SyncdaemonDaemon object |
192 | + * @path: Path to check metadata for |
193 | + * @with_subtree_sync_check: For folders, whether to check the status of all its children |
194 | + * |
195 | + * Retrieve metadata for a file or folder inside a Ubuntu One directory. |
196 | + * |
197 | + * Return value: Metadata for the specified path. |
198 | + */ |
199 | +SyncdaemonMetadata * |
200 | +syncdaemon_daemon_get_metadata (SyncdaemonDaemon *daemon, const gchar *path, gboolean with_subtree_sync_check) |
201 | +{ |
202 | + SyncdaemonInterface *interface; |
203 | + |
204 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
205 | + |
206 | + interface = syncdaemon_daemon_get_filesystem_interface (daemon); |
207 | + if (interface != NULL) { |
208 | + return syncdaemon_filesystem_interface_get_metadata (SYNCDAEMON_FILESYSTEM_INTERFACE (interface), |
209 | + path, |
210 | + with_subtree_sync_check); |
211 | + } |
212 | + |
213 | + return NULL; |
214 | +} |
215 | + |
216 | +/** |
217 | + * syncdaemon_daemon_get_folders: |
218 | + * @daemon: A #SyncdaemonDaemon object |
219 | + * |
220 | + * Retrieve the list of folders setup for synchronization with Ubuntu One. |
221 | + * |
222 | + * Return value: A list of #SyncdaemonFolderInfo containing all the folders being |
223 | + * synchronized by the user. When no longer needed, the list should be freed |
224 | + * by calling g_slist_free. |
225 | + */ |
226 | +GSList * |
227 | +syncdaemon_daemon_get_folders (SyncdaemonDaemon *daemon) |
228 | +{ |
229 | + SyncdaemonInterface *interface; |
230 | + |
231 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
232 | + |
233 | + interface = syncdaemon_daemon_get_folders_interface (daemon); |
234 | + if (interface != NULL) |
235 | + return syncdaemon_folders_interface_get_folders (SYNCDAEMON_FOLDERS_INTERFACE (interface)); |
236 | + |
237 | + return NULL; |
238 | +} |
239 | + |
240 | +/** |
241 | + * syncdaemon_daemon_get_folder_info: |
242 | + * @daemon: A #SyncdaemonDaemon object |
243 | + * @path: Full path of the folder for which to retrieve information. |
244 | + * |
245 | + * Get information about a folder under Ubuntu One. |
246 | + * |
247 | + * Return value: A #SyncdaemonFolderInfo object containing all the information |
248 | + * for the node. When no longer needed, it should be freed by calling |
249 | + * g_object_unref. |
250 | + */ |
251 | +SyncdaemonFolderInfo * |
252 | +syncdaemon_daemon_get_folder_info (SyncdaemonDaemon *daemon, const gchar *path) |
253 | +{ |
254 | + SyncdaemonInterface *interface; |
255 | + |
256 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
257 | + |
258 | + interface = syncdaemon_daemon_get_folders_interface (daemon); |
259 | + if (interface != NULL) |
260 | + return syncdaemon_folders_interface_get_info (SYNCDAEMON_FOLDERS_INTERFACE (interface), path); |
261 | + |
262 | + return NULL; |
263 | +} |
264 | + |
265 | +/** |
266 | * syncdaemon_daemon_is_folder_enabled: |
267 | * @daemon: A #SyncdaemonDaemon object |
268 | * @path: The folder path to check |
269 | @@ -726,6 +971,281 @@ |
270 | return managed; |
271 | } |
272 | |
273 | +/** |
274 | + * syncdaemon_daemon_create_folder: |
275 | + * @daemon: A #SyncdaemonDaemon object |
276 | + * @path: The full path of the folder to create |
277 | + * |
278 | + * Enable a folder for Ubuntu One synchronization. |
279 | + * |
280 | + * The result of the operation can be retrieved by connecting to the "folder_created" |
281 | + * signal of the #SyncdaemonDaemon object. |
282 | + */ |
283 | +void |
284 | +syncdaemon_daemon_create_folder (SyncdaemonDaemon *daemon, const gchar *path) |
285 | +{ |
286 | + SyncdaemonInterface *interface; |
287 | + |
288 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
289 | + |
290 | + interface = syncdaemon_daemon_get_folders_interface (daemon); |
291 | + if (interface != NULL) |
292 | + syncdaemon_folders_interface_create (SYNCDAEMON_FOLDERS_INTERFACE (interface), path); |
293 | + else |
294 | + g_signal_emit (daemon, daemon_signals[FOLDER_CREATED_SIGNAL], 0, FALSE, NULL); |
295 | +} |
296 | + |
297 | +/** |
298 | + * syncdaemon_daemon_delete_folder: |
299 | + * @daemon: A #SyncdaemonDaemon object |
300 | + * @path: The full path of the folder to delete |
301 | + * |
302 | + * Disable a folder for Ubuntu One synchronization. |
303 | + * |
304 | + * The result of the operation can be retrieved by connecting to the "folder_deleted" |
305 | + * signal of the #SyncdaemonDaemon object. |
306 | + */ |
307 | +void |
308 | +syncdaemon_daemon_delete_folder (SyncdaemonDaemon *daemon, const gchar *path) |
309 | +{ |
310 | + SyncdaemonInterface *interface; |
311 | + |
312 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
313 | + |
314 | + interface = syncdaemon_daemon_get_folders_interface (daemon); |
315 | + if (interface != NULL) |
316 | + syncdaemon_folders_interface_delete (SYNCDAEMON_FOLDERS_INTERFACE (interface), path); |
317 | + else |
318 | + g_signal_emit (daemon, daemon_signals[FOLDER_DELETED_SIGNAL], 0, FALSE, NULL); |
319 | +} |
320 | + |
321 | +/** |
322 | + * syncdaemon_daemon_subscribe_folder: |
323 | + * @daemon: A #SyncdaemonDaemon object |
324 | + * @path: The full path of the folder to subscribe |
325 | + * |
326 | + * Subscribe a folder for Ubuntu One synchronization. |
327 | + * |
328 | + * The result of the operation can be retrieved by connecting to the "folder_subscribed" |
329 | + * signal of the #SyncdaemonDaemon object. |
330 | + */ |
331 | +void |
332 | +syncdaemon_daemon_subscribe_folder (SyncdaemonDaemon *daemon, const gchar *path) |
333 | +{ |
334 | + SyncdaemonInterface *interface; |
335 | + |
336 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
337 | + |
338 | + interface = syncdaemon_daemon_get_folders_interface (daemon); |
339 | + if (interface != NULL) |
340 | + syncdaemon_folders_interface_subscribe (SYNCDAEMON_FOLDERS_INTERFACE (interface), path); |
341 | + else |
342 | + g_signal_emit (daemon, daemon_signals[FOLDER_SUBSCRIBED_SIGNAL], 0, FALSE, NULL); |
343 | +} |
344 | + |
345 | +/** |
346 | + * syncdaemon_daemon_unsubscribe_folder: |
347 | + * @daemon: A #SyncdaemonDaemon object |
348 | + * @path: The full path of the folder to unsubscribe |
349 | + * |
350 | + * Unsubscribe a folder from Ubuntu One synchronization. |
351 | + * |
352 | + * The result of the operation can be retrieved by connecting to the "folder_unsubscribed" |
353 | + * signal of the #SyncdaemonDaemon object. |
354 | + */ |
355 | +void |
356 | +syncdaemon_daemon_unsubscribe_folder (SyncdaemonDaemon *daemon, const gchar *path) |
357 | +{ |
358 | + SyncdaemonInterface *interface; |
359 | + |
360 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
361 | + |
362 | + interface = syncdaemon_daemon_get_folders_interface (daemon); |
363 | + if (interface != NULL) |
364 | + syncdaemon_folders_interface_unsubscribe (SYNCDAEMON_FOLDERS_INTERFACE (interface), path); |
365 | + else |
366 | + g_signal_emit (daemon, daemon_signals[FOLDER_UNSUBSCRIBED_SIGNAL], 0, FALSE, NULL); |
367 | +} |
368 | + |
369 | +/** |
370 | + * syncdaemon_daemon_create_share: |
371 | + * @daemon: A #SyncdaemonDaemon object |
372 | + * @path: Full path of the folder to be shared |
373 | + * @usernames: List of users with whom to share the folder |
374 | + * @name: Name to be used for the share |
375 | + * @allow_modifications: Whether to allow modifications to the list of users |
376 | + * |
377 | + * Share a Ubuntu One folder with a list of users. |
378 | + * |
379 | + * The result of the operation can be retrieved by connecting to the "share_created" |
380 | + * signal of the #SyncdaemonDaemon object. |
381 | + */ |
382 | +void |
383 | +syncdaemon_daemon_create_share (SyncdaemonDaemon *daemon, |
384 | + const gchar *path, |
385 | + GSList *usernames, |
386 | + const gchar *name, |
387 | + gboolean allow_modifications) |
388 | +{ |
389 | + SyncdaemonInterface *interface; |
390 | + |
391 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
392 | + |
393 | + interface = syncdaemon_daemon_get_shares_interface (daemon); |
394 | + if (interface != NULL) { |
395 | + syncdaemon_shares_interface_create (SYNCDAEMON_SHARES_INTERFACE (interface), |
396 | + path, |
397 | + usernames, |
398 | + name, |
399 | + allow_modifications); |
400 | + } else |
401 | + g_signal_emit (daemon, daemon_signals[SHARE_CREATED_SIGNAL], 0, FALSE, NULL); |
402 | +} |
403 | + |
404 | +/** |
405 | + * syncdaemon_daemon_delete_share: |
406 | + * @daemon: A #SyncdaemonDaemon object |
407 | + * @path: Full path of the folder to be shared |
408 | + * |
409 | + * Stop sharing a Ubuntu One folder. |
410 | + * |
411 | + * The result of the operation can be retrieved by connecting to the "share_deleted" |
412 | + * signal of the #SyncdaemonDaemon object. |
413 | + */ |
414 | +void |
415 | +syncdaemon_daemon_delete_share (SyncdaemonDaemon *daemon, const gchar *path) |
416 | +{ |
417 | + SyncdaemonInterface *interface; |
418 | + |
419 | + g_return_if_fail (SYNCDAEMON_IS_DAEMON (daemon)); |
420 | + |
421 | + interface = syncdaemon_daemon_get_shares_interface (daemon); |
422 | + if (interface != NULL) |
423 | + syncdaemon_shares_interface_delete (SYNCDAEMON_SHARES_INTERFACE (interface), path); |
424 | + else |
425 | + g_signal_emit (daemon, daemon_signals[SHARE_DELETED_SIGNAL], 0, FALSE, NULL); |
426 | +} |
427 | + |
428 | +/** |
429 | + * syncdaemon_daemon_get_shared_folders: |
430 | + * @daemon: A #SyncdaemonDaemon object |
431 | + * |
432 | + * Get the list of folders shared by the user with other users. |
433 | + * |
434 | + * Return value: A GSList of #SyncdaemonShareInfo objects. When no longer needed, |
435 | + * the list should be freed by calling #g_slist_free. |
436 | + */ |
437 | +GSList * |
438 | +syncdaemon_daemon_get_shared_folders (SyncdaemonDaemon *daemon) |
439 | +{ |
440 | + SyncdaemonInterface *interface; |
441 | + |
442 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
443 | + |
444 | + interface = syncdaemon_daemon_get_shares_interface (daemon); |
445 | + if (interface != NULL) |
446 | + return syncdaemon_shares_interface_get_shared (SYNCDAEMON_SHARES_INTERFACE (interface)); |
447 | + |
448 | + return NULL; |
449 | +} |
450 | + |
451 | +/** |
452 | + * syncdaemon_daemon_get_shares: |
453 | + * @daemon: A #SyncdaemonDaemon object |
454 | + * |
455 | + * Get the list of folders shared by other users with the current user. |
456 | + * |
457 | + * Return value: A GSList of #SyncdaemonShareInfo objects. When no longer needed, |
458 | + * the list should be freed by calling #g_slist_free. |
459 | + */ |
460 | +GSList * |
461 | +syncdaemon_daemon_get_shares (SyncdaemonDaemon *daemon) |
462 | +{ |
463 | + SyncdaemonInterface *interface; |
464 | + |
465 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
466 | + |
467 | + interface = syncdaemon_daemon_get_shares_interface (daemon); |
468 | + if (interface != NULL) |
469 | + return syncdaemon_shares_interface_get_shares (SYNCDAEMON_SHARES_INTERFACE (interface)); |
470 | + |
471 | + return NULL; |
472 | +} |
473 | + |
474 | +/** |
475 | + * syncdaemon_daemon_get_current_status: |
476 | + * @daemon: A #SyncdaemonDaemon object |
477 | + * |
478 | + * Retrieve the current status of SyncDaemon. |
479 | + * |
480 | + * Return value: A #SyncdaemonStatusInfo object containing information about |
481 | + * Syncdaemon's current status. When no longer needed, it should be freed by |
482 | + * calling g_object_unref. |
483 | + */ |
484 | +SyncdaemonStatusInfo * |
485 | +syncdaemon_daemon_get_current_status (SyncdaemonDaemon *daemon) |
486 | +{ |
487 | + SyncdaemonInterface *interface; |
488 | + |
489 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
490 | + |
491 | + interface = syncdaemon_daemon_get_status_interface (daemon); |
492 | + if (interface != NULL) |
493 | + return syncdaemon_status_interface_get_current_status (SYNCDAEMON_STATUS_INTERFACE (interface)); |
494 | + |
495 | + return NULL; |
496 | +} |
497 | + |
498 | +/** |
499 | + * syncdaemon_daemon_get_current_downloads: |
500 | + * @daemon: A #SyncdaemonDaemon object |
501 | + * |
502 | + * Retrieve the list of downloads in progress. |
503 | + * |
504 | + * Return value: A GSList of #SyncdaemonTransferInfo objects, each of which contains |
505 | + * information about a file download in progress. The data in the list belongs to |
506 | + * the library, so when no longer needed, the list should be freed by just calling |
507 | + * g_slist_free. |
508 | + */ |
509 | +GSList * |
510 | +syncdaemon_daemon_get_current_downloads (SyncdaemonDaemon *daemon) |
511 | +{ |
512 | + SyncdaemonInterface *interface; |
513 | + |
514 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
515 | + |
516 | + interface = syncdaemon_daemon_get_status_interface (daemon); |
517 | + if (interface != NULL) |
518 | + return syncdaemon_status_interface_get_current_downloads (SYNCDAEMON_STATUS_INTERFACE (interface)); |
519 | + |
520 | + return NULL; |
521 | +} |
522 | + |
523 | +/** |
524 | + * syncdaemon_daemon_get_current_uploads: |
525 | + * @daemon: A #SyncdaemonDaemon object |
526 | + * |
527 | + * Retrieve the list of uploads in progress. |
528 | + * |
529 | + * Return value: A GSList of #SyncdaemonTransferInfo objects, each of which contains |
530 | + * information about a file upload in progress. The data in the list belongs to |
531 | + * the library, so when no longer needed, the list should be freed by just calling |
532 | + * g_slist_free. |
533 | + */ |
534 | +GSList * |
535 | +syncdaemon_daemon_get_current_uploads (SyncdaemonDaemon *daemon) |
536 | +{ |
537 | + SyncdaemonInterface *interface; |
538 | + |
539 | + g_return_val_if_fail (SYNCDAEMON_IS_DAEMON (daemon), NULL); |
540 | + |
541 | + interface = syncdaemon_daemon_get_status_interface (daemon); |
542 | + if (interface != NULL) |
543 | + return syncdaemon_status_interface_get_current_uploads (SYNCDAEMON_STATUS_INTERFACE (interface)); |
544 | + |
545 | + return NULL; |
546 | +} |
547 | + |
548 | typedef SyncdaemonInterface * (* SDINewFunc) (SyncdaemonDaemon * daemon); |
549 | |
550 | static SyncdaemonInterface * |
551 | |
552 | === modified file 'libsyncdaemon/syncdaemon-daemon.h' |
553 | --- libsyncdaemon/syncdaemon-daemon.h 2010-09-29 11:12:35 +0000 |
554 | +++ libsyncdaemon/syncdaemon-daemon.h 2010-10-22 07:46:49 +0000 |
555 | @@ -27,6 +27,7 @@ |
556 | #include "syncdaemon-file-info.h" |
557 | #include "syncdaemon-folder-info.h" |
558 | #include "syncdaemon-interface.h" |
559 | +#include "syncdaemon-metadata.h" |
560 | #include "syncdaemon-share-info.h" |
561 | #include "syncdaemon-status-info.h" |
562 | #include "syncdaemon-transfer-info.h" |
563 | @@ -95,10 +96,50 @@ |
564 | gboolean syncdaemon_daemon_has_network (SyncdaemonDaemon *daemon); |
565 | SyncdaemonAuthentication *syncdaemon_daemon_get_authentication (SyncdaemonDaemon *daemon); |
566 | |
567 | +/* Configuration */ |
568 | +gboolean syncdaemon_daemon_get_bandwidth_throttling (SyncdaemonDaemon *daemon); |
569 | +void syncdaemon_daemon_set_bandwidth_throttling (SyncdaemonDaemon *daemon, gboolean enabled); |
570 | +gboolean syncdaemon_daemon_get_files_sync (SyncdaemonDaemon *daemon); |
571 | +void syncdaemon_daemon_set_files_sync (SyncdaemonDaemon *daemon, gboolean enabled); |
572 | +void syncdaemon_daemon_get_throttling_limits (SyncdaemonDaemon *daemon, gint *download, gint *upload); |
573 | +void syncdaemon_daemon_set_throttling_limits (SyncdaemonDaemon *daemon, gint download, gint upload); |
574 | +gboolean syncdaemon_daemon_get_udf_autosubscribe (SyncdaemonDaemon *daemon); |
575 | +void syncdaemon_daemon_set_udf_autosubscribe (SyncdaemonDaemon *daemon, gboolean enabled); |
576 | + |
577 | +/* File system operations */ |
578 | +SyncdaemonMetadata *syncdaemon_daemon_get_metadata (SyncdaemonDaemon *daemon, |
579 | + const gchar *path, |
580 | + gboolean with_subtree_sync_check); |
581 | + |
582 | + |
583 | /* Folders operations */ |
584 | +GSList *syncdaemon_daemon_get_folders (SyncdaemonDaemon *daemon); |
585 | +SyncdaemonFolderInfo*syncdaemon_daemon_get_folder_info (SyncdaemonDaemon *daemon, const gchar *path); |
586 | gboolean syncdaemon_daemon_is_folder_enabled (SyncdaemonDaemon *daemon, |
587 | const gchar *path, |
588 | gboolean *is_root); |
589 | +void syncdaemon_daemon_create_folder (SyncdaemonDaemon *daemon, const gchar *path); |
590 | +void syncdaemon_daemon_delete_folder (SyncdaemonDaemon *daemon, const gchar *path); |
591 | +void syncdaemon_daemon_subscribe_folder (SyncdaemonDaemon *daemon, const gchar *path); |
592 | +void syncdaemon_daemon_unsubscribe_folder (SyncdaemonDaemon *daemon, const gchar *path); |
593 | + |
594 | +/* Public files operations */ |
595 | +/* FIXME: need nautilus-refactor branch landed first */ |
596 | + |
597 | +/* Shares operations */ |
598 | +void syncdaemon_daemon_create_share (SyncdaemonDaemon *daemon, |
599 | + const gchar *path, |
600 | + GSList *usernames, |
601 | + const gchar *name, |
602 | + gboolean allow_modifications); |
603 | +void syncdaemon_daemon_delete_share (SyncdaemonDaemon *daemon, const gchar *path); |
604 | +GSList *syncdaemon_daemon_get_shared_folders (SyncdaemonDaemon *daemon); |
605 | +GSList *syncdaemon_daemon_get_shares (SyncdaemonDaemon *daemon); |
606 | + |
607 | +/* Status operations */ |
608 | +SyncdaemonStatusInfo*syncdaemon_daemon_get_current_status (SyncdaemonDaemon *daemon); |
609 | +GSList *syncdaemon_daemon_get_current_downloads (SyncdaemonDaemon *daemon); |
610 | +GSList *syncdaemon_daemon_get_current_uploads (SyncdaemonDaemon *daemon); |
611 | |
612 | /* |
613 | * Low level DBus interface access |
614 | |
615 | === modified file 'libsyncdaemon/test-libsyncdaemon.c' |
616 | --- libsyncdaemon/test-libsyncdaemon.c 2010-10-04 18:47:52 +0000 |
617 | +++ libsyncdaemon/test-libsyncdaemon.c 2010-10-22 07:46:49 +0000 |
618 | @@ -58,33 +58,29 @@ |
619 | static void |
620 | test_config (void) |
621 | { |
622 | - SyncdaemonConfigInterface *config; |
623 | gboolean orig_enabled, enabled; |
624 | |
625 | - config = (SyncdaemonConfigInterface *) syncdaemon_daemon_get_config_interface (the_daemon); |
626 | - g_assert (SYNCDAEMON_IS_CONFIG_INTERFACE (config)); |
627 | - |
628 | /* Test set/get_throttling_enabled */ |
629 | - orig_enabled = syncdaemon_config_interface_get_bandwidth_throttling (config); |
630 | - syncdaemon_config_interface_set_bandwidth_throttling (config, !orig_enabled); |
631 | - enabled = syncdaemon_config_interface_get_bandwidth_throttling (config); |
632 | + orig_enabled = syncdaemon_daemon_get_bandwidth_throttling (the_daemon); |
633 | + syncdaemon_daemon_set_bandwidth_throttling (the_daemon, !orig_enabled); |
634 | + enabled = syncdaemon_daemon_get_bandwidth_throttling (the_daemon); |
635 | g_assert (orig_enabled != enabled); |
636 | |
637 | - syncdaemon_config_interface_set_bandwidth_throttling (config, orig_enabled); |
638 | - enabled = syncdaemon_config_interface_get_bandwidth_throttling (config); |
639 | + syncdaemon_daemon_set_bandwidth_throttling (the_daemon, orig_enabled); |
640 | + enabled = syncdaemon_daemon_get_bandwidth_throttling (the_daemon); |
641 | g_assert (orig_enabled == enabled); |
642 | |
643 | /* FIXME: we don't test get/set_files_sync since disabling it means the |
644 | syncdaemon quits and doesn't start anymore */ |
645 | |
646 | /* Test set/get_udf_autosubscribe */ |
647 | - orig_enabled = syncdaemon_config_interface_get_udf_autosubscribe (config); |
648 | - syncdaemon_config_interface_set_udf_autosubscribe (config, !orig_enabled); |
649 | - enabled = syncdaemon_config_interface_get_udf_autosubscribe (config); |
650 | + orig_enabled = syncdaemon_daemon_get_udf_autosubscribe (the_daemon); |
651 | + syncdaemon_daemon_set_udf_autosubscribe (the_daemon, !orig_enabled); |
652 | + enabled = syncdaemon_daemon_get_udf_autosubscribe (the_daemon); |
653 | g_assert (orig_enabled != enabled); |
654 | |
655 | - syncdaemon_config_interface_set_udf_autosubscribe (config, orig_enabled); |
656 | - enabled = syncdaemon_config_interface_get_udf_autosubscribe (config); |
657 | + syncdaemon_daemon_set_udf_autosubscribe (the_daemon, orig_enabled); |
658 | + enabled = syncdaemon_daemon_get_udf_autosubscribe (the_daemon); |
659 | g_assert (orig_enabled == enabled); |
660 | } |
661 | |
662 | @@ -192,13 +188,9 @@ |
663 | test_folders (void) |
664 | { |
665 | GSList *folders_list, *l; |
666 | - SyncdaemonFoldersInterface *folders; |
667 | - |
668 | - folders = (SyncdaemonFoldersInterface *) syncdaemon_daemon_get_folders_interface (the_daemon); |
669 | - g_assert (SYNCDAEMON_IS_FOLDERS_INTERFACE (folders)); |
670 | |
671 | /* Get list of UDFs */ |
672 | - folders_list = syncdaemon_folders_interface_get_folders (folders); |
673 | + folders_list = syncdaemon_daemon_get_folders (the_daemon); |
674 | g_assert (g_slist_length (folders_list) >= 1); |
675 | |
676 | for (l = folders_list; l != NULL; l = l->next) { |
677 | @@ -335,13 +327,9 @@ |
678 | test_shares (void) |
679 | { |
680 | GSList *list; |
681 | - SyncdaemonSharesInterface *shares; |
682 | - |
683 | - shares = (SyncdaemonSharesInterface *) syncdaemon_daemon_get_shares_interface (the_daemon); |
684 | - g_assert (SYNCDAEMON_IS_SHARES_INTERFACE (shares)); |
685 | |
686 | /* Get shared folders */ |
687 | - list = syncdaemon_shares_interface_get_shared (shares); |
688 | + list = syncdaemon_daemon_get_shared_folders (the_daemon); |
689 | while (list != NULL) { |
690 | SyncdaemonShareInfo *share_info = list->data; |
691 | |
692 | @@ -352,7 +340,7 @@ |
693 | } |
694 | |
695 | /* Get shares */ |
696 | - list = syncdaemon_shares_interface_get_shares (shares); |
697 | + list = syncdaemon_daemon_get_shares (the_daemon); |
698 | while (list != NULL) { |
699 | SyncdaemonShareInfo *share_info = list->data; |
700 | |
701 | @@ -367,13 +355,9 @@ |
702 | test_status (void) |
703 | { |
704 | GSList *list; |
705 | - SyncdaemonStatusInterface *status; |
706 | - |
707 | - status = (SyncdaemonStatusInterface *) syncdaemon_daemon_get_status_interface (the_daemon); |
708 | - g_assert (SYNCDAEMON_IS_STATUS_INTERFACE (status)); |
709 | |
710 | /* Test getting current downloads */ |
711 | - list = syncdaemon_status_interface_get_current_downloads (status); |
712 | + list = syncdaemon_daemon_get_current_downloads (the_daemon); |
713 | while (list != NULL) { |
714 | SyncdaemonTransferInfo *tinfo = (SyncdaemonTransferInfo *) list->data; |
715 | |
716 | @@ -382,7 +366,7 @@ |
717 | } |
718 | |
719 | /* Test getting current uploads */ |
720 | - list = syncdaemon_status_interface_get_current_uploads (status); |
721 | + list = syncdaemon_daemon_get_current_uploads (the_daemon); |
722 | while (list != NULL) { |
723 | SyncdaemonTransferInfo *tinfo = (SyncdaemonTransferInfo *) list->data; |
724 |