57
<refsect1 id="gnome-vfs-20-gnome-vfs-xfer.description" role="desc">
57
<refsect1 id="gnome-vfs-2.0-gnome-vfs-xfer.description" role="desc">
58
58
<title role="desc.title">Description</title>
63
<refsect1 id="gnome-vfs-20-gnome-vfs-xfer.details" role="details">
64
<refsect1 id="gnome-vfs-2.0-gnome-vfs-xfer.details" role="details">
64
65
<title role="details.title">Details</title>
65
66
<refsect2 id="GnomeVFSXferOptions" role="enum">
66
67
<title>enum GnomeVFSXferOptions</title>
67
<indexterm zone="GnomeVFSXferOptions"><primary sortas="GnomeVFSXferOptions">GnomeVFSXferOptions</primary></indexterm><programlisting>typedef enum {
68
<indexterm zone="GnomeVFSXferOptions"><primary>GnomeVFSXferOptions</primary></indexterm>
69
<programlisting>typedef enum {
68
70
GNOME_VFS_XFER_DEFAULT = 0,
69
71
GNOME_VFS_XFER_UNUSED_1 = 1 << 0,
70
72
GNOME_VFS_XFER_FOLLOW_LINKS = 1 << 1,
115
<entry><link linkend="GNOME-VFS-XFER-DEFAULT--CAPS"><type>GNOME_VFS_XFER_DEFAULT</type></link></entry>
117
<entry><link linkend="GNOME-VFS-XFER-DEFAULT:CAPS"><type>GNOME_VFS_XFER_DEFAULT</type></link></entry>
116
118
<entry>Copy</entry>
117
119
<entry><literal>cp</literal></entry>
120
<entry><link linkend="GNOME-VFS-XFER-REMOVESOURCE--CAPS"><type>GNOME_VFS_XFER_REMOVESOURCE</type></link></entry>
122
<entry><link linkend="GNOME-VFS-XFER-REMOVESOURCE:CAPS"><type>GNOME_VFS_XFER_REMOVESOURCE</type></link></entry>
121
123
<entry>Move</entry>
122
124
<entry><literal>mv</literal></entry>
125
<entry><link linkend="GNOME-VFS-XFER-LINK-ITEMS--CAPS"><type>GNOME_VFS_XFER_LINK_ITEMS</type></link></entry>
127
<entry><link linkend="GNOME-VFS-XFER-LINK-ITEMS:CAPS"><type>GNOME_VFS_XFER_LINK_ITEMS</type></link></entry>
126
128
<entry>Link</entry>
127
129
<entry><literal>ln -s</literal></entry>
130
<entry><link linkend="GNOME-VFS-XFER-NEW-UNIQUE-DIRECTORY--CAPS"><type>GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY</type></link></entry>
132
<entry><link linkend="GNOME-VFS-XFER-NEW-UNIQUE-DIRECTORY:CAPS"><type>GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY</type></link></entry>
131
133
<entry>Make Unique Directory</entry>
132
134
<entry><literal>mkdir</literal></entry>
133
<entry>implies <link linkend="GNOME-VFS-XFER-USE-UNIQUE-NAMES--CAPS"><type>GNOME_VFS_XFER_USE_UNIQUE_NAMES</type></link></entry>
135
<entry>implies <link linkend="GNOME-VFS-XFER-USE-UNIQUE-NAMES:CAPS"><type>GNOME_VFS_XFER_USE_UNIQUE_NAMES</type></link></entry>
136
<entry><link linkend="GNOME-VFS-XFER-DELETE-ITEMS--CAPS"><type>GNOME_VFS_XFER_DELETE_ITEMS</type></link></entry>
138
<entry><link linkend="GNOME-VFS-XFER-DELETE-ITEMS:CAPS"><type>GNOME_VFS_XFER_DELETE_ITEMS</type></link></entry>
137
139
<entry>Remove</entry>
138
140
<entry><literal>rm -r</literal></entry>
141
<entry><link linkend="GNOME-VFS-XFER-EMPTY-DIRECTORIES--CAPS"><type>GNOME_VFS_XFER_EMPTY_DIRECTORIES</type></link></entry>
143
<entry><link linkend="GNOME-VFS-XFER-EMPTY-DIRECTORIES:CAPS"><type>GNOME_VFS_XFER_EMPTY_DIRECTORIES</type></link></entry>
142
144
<entry>Remove Directory Contents</entry>
143
145
<entry>foreach file: <literal>( cd file && rm -rf * )</literal></entry>
144
146
<entry>used to empty trash</entry>
169
171
</para><variablelist role="enum">
170
<varlistentry id="GNOME-VFS-XFER-DEFAULT--CAPS" role="constant">
172
<varlistentry id="GNOME-VFS-XFER-DEFAULT:CAPS" role="constant">
171
173
<term><literal>GNOME_VFS_XFER_DEFAULT</literal></term>
172
174
<listitem><simpara> Default behavior, which is to do a straight one to one copy.
173
175
</simpara></listitem>
175
<varlistentry id="GNOME-VFS-XFER-UNUSED-1--CAPS" role="constant">
177
<varlistentry id="GNOME-VFS-XFER-UNUSED-1:CAPS" role="constant">
176
178
<term><literal>GNOME_VFS_XFER_UNUSED_1</literal></term>
177
179
<listitem><simpara> Unused.
178
180
</simpara></listitem>
180
<varlistentry id="GNOME-VFS-XFER-FOLLOW-LINKS--CAPS" role="constant">
182
<varlistentry id="GNOME-VFS-XFER-FOLLOW-LINKS:CAPS" role="constant">
181
183
<term><literal>GNOME_VFS_XFER_FOLLOW_LINKS</literal></term>
182
184
<listitem><simpara> Follow symbolic links when copying or moving, i.e.
183
185
the target of symbolic links are copied
185
187
Note that this just refers to top-level items.
186
188
If you also want to follow symbolic links inside
187
189
directories you operate on, you also have to specify
188
<link linkend="GNOME-VFS-XFER-FOLLOW-LINKS-RECURSIVE--CAPS"><type>GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE</type></link>.
190
<link linkend="GNOME-VFS-XFER-FOLLOW-LINKS-RECURSIVE.:CAPS"><type>GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE.</type></link>
189
191
</simpara></listitem>
191
<varlistentry id="GNOME-VFS-XFER-UNUSED-2--CAPS" role="constant">
193
<varlistentry id="GNOME-VFS-XFER-UNUSED-2:CAPS" role="constant">
192
194
<term><literal>GNOME_VFS_XFER_UNUSED_2</literal></term>
193
195
<listitem><simpara> Unused.
194
196
</simpara></listitem>
196
<varlistentry id="GNOME-VFS-XFER-RECURSIVE--CAPS" role="constant">
198
<varlistentry id="GNOME-VFS-XFER-RECURSIVE:CAPS" role="constant">
197
199
<term><literal>GNOME_VFS_XFER_RECURSIVE</literal></term>
198
200
<listitem><simpara> Recursively copy source directories to the target.
199
201
Equivalent to the cp -r option in GNU cp.
200
202
</simpara></listitem>
202
<varlistentry id="GNOME-VFS-XFER-SAMEFS--CAPS" role="constant">
204
<varlistentry id="GNOME-VFS-XFER-SAMEFS:CAPS" role="constant">
203
205
<term><literal>GNOME_VFS_XFER_SAMEFS</literal></term>
204
206
<listitem><simpara> When copying recursively, this only picks up items on the same file
205
207
system the same filesystem as their parent directory.
206
208
</simpara></listitem>
208
<varlistentry id="GNOME-VFS-XFER-DELETE-ITEMS--CAPS" role="constant">
210
<varlistentry id="GNOME-VFS-XFER-DELETE-ITEMS:CAPS" role="constant">
209
211
<term><literal>GNOME_VFS_XFER_DELETE_ITEMS</literal></term>
210
212
<listitem><simpara> This is equivalent to an <link linkend="rmdir"><function>rmdir()</function></link> for source directories,
211
213
and an <link linkend="unlink"><function>unlink()</function></link> operation for all source files.
212
Requires <link linkend="NULL--CAPS"><literal>NULL</literal></link> target URIs.
214
Requires <link linkend="NULL:CAPS"><literal>NULL</literal></link> target URIs.
213
215
</simpara></listitem>
215
<varlistentry id="GNOME-VFS-XFER-EMPTY-DIRECTORIES--CAPS" role="constant">
217
<varlistentry id="GNOME-VFS-XFER-EMPTY-DIRECTORIES:CAPS" role="constant">
216
218
<term><literal>GNOME_VFS_XFER_EMPTY_DIRECTORIES</literal></term>
217
219
<listitem><simpara> Remove the whole contents of the passed-in source
218
directories. Requires <link linkend="NULL--CAPS"><literal>NULL</literal></link> target URIs.
220
directories. Requires <link linkend="NULL:CAPS"><literal>NULL</literal></link> target URIs.
219
221
</simpara></listitem>
221
<varlistentry id="GNOME-VFS-XFER-NEW-UNIQUE-DIRECTORY--CAPS" role="constant">
223
<varlistentry id="GNOME-VFS-XFER-NEW-UNIQUE-DIRECTORY:CAPS" role="constant">
222
224
<term><literal>GNOME_VFS_XFER_NEW_UNIQUE_DIRECTORY</literal></term>
223
225
<listitem><simpara> This will create a directory if it doesn't exist
224
226
in the destination area (i.e. <link linkend="mkdir"><function>mkdir()</function></link>).
225
227
</simpara></listitem>
227
<varlistentry id="GNOME-VFS-XFER-REMOVESOURCE--CAPS" role="constant">
229
<varlistentry id="GNOME-VFS-XFER-REMOVESOURCE:CAPS" role="constant">
228
230
<term><literal>GNOME_VFS_XFER_REMOVESOURCE</literal></term>
229
231
<listitem><simpara> This makes a copy operation equivalent to a mv, i.e. the
230
232
files will be moved rather than copied. If applicable, this
249
251
and the symlink itself as target URI.
250
252
</simpara></listitem>
252
<varlistentry id="GNOME-VFS-XFER-FOLLOW-LINKS-RECURSIVE--CAPS" role="constant">
254
<varlistentry id="GNOME-VFS-XFER-FOLLOW-LINKS-RECURSIVE:CAPS" role="constant">
253
255
<term><literal>GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE</literal></term>
254
256
<listitem><simpara> This means that when doing a copy operation, symbolic
255
257
links in subdirectories are dereferenced. This is
256
typically used together with <link linkend="GNOME-VFS-XFER-FOLLOW-LINKS-RECURSIVE--CAPS"><type>GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE</type></link>.
258
typically used together with <link linkend="GNOME-VFS-XFER-FOLLOW-LINKS-RECURSIVE.:CAPS"><type>GNOME_VFS_XFER_FOLLOW_LINKS_RECURSIVE.</type></link>
257
259
</simpara></listitem>
259
<varlistentry id="GNOME-VFS-XFER-TARGET-DEFAULT-PERMS--CAPS" role="constant">
261
<varlistentry id="GNOME-VFS-XFER-TARGET-DEFAULT-PERMS:CAPS" role="constant">
260
262
<term><literal>GNOME_VFS_XFER_TARGET_DEFAULT_PERMS</literal></term>
261
263
<listitem><simpara> This means that the target file will not have the same
262
264
permissions as the source file, but will instead have
275
278
} GnomeVFSXferProgressStatus;
276
279
</programlisting>
278
The difference between <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OVERWRITE--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE</type></link> and
279
<link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-DUPLICATE--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE</type></link> is that they will be issued
281
The difference between <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OVERWRITE:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE</type></link> and
282
<link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-DUPLICATE:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE</type></link> is that they will be issued
280
283
at different occassions, and that the return value will be interpreted
281
differently. For details, see <link linkend="GnomeVFSXferProgressCallback"><type>GnomeVFSXferProgressCallback</type></link>.</para>
284
differently. For details, see <link linkend="GnomeVFSXferProgressCallback."><type>GnomeVFSXferProgressCallback.</type></link></para>
283
286
</para><variablelist role="enum">
284
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-OK--CAPS" role="constant">
287
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-OK:CAPS" role="constant">
285
288
<term><literal>GNOME_VFS_XFER_PROGRESS_STATUS_OK</literal></term>
286
289
<listitem><simpara> The file transfer is progressing normally.
287
290
</simpara></listitem>
289
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR--CAPS" role="constant">
292
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR:CAPS" role="constant">
290
293
<term><literal>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR</literal></term>
291
294
<listitem><simpara> A VFS error was detected.
292
295
</simpara></listitem>
294
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-OVERWRITE--CAPS" role="constant">
297
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-OVERWRITE:CAPS" role="constant">
295
298
<term><literal>GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE</literal></term>
296
299
<listitem><simpara> The current target file specified by the
297
300
<link linkend="GnomeVFSXferProgressInfo"><type>GnomeVFSXferProgressInfo</type></link>'s <link linkend="target-name"><literal>target_name</literal></link>
298
301
field already exists.
299
302
</simpara></listitem>
301
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-DUPLICATE--CAPS" role="constant">
304
<varlistentry id="GNOME-VFS-XFER-PROGRESS-STATUS-DUPLICATE:CAPS" role="constant">
302
305
<term><literal>GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE</literal></term>
303
306
<listitem><simpara> The current target file specified by the
304
307
<link linkend="GnomeVFSXferProgressInfo"><type>GnomeVFSXferProgressInfo</type></link>'s <link linkend="target-name"><literal>target_name</literal></link>
322
326
what action should be taken when a target file already exists.</para>
324
328
</para><variablelist role="enum">
325
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-ABORT--CAPS" role="constant">
329
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-ABORT:CAPS" role="constant">
326
330
<term><literal>GNOME_VFS_XFER_OVERWRITE_MODE_ABORT</literal></term>
327
331
<listitem><simpara> Abort the transfer when a target file already exists,
328
returning the error <link linkend="GNOME-VFS-ERROR-FILEEXISTS--CAPS"><type>GNOME_VFS_ERROR_FILEEXISTS</type></link>.
332
returning the error <link linkend="GNOME-VFS-ERROR-FILEEXISTS.:CAPS"><type>GNOME_VFS_ERROR_FILEEXISTS.</type></link>
329
333
</simpara></listitem>
331
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-QUERY--CAPS" role="constant">
335
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-QUERY:CAPS" role="constant">
332
336
<term><literal>GNOME_VFS_XFER_OVERWRITE_MODE_QUERY</literal></term>
333
337
<listitem><simpara> Query the progress callback with the
334
338
<link linkend="GnomeVFSXferProgressInfo"><type>GnomeVFSXferProgressInfo</type></link>'s status field
335
set to <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR</type></link> when
339
set to <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR</type></link> when
336
340
a target file already exists.
337
341
</simpara></listitem>
339
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-REPLACE--CAPS" role="constant">
343
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-REPLACE:CAPS" role="constant">
340
344
<term><literal>GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE</literal></term>
341
345
<listitem><simpara> Replace existing target files silently.
342
346
Don't worry be happy.
343
347
</simpara></listitem>
345
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-SKIP--CAPS" role="constant">
349
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-MODE-SKIP:CAPS" role="constant">
346
350
<term><literal>GNOME_VFS_XFER_OVERWRITE_MODE_SKIP</literal></term>
347
351
<listitem><simpara> Skip source files when its target already exists.
348
352
</simpara></listitem>
363
368
(i.e., these are the answers that can be given to a replace query).</para>
365
370
</para><variablelist role="enum">
366
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-ABORT--CAPS" role="constant">
371
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-ABORT:CAPS" role="constant">
367
372
<term><literal>GNOME_VFS_XFER_OVERWRITE_ACTION_ABORT</literal></term>
368
373
<listitem><simpara> abort the transfer
369
374
</simpara></listitem>
371
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-REPLACE--CAPS" role="constant">
376
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-REPLACE:CAPS" role="constant">
372
377
<term><literal>GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE</literal></term>
373
378
<listitem><simpara> replace the existing file
374
379
</simpara></listitem>
376
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-REPLACE-ALL--CAPS" role="constant">
381
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-REPLACE-ALL:CAPS" role="constant">
377
382
<term><literal>GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE_ALL</literal></term>
378
383
<listitem><simpara> replace the existing file, and all future files
379
384
without prompting the callback.
380
385
</simpara></listitem>
382
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-SKIP--CAPS" role="constant">
387
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-SKIP:CAPS" role="constant">
383
388
<term><literal>GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP</literal></term>
384
389
<listitem><simpara> don't copy over the existing file
385
390
</simpara></listitem>
387
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-SKIP-ALL--CAPS" role="constant">
392
<varlistentry id="GNOME-VFS-XFER-OVERWRITE-ACTION-SKIP-ALL:CAPS" role="constant">
388
393
<term><literal>GNOME_VFS_XFER_OVERWRITE_ACTION_SKIP_ALL</literal></term>
389
394
<listitem><simpara> don't copy over the existing file, and all future
390
395
files without prompting the callback.
408
414
Xfer operations, or a <link linkend="GnomeVFSAsyncXferProgressCallback"><type>GnomeVFSAsyncXferProgressCallback</type></link> for asynchronous operations.</para>
410
416
</para><variablelist role="enum">
411
<varlistentry id="GNOME-VFS-XFER-ERROR-MODE-ABORT--CAPS" role="constant">
417
<varlistentry id="GNOME-VFS-XFER-ERROR-MODE-ABORT:CAPS" role="constant">
412
418
<term><literal>GNOME_VFS_XFER_ERROR_MODE_ABORT</literal></term>
413
419
<listitem><simpara> abort the transfer when an error occurs
414
420
</simpara></listitem>
416
<varlistentry id="GNOME-VFS-XFER-ERROR-MODE-QUERY--CAPS" role="constant">
422
<varlistentry id="GNOME-VFS-XFER-ERROR-MODE-QUERY:CAPS" role="constant">
417
423
<term><literal>GNOME_VFS_XFER_ERROR_MODE_QUERY</literal></term>
418
424
<listitem><simpara> query the progress callback with the
419
425
<link linkend="GnomeVFSXferProgressInfo"><type>GnomeVFSXferProgressInfo</type></link>'s status field
420
set to <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR</type></link>.
426
set to <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR.:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR.</type></link>
421
427
</simpara></listitem>
423
429
</variablelist></refsect2>
424
430
<refsect2 id="GnomeVFSXferErrorAction" role="enum">
425
431
<title>enum GnomeVFSXferErrorAction</title>
426
<indexterm zone="GnomeVFSXferErrorAction"><primary sortas="GnomeVFSXferErrorAction">GnomeVFSXferErrorAction</primary></indexterm><programlisting>typedef enum {
432
<indexterm zone="GnomeVFSXferErrorAction"><primary>GnomeVFSXferErrorAction</primary></indexterm>
433
<programlisting>typedef enum {
427
434
GNOME_VFS_XFER_ERROR_ACTION_ABORT = 0,
428
435
GNOME_VFS_XFER_ERROR_ACTION_RETRY = 1,
429
436
GNOME_VFS_XFER_ERROR_ACTION_SKIP = 2
440
447
operations.</para>
442
449
</para><variablelist role="enum">
443
<varlistentry id="GNOME-VFS-XFER-ERROR-ACTION-ABORT--CAPS" role="constant">
450
<varlistentry id="GNOME-VFS-XFER-ERROR-ACTION-ABORT:CAPS" role="constant">
444
451
<term><literal>GNOME_VFS_XFER_ERROR_ACTION_ABORT</literal></term>
445
<listitem><simpara> interrupt Xfer and return <link linkend="GNOME-VFS-ERROR-INTERRUPTED--CAPS"><literal>GNOME_VFS_ERROR_INTERRUPTED</literal></link>.
452
<listitem><simpara> interrupt Xfer and return <link linkend="GNOME-VFS-ERROR-INTERRUPTED:CAPS"><literal>GNOME_VFS_ERROR_INTERRUPTED</literal></link>.
446
453
</simpara></listitem>
448
<varlistentry id="GNOME-VFS-XFER-ERROR-ACTION-RETRY--CAPS" role="constant">
455
<varlistentry id="GNOME-VFS-XFER-ERROR-ACTION-RETRY:CAPS" role="constant">
449
456
<term><literal>GNOME_VFS_XFER_ERROR_ACTION_RETRY</literal></term>
450
457
<listitem><simpara> retry the failed operation.
451
458
</simpara></listitem>
453
<varlistentry id="GNOME-VFS-XFER-ERROR-ACTION-SKIP--CAPS" role="constant">
460
<varlistentry id="GNOME-VFS-XFER-ERROR-ACTION-SKIP:CAPS" role="constant">
454
461
<term><literal>GNOME_VFS_XFER_ERROR_ACTION_SKIP</literal></term>
455
462
<listitem><simpara> skip the failed operation, and continue Xfer normally.
456
463
</simpara></listitem>
488
496
Whenever the Xfer phase is in a phase that is highlighted with a
489
497
(*), the <link linkend="GnomeVFSXferProgressCallback"><type>GnomeVFSXferProgressCallback</type></link> respectively
490
498
<link linkend="GnomeVFSAsyncXferProgressCallback"><type>GnomeVFSAsyncXferProgressCallback</type></link> is never invoked with a
491
<link linkend="GnomeVFSXferProgressStatus"><type>GnomeVFSXferProgressStatus</type></link> other than <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OK--CAPS"><literal>GNOME_VFS_XFER_PROGRESS_STATUS_OK</literal></link>.</para>
499
<link linkend="GnomeVFSXferProgressStatus"><type>GnomeVFSXferProgressStatus</type></link> other than <link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OK:CAPS"><literal>GNOME_VFS_XFER_PROGRESS_STATUS_OK</literal></link>.</para>
493
501
</para><variablelist role="enum">
494
<varlistentry id="GNOME-VFS-XFER-PHASE-INITIAL--CAPS" role="constant">
502
<varlistentry id="GNOME-VFS-XFER-PHASE-INITIAL:CAPS" role="constant">
495
503
<term><literal>GNOME_VFS_XFER_PHASE_INITIAL</literal></term>
496
504
<listitem><simpara> initial phase.
497
505
</simpara></listitem>
499
<varlistentry id="GNOME-VFS-XFER-CHECKING-DESTINATION--CAPS" role="constant">
507
<varlistentry id="GNOME-VFS-XFER-CHECKING-DESTINATION:CAPS" role="constant">
500
508
<term><literal>GNOME_VFS_XFER_CHECKING_DESTINATION</literal></term>
501
509
<listitem><simpara> destination is checked for being able to handle copy/move.
502
510
</simpara></listitem>
504
<varlistentry id="GNOME-VFS-XFER-PHASE-COLLECTING--CAPS" role="constant">
512
<varlistentry id="GNOME-VFS-XFER-PHASE-COLLECTING:CAPS" role="constant">
505
513
<term><literal>GNOME_VFS_XFER_PHASE_COLLECTING</literal></term>
506
514
<listitem><simpara> source file list is collected.
507
515
</simpara></listitem>
509
<varlistentry id="GNOME-VFS-XFER-PHASE-READYTOGO--CAPS" role="constant">
517
<varlistentry id="GNOME-VFS-XFER-PHASE-READYTOGO:CAPS" role="constant">
510
518
<term><literal>GNOME_VFS_XFER_PHASE_READYTOGO</literal></term>
511
519
<listitem><simpara> source file list has been collected (*).
512
520
</simpara></listitem>
514
<varlistentry id="GNOME-VFS-XFER-PHASE-OPENSOURCE--CAPS" role="constant">
522
<varlistentry id="GNOME-VFS-XFER-PHASE-OPENSOURCE:CAPS" role="constant">
515
523
<term><literal>GNOME_VFS_XFER_PHASE_OPENSOURCE</literal></term>
516
524
<listitem><simpara> source file is opened for reading.
517
525
</simpara></listitem>
519
<varlistentry id="GNOME-VFS-XFER-PHASE-OPENTARGET--CAPS" role="constant">
527
<varlistentry id="GNOME-VFS-XFER-PHASE-OPENTARGET:CAPS" role="constant">
520
528
<term><literal>GNOME_VFS_XFER_PHASE_OPENTARGET</literal></term>
521
529
<listitem><simpara> target file, directory or symlink is created, or opened for copying.
522
530
</simpara></listitem>
524
<varlistentry id="GNOME-VFS-XFER-PHASE-COPYING--CAPS" role="constant">
532
<varlistentry id="GNOME-VFS-XFER-PHASE-COPYING:CAPS" role="constant">
525
533
<term><literal>GNOME_VFS_XFER_PHASE_COPYING</literal></term>
526
534
<listitem><simpara> data is copied from source file to target file (*).
527
535
</simpara></listitem>
529
<varlistentry id="GNOME-VFS-XFER-PHASE-MOVING--CAPS" role="constant">
537
<varlistentry id="GNOME-VFS-XFER-PHASE-MOVING:CAPS" role="constant">
530
538
<term><literal>GNOME_VFS_XFER_PHASE_MOVING</literal></term>
531
539
<listitem><simpara> source file is moved to target (M).
532
540
</simpara></listitem>
534
<varlistentry id="GNOME-VFS-XFER-PHASE-READSOURCE--CAPS" role="constant">
542
<varlistentry id="GNOME-VFS-XFER-PHASE-READSOURCE:CAPS" role="constant">
535
543
<term><literal>GNOME_VFS_XFER_PHASE_READSOURCE</literal></term>
536
544
<listitem><simpara> data is read from a source file, when copying.
537
545
</simpara></listitem>
539
<varlistentry id="GNOME-VFS-XFER-PHASE-WRITETARGET--CAPS" role="constant">
547
<varlistentry id="GNOME-VFS-XFER-PHASE-WRITETARGET:CAPS" role="constant">
540
548
<term><literal>GNOME_VFS_XFER_PHASE_WRITETARGET</literal></term>
541
549
<listitem><simpara> data is written to a target file, when copying.
542
550
</simpara></listitem>
544
<varlistentry id="GNOME-VFS-XFER-PHASE-CLOSESOURCE--CAPS" role="constant">
552
<varlistentry id="GNOME-VFS-XFER-PHASE-CLOSESOURCE:CAPS" role="constant">
545
553
<term><literal>GNOME_VFS_XFER_PHASE_CLOSESOURCE</literal></term>
546
554
<listitem><simpara> source file is closed, when copying
547
555
</simpara></listitem>
549
<varlistentry id="GNOME-VFS-XFER-PHASE-CLOSETARGET--CAPS" role="constant">
557
<varlistentry id="GNOME-VFS-XFER-PHASE-CLOSETARGET:CAPS" role="constant">
550
558
<term><literal>GNOME_VFS_XFER_PHASE_CLOSETARGET</literal></term>
551
559
<listitem><simpara> target file is closed, when copying.
552
560
</simpara></listitem>
554
<varlistentry id="GNOME-VFS-XFER-PHASE-DELETESOURCE--CAPS" role="constant">
562
<varlistentry id="GNOME-VFS-XFER-PHASE-DELETESOURCE:CAPS" role="constant">
555
563
<term><literal>GNOME_VFS_XFER_PHASE_DELETESOURCE</literal></term>
556
564
<listitem><simpara> source file is deleted.
557
565
</simpara></listitem>
559
<varlistentry id="GNOME-VFS-XFER-PHASE-SETATTRIBUTES--CAPS" role="constant">
567
<varlistentry id="GNOME-VFS-XFER-PHASE-SETATTRIBUTES:CAPS" role="constant">
560
568
<term><literal>GNOME_VFS_XFER_PHASE_SETATTRIBUTES</literal></term>
561
569
<listitem><simpara> target file attributes are set.
562
570
</simpara></listitem>
564
<varlistentry id="GNOME-VFS-XFER-PHASE-FILECOMPLETED--CAPS" role="constant">
572
<varlistentry id="GNOME-VFS-XFER-PHASE-FILECOMPLETED:CAPS" role="constant">
565
573
<term><literal>GNOME_VFS_XFER_PHASE_FILECOMPLETED</literal></term>
566
574
<listitem><simpara> one file was completed, ready for next file.
567
575
</simpara></listitem>
569
<varlistentry id="GNOME-VFS-XFER-PHASE-CLEANUP--CAPS" role="constant">
577
<varlistentry id="GNOME-VFS-XFER-PHASE-CLEANUP:CAPS" role="constant">
570
578
<term><literal>GNOME_VFS_XFER_PHASE_CLEANUP</literal></term>
571
579
<listitem><simpara> cleanup after moving (i.e. source files deletion).
572
580
</simpara></listitem>
574
<varlistentry id="GNOME-VFS-XFER-PHASE-COMPLETED--CAPS" role="constant">
582
<varlistentry id="GNOME-VFS-XFER-PHASE-COMPLETED:CAPS" role="constant">
575
583
<term><literal>GNOME_VFS_XFER_PHASE_COMPLETED</literal></term>
576
584
<listitem><simpara> operation finished (*).
577
585
</simpara></listitem>
579
<varlistentry id="GNOME-VFS-XFER-NUM-PHASES--CAPS" role="constant">
587
<varlistentry id="GNOME-VFS-XFER-NUM-PHASES:CAPS" role="constant">
580
588
<term><literal>GNOME_VFS_XFER_NUM_PHASES</literal></term>
581
589
<listitem><simpara>
582
590
</simpara></listitem>
626
635
</para><variablelist role="struct">
628
<term><link linkend="GnomeVFSXferProgressStatus">GnomeVFSXferProgressStatus</link> <structfield>status</structfield>;</term>
637
<term><link linkend="GnomeVFSXferProgressStatus">GnomeVFSXferProgressStatus</link> <structfield id="GnomeVFSXferProgressInfo.status">status</structfield>;</term>
629
638
<listitem><simpara> A <link linkend="GnomeVFSXferProgressStatus"><type>GnomeVFSXferProgressStatus</type></link> describing the current status.
630
639
</simpara></listitem>
633
<term><link linkend="GnomeVFSResult">GnomeVFSResult</link> <structfield>vfs_status</structfield>;</term>
642
<term><link linkend="GnomeVFSResult">GnomeVFSResult</link> <structfield id="GnomeVFSXferProgressInfo.vfs_status">vfs_status</structfield>;</term>
634
643
<listitem><simpara> A <link linkend="GnomeVFSResult"><type>GnomeVFSResult</type></link> describing the current VFS status.
635
644
</simpara></listitem>
638
<term><link linkend="GnomeVFSXferPhase">GnomeVFSXferPhase</link> <structfield>phase</structfield>;</term>
647
<term><link linkend="GnomeVFSXferPhase">GnomeVFSXferPhase</link> <structfield id="GnomeVFSXferProgressInfo.phase">phase</structfield>;</term>
639
648
<listitem><simpara> A <link linkend="GnomeVFSXferPhase"><type>GnomeVFSXferPhase</type></link> describing the current transfer phase.
640
649
</simpara></listitem>
643
<term><link linkend="gchar">gchar</link> *<structfield>source_name</structfield>;</term>
652
<term><link linkend="gchar">gchar</link> *<structfield id="GnomeVFSXferProgressInfo.source_name">source_name</structfield>;</term>
644
653
<listitem><simpara> The Currently processed source URI.
645
654
</simpara></listitem>
648
<term><link linkend="gchar">gchar</link> *<structfield>target_name</structfield>;</term>
657
<term><link linkend="gchar">gchar</link> *<structfield id="GnomeVFSXferProgressInfo.target_name">target_name</structfield>;</term>
649
658
<listitem><simpara> The Currently processed target URI.
650
659
</simpara></listitem>
653
<term><link linkend="gulong">gulong</link> <structfield>file_index</structfield>;</term>
662
<term><link linkend="gulong">gulong</link> <structfield id="GnomeVFSXferProgressInfo.file_index">file_index</structfield>;</term>
654
663
<listitem><simpara> The index of the currently processed file.
655
664
</simpara></listitem>
658
<term><link linkend="gulong">gulong</link> <structfield>files_total</structfield>;</term>
667
<term><link linkend="gulong">gulong</link> <structfield id="GnomeVFSXferProgressInfo.files_total">files_total</structfield>;</term>
659
668
<listitem><simpara> The total number of processed files.
660
669
</simpara></listitem>
663
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield>bytes_total</structfield>;</term>
672
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield id="GnomeVFSXferProgressInfo.bytes_total">bytes_total</structfield>;</term>
664
673
<listitem><simpara> The total size of all files to transfer in bytes.
665
674
</simpara></listitem>
668
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield>file_size</structfield>;</term>
677
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield id="GnomeVFSXferProgressInfo.file_size">file_size</structfield>;</term>
669
678
<listitem><simpara> The size of the currently processed file in bytes.
670
679
</simpara></listitem>
673
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield>bytes_copied</structfield>;</term>
682
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield id="GnomeVFSXferProgressInfo.bytes_copied">bytes_copied</structfield>;</term>
674
683
<listitem><simpara> The number of bytes that has been transferred
675
684
from the current file.
676
685
</simpara></listitem>
679
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield>total_bytes_copied</structfield>;</term>
688
<term><link linkend="GnomeVFSFileSize">GnomeVFSFileSize</link> <structfield id="GnomeVFSXferProgressInfo.total_bytes_copied">total_bytes_copied</structfield>;</term>
680
689
<listitem><simpara> The total number of bytes that has been transferred.
681
690
</simpara></listitem>
684
<term><link linkend="gchar">gchar</link> *<structfield>duplicate_name</structfield>;</term>
693
<term><link linkend="gchar">gchar</link> *<structfield id="GnomeVFSXferProgressInfo.duplicate_name">duplicate_name</structfield>;</term>
685
694
<listitem><simpara> The name specifying a duplicate filename.
686
695
It acts as pointer to both input and output
687
696
data. It is only valid input data if <parameter>status</parameter> is
695
704
</simpara></listitem>
698
<term><link linkend="int">int</link> <structfield>duplicate_count</structfield>;</term>
707
<term><link linkend="int">int</link> <structfield id="GnomeVFSXferProgressInfo.duplicate_count">duplicate_count</structfield>;</term>
699
708
<listitem><simpara> The number of conflicts that ocurred when the
700
709
current <parameter>duplicate_name</parameter> was set.
701
710
</simpara></listitem>
704
<term><link linkend="gboolean">gboolean</link> <structfield>top_level_item</structfield>;</term>
713
<term><link linkend="gboolean">gboolean</link> <structfield id="GnomeVFSXferProgressInfo.top_level_item">top_level_item</structfield>;</term>
705
714
<listitem><simpara> This flag signals that the currently
706
715
processed file is a top level item.
707
If it is <link linkend="TRUE--CAPS"><literal>TRUE</literal></link>, one of the files passed to
716
If it is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, one of the files passed to
708
717
<link linkend="gnome-vfs-xfer-uri"><function>gnome_vfs_xfer_uri()</function></link>, <link linkend="gnome-vfs-xfer-uri-list"><function>gnome_vfs_xfer_uri_list()</function></link>,
709
718
<link linkend="gnome-vfs-xfer-delete-list"><function>gnome_vfs_xfer_delete_list()</function></link> or <link linkend="gnome-vfs-async-xfer"><function>gnome_vfs_async_xfer()</function></link>
710
719
is currently processed.
711
If it is <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>, a file or directory that is inside
720
If it is <link linkend="FALSE:CAPS"><literal>FALSE</literal></link>, a file or directory that is inside
712
721
a directory specified by the passed in source list
713
722
is currently processed.
714
723
</simpara></listitem>
750
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OK--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_OK</type></link></entry>
760
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OK:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_OK</type></link></entry>
751
761
<entry>OK</entry>
753
<entry><link linkend="0--CAPS"><literal>0</literal></link>: abort, otherwise continue</entry>
763
<entry><link linkend="0:CAPS"><literal>0</literal></link>: abort, otherwise continue</entry>
756
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR</type></link></entry>
766
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-VFSERROR:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR</type></link></entry>
757
767
<entry>VFS Error Ocurred</entry>
758
<entry><link linkend="GnomeVFSXferErrorMode"><type>GnomeVFSXferErrorMode</type></link> is <link linkend="GNOME-VFS-XFER-ERROR-MODE-QUERY--CAPS"><type>GNOME_VFS_XFER_ERROR_MODE_QUERY</type></link></entry>
768
<entry><link linkend="GnomeVFSXferErrorMode"><type>GnomeVFSXferErrorMode</type></link> is <link linkend="GNOME-VFS-XFER-ERROR-MODE-QUERY:CAPS"><type>GNOME_VFS_XFER_ERROR_MODE_QUERY</type></link></entry>
759
769
<entry>GnomeVFSXferErrorAction</entry>
762
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OVERWRITE--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE</type></link></entry>
772
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-OVERWRITE:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE</type></link></entry>
763
773
<entry>Conflict Ocurred, Overwrite?</entry>
765
<link linkend="GnomeVFSXferOverwriteMode"><type>GnomeVFSXferOverwriteMode</type></link> is <link linkend="GNOME-VFS-XFER-OVERWRITE-MODE-QUERY--CAPS"><type>GNOME_VFS_XFER_OVERWRITE_MODE_QUERY</type></link>,
766
<link linkend="GnomeVFSXferOptions"><type>GnomeVFSXferOptions</type></link> does not have <link linkend="GNOME-VFS-XFER-USE-UNIQUE-NAMES--CAPS"><type>GNOME_VFS_XFER_USE_UNIQUE_NAMES</type></link>.
775
<link linkend="GnomeVFSXferOverwriteMode"><type>GnomeVFSXferOverwriteMode</type></link> is <link linkend="GNOME-VFS-XFER-OVERWRITE-MODE-QUERY:CAPS"><type>GNOME_VFS_XFER_OVERWRITE_MODE_QUERY</type></link>,
776
<link linkend="GnomeVFSXferOptions"><type>GnomeVFSXferOptions</type></link> does not have <link linkend="GNOME-VFS-XFER-USE-UNIQUE-NAMES.:CAPS"><type>GNOME_VFS_XFER_USE_UNIQUE_NAMES.</type></link>
768
778
<entry>GnomeVFSXferOverwriteAction</entry>
771
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-DUPLICATE--CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE</type></link></entry>
781
<entry><link linkend="GNOME-VFS-XFER-PROGRESS-STATUS-DUPLICATE:CAPS"><type>GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE</type></link></entry>
772
782
<entry>Conflict Ocurred, New Target Name?</entry>
773
<entry><link linkend="GnomeVFSXferOptions"><type>GnomeVFSXferOptions</type></link> does have <link linkend="GNOME-VFS-XFER-USE-UNIQUE-NAMES--CAPS"><type>GNOME_VFS_XFER_USE_UNIQUE_NAMES</type></link>.</entry>
774
<entry><link linkend="0--CAPS"><literal>0</literal></link>: abort, otherwise retry with new <link linkend="duplicate-name"><literal>duplicate_name</literal></link> in <parameter>info</parameter> (free the old one!).</entry>
783
<entry><link linkend="GnomeVFSXferOptions"><type>GnomeVFSXferOptions</type></link> does have <link linkend="GNOME-VFS-XFER-USE-UNIQUE-NAMES.:CAPS"><type>GNOME_VFS_XFER_USE_UNIQUE_NAMES.</type></link></entry>
784
<entry><link linkend="0:CAPS"><literal>0</literal></link>: abort, otherwise retry with new <link linkend="duplicate-name"><literal>duplicate_name</literal></link> in <parameter>info</parameter> (free the old one!).</entry>
782
Each <link linkend="GnomeVFSXferProgressStatus"><type>GnomeVFSXferProgressStatus</type></link> provides one value signalling abortion that maps to <link linkend="0--CAPS"><literal>0</literal></link>.
783
Therefore, returning <link linkend="0--CAPS"><literal>0</literal></link> will always abort the Xfer. On abortion, if the <parameter>info</parameter>'s <link linkend="vfs-status"><literal>vfs_status</literal></link>
784
is <link linkend="GNOME-VFS-OK--CAPS"><type>GNOME_VFS_OK</type></link>, the Xfer operation result will be set to <link linkend="GNOME-VFS-ERROR-INTERRUPTED--CAPS"><type>GNOME_VFS_ERROR_INTERRUPTED</type></link>,
792
Each <link linkend="GnomeVFSXferProgressStatus"><type>GnomeVFSXferProgressStatus</type></link> provides one value signalling abortion that maps to <link linkend="0:CAPS"><literal>0</literal></link>.
793
Therefore, returning <link linkend="0:CAPS"><literal>0</literal></link> will always abort the Xfer. On abortion, if the <parameter>info</parameter>'s <link linkend="vfs-status"><literal>vfs_status</literal></link>
794
is <link linkend="GNOME-VFS-OK:CAPS"><type>GNOME_VFS_OK</type></link>, the Xfer operation result will be set to <link linkend="GNOME-VFS-ERROR-INTERRUPTED:CAPS"><type>GNOME_VFS_ERROR_INTERRUPTED</type></link>,
785
795
otherwise the operation result will be set to <link linkend="vfs-status"><literal>vfs_status</literal></link> to distinguish completely
786
796
user-driven aborts from those involving a problem during the Xfer.
835
846
<varlistentry><term><parameter>data</parameter> :</term>
836
847
<listitem><simpara> Data to be passed back in callbacks from the xfer engine.
837
848
</simpara></listitem></varlistentry>
838
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> If all goes well it returns <link linkend="GNOME-VFS-OK--CAPS"><literal>GNOME_VFS_OK</literal></link>. Check <link linkend="GnomeVFSResult"><type>GnomeVFSResult</type></link> for
849
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> If all goes well it returns <link linkend="GNOME-VFS-OK:CAPS"><literal>GNOME_VFS_OK</literal></link>. Check <link linkend="GnomeVFSResult"><type>GnomeVFSResult</type></link> for
840
851
</simpara></listitem></varlistentry>
841
852
</variablelist></refsect2>
842
853
<refsect2 id="gnome-vfs-xfer-uri" role="function">
843
854
<title>gnome_vfs_xfer_uri ()</title>
844
<indexterm zone="gnome-vfs-xfer-uri"><primary sortas="gnome_vfs_xfer_uri">gnome_vfs_xfer_uri</primary></indexterm><programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_xfer_uri (const <link linkend="GnomeVFSURI">GnomeVFSURI</link> *source_uri,
855
<indexterm zone="gnome-vfs-xfer-uri"><primary>gnome_vfs_xfer_uri</primary></indexterm>
856
<programlisting><link linkend="GnomeVFSResult">GnomeVFSResult</link> gnome_vfs_xfer_uri (const <link linkend="GnomeVFSURI">GnomeVFSURI</link> *source_uri,
845
857
const <link linkend="GnomeVFSURI">GnomeVFSURI</link> *target_uri,
846
858
<link linkend="GnomeVFSXferOptions">GnomeVFSXferOptions</link> xfer_options,
847
859
<link linkend="GnomeVFSXferErrorMode">GnomeVFSXferErrorMode</link> error_mode,