Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GDataDocumentsService: GData Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GData Reference Manual">
<link rel="up" href="ch16.html" title="Google Documents/Drive API">
<link rel="prev" href="ch16.html" title="Google Documents/Drive API">
<link rel="next" href="GDataDocumentsFeed.html" title="GDataDocumentsFeed">
<meta name="generator" content="GTK-Doc V1.26.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GDataDocumentsService.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GDataDocumentsService.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#GDataDocumentsService.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch16.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ch16.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GDataDocumentsFeed.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GDataDocumentsService"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GDataDocumentsService.top_of_page"></a>GDataDocumentsService</span></h2>
<p>GDataDocumentsService — GData Documents service object</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GDataDocumentsService.stability-level"></a><h2>Stability Level</h2>
<acronym title="The intention of a Stable interface is to enable arbitrary third parties to
develop applications to these interfaces, release them, and have confidence that
they will run on all minor releases of the product (after the one in which the
interface was introduced, and within the same major release). Even at a major
release, incompatible changes are expected to be rare, and to have strong
justifications.
"><span class="acronym">Stable</span></acronym>, unless otherwise indicated
</div>
<div class="refsect1">
<a name="GDataDocumentsService.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="returnvalue">GDataDocumentsService</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-new" title="gdata_documents_service_new ()">gdata_documents_service_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="returnvalue">GDataAuthorizationDomain</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-primary-authorization-domain" title="gdata_documents_service_get_primary_authorization_domain ()">gdata_documents_service_get_primary_authorization_domain</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="returnvalue">GDataAuthorizationDomain</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-spreadsheet-authorization-domain" title="gdata_documents_service_get_spreadsheet_authorization_domain ()">gdata_documents_service_get_spreadsheet_authorization_domain</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="returnvalue">GDataDocumentsMetadata</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-metadata" title="gdata_documents_service_get_metadata ()">gdata_documents_service_get_metadata</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-metadata-async" title="gdata_documents_service_get_metadata_async ()">gdata_documents_service_get_metadata_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="returnvalue">GDataDocumentsMetadata</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-metadata-finish" title="gdata_documents_service_get_metadata_finish ()">gdata_documents_service_get_metadata_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsFeed.html" title="GDataDocumentsFeed"><span class="returnvalue">GDataDocumentsFeed</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-query-documents" title="gdata_documents_service_query_documents ()">gdata_documents_service_query_documents</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-query-documents-async" title="gdata_documents_service_query_documents_async ()">gdata_documents_service_query_documents_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document" title="gdata_documents_service_upload_document ()">gdata_documents_service_upload_document</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document-resumable" title="gdata_documents_service_upload_document_resumable ()">gdata_documents_service_upload_document_resumable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document" title="gdata_documents_service_update_document ()">gdata_documents_service_update_document</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document-resumable" title="gdata_documents_service_update_document_resumable ()">gdata_documents_service_update_document_resumable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="returnvalue">GDataDocumentsDocument</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-finish-upload" title="gdata_documents_service_finish_upload ()">gdata_documents_service_finish_upload</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="returnvalue">GDataDocumentsDocument</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-copy-document" title="gdata_documents_service_copy_document ()">gdata_documents_service_copy_document</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-copy-document-async" title="gdata_documents_service_copy_document_async ()">gdata_documents_service_copy_document_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="returnvalue">GDataDocumentsDocument</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-copy-document-finish" title="gdata_documents_service_copy_document_finish ()">gdata_documents_service_copy_document_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-add-entry-to-folder" title="gdata_documents_service_add_entry_to_folder ()">gdata_documents_service_add_entry_to_folder</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-add-entry-to-folder-async" title="gdata_documents_service_add_entry_to_folder_async ()">gdata_documents_service_add_entry_to_folder_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-add-entry-to-folder-finish" title="gdata_documents_service_add_entry_to_folder_finish ()">gdata_documents_service_add_entry_to_folder_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-remove-entry-from-folder" title="gdata_documents_service_remove_entry_from_folder ()">gdata_documents_service_remove_entry_from_folder</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-remove-entry-from-folder-async" title="gdata_documents_service_remove_entry_from_folder_async ()">gdata_documents_service_remove_entry_from_folder_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-remove-entry-from-folder-finish" title="gdata_documents_service_remove_entry_from_folder_finish ()">gdata_documents_service_remove_entry_from_folder_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-upload-uri" title="gdata_documents_service_get_upload_uri ()">gdata_documents_service_get_upload_uri</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GDataDocumentsService.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GDataDocumentsService.html#GDataDocumentsService-struct" title="GDataDocumentsService">GDataDocumentsService</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GDataDocumentsService.html#GDataDocumentsServiceClass" title="GDataDocumentsServiceClass">GDataDocumentsServiceClass</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GDataDocumentsService.html#GDataDocumentsServiceError" title="enum GDataDocumentsServiceError">GDataDocumentsServiceError</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GDataDocumentsService.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="../gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
    <span class="lineart">╰──</span> <a class="link" href="GDataService.html" title="GDataService">GDataService</a>
        <span class="lineart">╰──</span> GDataDocumentsService
</pre>
</div>
<div class="refsect1">
<a name="GDataDocumentsService.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GDataDocumentsService implements
 <a class="link" href="GDataBatchable.html" title="GDataBatchable">GDataBatchable</a>.</p>
</div>
<div class="refsect1">
<a name="GDataDocumentsService.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gdata/services/documents/gdata-documents-service.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GDataDocumentsService.description"></a><h2>Description</h2>
<p><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> is a subclass of <a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a> for communicating with the GData API of Google Drive. It supports querying
for, inserting, editing and deleting documents, as well as a folder hierarchy.
The API is named ‘documents’ rather than ‘drive’ as it used to use the Google
Documents API, which has since been deprecated.</p>
<p>For more details of Google Drive's GData API, see the</p>
<a class="ulink" href="https://developers.google.com/drive/v2/web/about-sdk" target="_top">
online documentation</a>.
<p>Fore more details about the spreadsheet downloads handling, see the</p>
<a class="ulink" href="http://groups.google.com/group/Google-Docs-Data-APIs/browse_thread/thread/bfc50e94e303a29a?pli=1" target="_top">
online explanation about the problem</a>.
<div class="example">
<a name="id-1.5.5.2.9.7"></a><p class="title"><b>Example 27. Uploading a Document from Disk</b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">GDataDocumentsService</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">service</span><span class="symbol">;</span>
<span class="usertype">GDataDocumentsDocument</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">document</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">uploaded_document</span><span class="symbol">;</span>
<span class="usertype">GFile</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">document_file</span><span class="symbol">;</span>
<span class="usertype">GDataDocumentsFolder</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">destination_folder</span><span class="symbol">;</span>
<span class="usertype">GFileInfo</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">file_info</span><span class="symbol">;</span>
<span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">slug</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">content_type</span><span class="symbol">;</span>
<span class="usertype">GFileInputStream</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">file_stream</span><span class="symbol">;</span>
<span class="usertype">GDataUploadStream</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">upload_stream</span><span class="symbol">;</span>
<span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="comment">/* Create a service */</span>
<span class="normal">service </span><span class="symbol">=</span><span class="normal"> </span><span class="function">create_documents_service</span><span class="normal"> </span><span class="symbol">();</span>

<span class="comment">/* Get the document file to upload and the folder to upload it into */</span>
<span class="normal">document_file </span><span class="symbol">=</span><span class="normal"> </span><span class="function">g_file_new_for_path</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"document.odt"</span><span class="symbol">);</span>
<span class="normal">destination_folder </span><span class="symbol">=</span><span class="normal"> </span><span class="function">query_user_for_destination_folder</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>

<span class="comment">/* Get the file's display name and content type */</span>
<span class="normal">file_info </span><span class="symbol">=</span><span class="normal"> </span><span class="function">g_file_query_info</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document_file</span><span class="symbol">,</span><span class="normal"> G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME </span><span class="string">","</span><span class="normal"> G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE</span><span class="symbol">,</span>
<span class="normal">                               G_FILE_QUERY_INFO_NONE</span><span class="symbol">,</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error getting document file information: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">destination_folder</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document_file</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="normal">slug </span><span class="symbol">=</span><span class="normal"> </span><span class="function">g_file_info_get_display_name</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_info</span><span class="symbol">);</span>
<span class="normal">content_type </span><span class="symbol">=</span><span class="normal"> </span><span class="function">g_file_info_get_content_type</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_info</span><span class="symbol">);</span>

<span class="comment">/* Get an input stream for the file */</span>
<span class="normal">file_stream </span><span class="symbol">=</span><span class="normal"> </span><span class="function">g_file_read</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document_file</span><span class="symbol">,</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document_file</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error getting document file stream: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_info</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">destination_folder</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="comment">/* Create the document metadata to upload */</span>
<span class="normal">document </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataDocumentsText.html#gdata-documents-text-new">gdata_documents_text_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
<span class="function"><a href="GDataEntry.html#gdata-entry-set-title">gdata_entry_set_title</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GDATA_ENTRY</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document</span><span class="symbol">),</span><span class="normal"> </span><span class="string">"Document Title"</span><span class="symbol">);</span>

<span class="comment">/* Get an upload stream for the document */</span>
<span class="normal">upload_stream </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataDocumentsService.html#gdata-documents-service-upload-document">gdata_documents_service_upload_document</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">,</span><span class="normal"> document</span><span class="symbol">,</span><span class="normal"> slug</span><span class="symbol">,</span><span class="normal"> content_type</span><span class="symbol">,</span><span class="normal"> destination_folder</span><span class="symbol">,</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_info</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">destination_folder</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error getting upload stream: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_stream</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="comment">/* Upload the document. This is a blocking operation, and should normally be done asynchronously. */</span>
<span class="function">g_output_stream_splice</span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_OUTPUT_STREAM</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">upload_stream</span><span class="symbol">),</span><span class="normal"> </span><span class="function">G_INPUT_STREAM</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_stream</span><span class="symbol">),</span>
<span class="normal">                        G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE </span><span class="symbol">|</span><span class="normal"> G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET</span><span class="symbol">,</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">file_stream</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error splicing streams: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">upload_stream</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="comment">/* Finish off the upload by parsing the returned updated document metadata entry */</span>
<span class="normal">uploaded_document </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataDocumentsService.html#gdata-documents-service-finish-upload">gdata_documents_service_finish_upload</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">,</span><span class="normal"> upload_stream</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">upload_stream</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error uploading document: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="comment">/* Do something with the uploaded document */</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">uploaded_document</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<br class="example-break"><p>The Drive service can be manipulated using batch operations, too. See the</p>
<a class="ulink" href="https://developers.google.com/google-apps/documents-list/#batching_acl_requests" target="_top">online documentation on batch
operations</a> for more information.
<div class="example">
<a name="id-1.5.5.2.9.10"></a><p class="title"><b>Example 28. Performing a Batch Operation on Documents</b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">GDataDocumentsService</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">service</span><span class="symbol">;</span>
<span class="usertype">GDataBatchOperation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">operation</span><span class="symbol">;</span>
<span class="usertype">GDataFeed</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">feed</span><span class="symbol">;</span>
<span class="usertype">GDataLink</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">batch_link</span><span class="symbol">;</span>
<span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">i</span><span class="symbol">;</span>
<span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="comment">/* Create a service */</span>
<span class="normal">service </span><span class="symbol">=</span><span class="normal"> </span><span class="function">create_documents_service</span><span class="normal"> </span><span class="symbol">();</span>

<span class="comment">/* Create the batch operation; this requires that we have done a query first so that we can get the batch link */</span>
<span class="normal">feed </span><span class="symbol">=</span><span class="normal"> </span><span class="function">do_some_query</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>
<span class="normal">batch_link </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataFeed.html#gdata-feed-look-up-link">gdata_feed_look_up_link</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">feed</span><span class="symbol">,</span><span class="normal"> <a href="GDataLink.html#GDATA-LINK-BATCH:CAPS">GDATA_LINK_BATCH</a></span><span class="symbol">);</span>
<span class="normal">operation </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataBatchable.html#gdata-batchable-create-operation">gdata_batchable_create_operation</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GDATA_BATCHABLE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">),</span><span class="normal"> </span><span class="function"><a href="GDataLink.html#gdata-link-get-uri">gdata_link_get_uri</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">batch_link</span><span class="symbol">));</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">feed</span><span class="symbol">);</span>

<span class="function"><a href="GDataBatchOperation.html#gdata-batch-operation-add-query">gdata_batch_operation_add_query</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">operation</span><span class="symbol">,</span><span class="normal"> presentation_entry_id_to_query</span><span class="symbol">,</span><span class="normal"> GDATA_TYPE_DOCUMENTS_PRESENTATION</span><span class="symbol">,</span>
<span class="normal">                                 </span><span class="symbol">(</span><span class="normal"><a href="GDataBatchOperation.html#GDataBatchOperationCallback">GDataBatchOperationCallback</a></span><span class="symbol">)</span><span class="normal"> batch_query_cb</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
<span class="function"><a href="GDataBatchOperation.html#gdata-batch-operation-add-insertion">gdata_batch_operation_add_insertion</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">operation</span><span class="symbol">,</span><span class="normal"> new_entry</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDataBatchOperation.html#GDataBatchOperationCallback">GDataBatchOperationCallback</a></span><span class="symbol">)</span><span class="normal"> batch_insertion_cb</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
<span class="function"><a href="GDataBatchOperation.html#gdata-batch-operation-add-update">gdata_batch_operation_add_update</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">operation</span><span class="symbol">,</span><span class="normal"> old_entry</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDataBatchOperation.html#GDataBatchOperationCallback">GDataBatchOperationCallback</a></span><span class="symbol">)</span><span class="normal"> batch_update_cb</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
<span class="function"><a href="GDataBatchOperation.html#gdata-batch-operation-add-deletion">gdata_batch_operation_add_deletion</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">operation</span><span class="symbol">,</span><span class="normal"> entry_to_delete</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDataBatchOperation.html#GDataBatchOperationCallback">GDataBatchOperationCallback</a></span><span class="symbol">)</span><span class="normal"> batch_deletion_cb</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>

<span class="comment">/* Run the batch operation and handle the results in the various callbacks */</span>
<span class="function">gdata_test_batch_operation_run</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">operation</span><span class="symbol">,</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">);</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">operation</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error running batch operation: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">batch_query_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">guint</span><span class="normal"> operation_id</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataBatchOperationType</span><span class="normal"> operation_type</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataEntry</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">entry</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">    </span><span class="comment">/* operation_type == GDATA_BATCH_OPERATION_QUERY */</span>
<span class="normal">    </span><span class="comment">/* Reference and do something with the returned entry. */</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">batch_insertion_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">guint</span><span class="normal"> operation_id</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataBatchOperationType</span><span class="normal"> operation_type</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataEntry</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">entry</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">    </span><span class="comment">/* operation_type == GDATA_BATCH_OPERATION_INSERTION */</span>
<span class="normal">    </span><span class="comment">/* Reference and do something with the returned entry. */</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">batch_update_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">guint</span><span class="normal"> operation_id</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataBatchOperationType</span><span class="normal"> operation_type</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataEntry</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">entry</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">    </span><span class="comment">/* operation_type == GDATA_BATCH_OPERATION_UPDATE */</span>
<span class="normal">    </span><span class="comment">/* Reference and do something with the returned entry. */</span>
<span class="cbracket">}</span>

<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
<span class="function">batch_deletion_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">guint</span><span class="normal"> operation_id</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataBatchOperationType</span><span class="normal"> operation_type</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GDataEntry</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">entry</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">,</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
<span class="cbracket">{</span>
<span class="normal">    </span><span class="comment">/* operation_type == GDATA_BATCH_OPERATION_DELETION, entry == NULL */</span>
<span class="cbracket">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<br class="example-break"><p>Starred documents are denoted by being in the <a class="link" href="GDataCategory.html#GDATA-CATEGORY-SCHEMA-LABELS-STARRED:CAPS" title="GDATA_CATEGORY_SCHEMA_LABELS_STARRED"><code class="literal">GDATA_CATEGORY_SCHEMA_LABELS_STARRED</code></a> category of the <a class="link" href="GDataCategory.html#GDATA-CATEGORY-SCHEMA-LABELS:CAPS" title="GDATA_CATEGORY_SCHEMA_LABELS"><code class="literal">GDATA_CATEGORY_SCHEMA_LABELS</code></a> schema. Documents
can be starred or unstarred simply by adding or removing this category from them and updating the document:</p>
<div class="example">
<a name="id-1.5.5.2.9.12"></a><p class="title"><b>Example 29. Starring a Document</b></p>
<div class="example-contents">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="usertype">GDataDocumentsService</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">service</span><span class="symbol">;</span>
<span class="usertype">GDataDocumentsEntry</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">document</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">updated_document</span><span class="symbol">;</span>
<span class="usertype">GDataCategory</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">starred_category</span><span class="symbol">;</span>
<span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </span><span class="symbol">=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>

<span class="comment">/* Create a service and retrieve the document to be starred */</span>
<span class="normal">service </span><span class="symbol">=</span><span class="normal"> </span><span class="function">create_documents_service</span><span class="normal"> </span><span class="symbol">();</span>
<span class="normal">document </span><span class="symbol">=</span><span class="normal"> </span><span class="function">get_document_to_be_starred</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>

<span class="comment">/* Add the “starred” category to the document */</span>
<span class="normal">starred_category </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GDataCategory.html#gdata-category-new">gdata_category_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="GDataCategory.html#GDATA-CATEGORY-SCHEMA-LABELS-STARRED:CAPS">GDATA_CATEGORY_SCHEMA_LABELS_STARRED</a></span><span class="symbol">,</span><span class="normal"> <a href="GDataCategory.html#GDATA-CATEGORY-SCHEMA-LABELS:CAPS">GDATA_CATEGORY_SCHEMA_LABELS</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"starred"</span><span class="symbol">);</span>
<span class="function"><a href="GDataEntry.html#gdata-entry-add-category">gdata_entry_add_category</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GDATA_ENTRY</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document</span><span class="symbol">),</span><span class="normal"> starred_category</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">starred_category</span><span class="symbol">);</span>

<span class="comment">/* Propagate the updated document to the server */</span>
<span class="normal">updated_document </span><span class="symbol">=</span><span class="normal"> </span><span class="function">GDATA_DOCUMENTS_ENTRY</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="GDataService.html#gdata-service-update-entry">gdata_service_update_entry</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GDATA_SERVICE</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">),</span>
<span class="normal">                                                                      </span><span class="function"><a href="GDataDocumentsService.html#gdata-documents-service-get-primary-authorization-domain">gdata_documents_service_get_primary_authorization_domain</a></span><span class="normal"> </span><span class="symbol">(),</span>
<span class="normal">                                                                      </span><span class="function">GDATA_ENTRY</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document</span><span class="symbol">),</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">));</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">document</span><span class="symbol">);</span>
<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">service</span><span class="symbol">);</span>

<span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error </span><span class="symbol">!=</span><span class="normal"> <a href="../glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">)</span><span class="normal"> </span><span class="cbracket">{</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Message-Logging.html#g-error">g_error</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error starring document: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
<span class="normal">    </span><span class="function"><a href="../glib/glib-Error-Reporting.html#g-error-free">g_error_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">);</span>
<span class="normal">    </span><span class="keyword">return</span><span class="symbol">;</span>
<span class="cbracket">}</span>

<span class="comment">/* Do something with the newly-starred document, like update it in the UI */</span>

<span class="function"><a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">updated_document</span><span class="symbol">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<br class="example-break">
</div>
<div class="refsect1">
<a name="GDataDocumentsService.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gdata-documents-service-new"></a><h3>gdata_documents_service_new ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="returnvalue">GDataDocumentsService</span></a> *
gdata_documents_service_new (<em class="parameter"><code><a class="link" href="GDataAuthorizer.html" title="GDataAuthorizer"><span class="type">GDataAuthorizer</span></a> *authorizer</code></em>);</pre>
<p>Creates a new <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> using the given <a class="link" href="GDataAuthorizer.html" title="GDataAuthorizer"><span class="type">GDataAuthorizer</span></a>. If <em class="parameter"><code>authorizer</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, all requests are made as an unauthenticated user.</p>
<div class="refsect3">
<a name="gdata-documents-service-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>authorizer</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataAuthorizer.html" title="GDataAuthorizer"><span class="type">GDataAuthorizer</span></a> to authorize the service's requests, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-new.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-get-primary-authorization-domain"></a><h3>gdata_documents_service_get_primary_authorization_domain ()</h3>
<pre class="programlisting"><a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="returnvalue">GDataAuthorizationDomain</span></a> *
gdata_documents_service_get_primary_authorization_domain
                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>The primary <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a> for interacting with Google Documents. This will not normally need to be used, as it's used internally
by the <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> methods. However, if using the plain <a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a> methods to implement custom queries or requests which libgdata
does not support natively, then this domain may be needed to authorize the requests.</p>
<p>The domain never changes, and is interned so that pointer comparison can be used to differentiate it from other authorization domains.</p>
<div class="refsect3">
<a name="gdata-documents-service-get-primary-authorization-domain.returns"></a><h4>Returns</h4>
<p>the service's authorization domain. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-get-spreadsheet-authorization-domain"></a><h3>gdata_documents_service_get_spreadsheet_authorization_domain ()</h3>
<pre class="programlisting"><a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="returnvalue">GDataAuthorizationDomain</span></a> *
gdata_documents_service_get_spreadsheet_authorization_domain
                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>The <a class="link" href="GDataAuthorizationDomain.html" title="GDataAuthorizationDomain"><span class="type">GDataAuthorizationDomain</span></a> for interacting with spreadsheet data. This will not normally need to be used, as it's automatically used internally
by the <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> methods. However, if using the plain <a class="link" href="GDataService.html" title="GDataService"><span class="type">GDataService</span></a> methods to implement custom queries or requests which libgdata
does not support natively, then this domain may be needed to authorize the requests which pertain to the Google Spreadsheets Data API, such as
requests to download or upload spreadsheet documents.</p>
<p>The domain never changes, and is interned so that pointer comparison can be used to differentiate it from other authorization domains.</p>
<div class="refsect3">
<a name="gdata-documents-service-get-spreadsheet-authorization-domain.returns"></a><h4>Returns</h4>
<p>the service's authorization domain. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix11.html#api-index-0.9.0">0.9.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-get-metadata"></a><h3>gdata_documents_service_get_metadata ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="returnvalue">GDataDocumentsMetadata</span></a> *
gdata_documents_service_get_metadata (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                      <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                      <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Gets a <a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="type">GDataDocumentsMetadata</span></a> object containing metadata about the documents
service itself, like how large the user quota is.</p>
<div class="refsect3">
<a name="gdata-documents-service-get-metadata.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-get-metadata.returns"></a><h4>Returns</h4>
<p>the service's metadata object; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix25.html#api-index-0.17.9">0.17.9</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-get-metadata-async"></a><h3>gdata_documents_service_get_metadata_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_documents_service_get_metadata_async
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Gets a <a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="type">GDataDocumentsMetadata</span></a> object containing metadata about the documents
service itself, like how large the user quota is.</p>
<p>For more details, see <a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-metadata" title="gdata_documents_service_get_metadata ()"><code class="function">gdata_documents_service_get_metadata()</code></a>, which is the synchronous version of this function.</p>
<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
 will be called. You can then call <a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-metadata-finish" title="gdata_documents_service_get_metadata_finish ()"><code class="function">gdata_documents_service_get_metadata_finish()</code></a> to get the results
of the operation.</p>
<div class="refsect3">
<a name="gdata-documents-service-get-metadata-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when the operation is finished, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix25.html#api-index-0.17.9">0.17.9</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-get-metadata-finish"></a><h3>gdata_documents_service_get_metadata_finish ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="returnvalue">GDataDocumentsMetadata</span></a> *
gdata_documents_service_get_metadata_finish
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncResult</span> *async_result</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finish an asynchronous operation to get a <a class="link" href="GDataDocumentsMetadata.html" title="GDataDocumentsMetadata"><span class="type">GDataDocumentsMetadata</span></a> started with <a class="link" href="GDataDocumentsService.html#gdata-documents-service-get-metadata-async" title="gdata_documents_service_get_metadata_async ()"><code class="function">gdata_documents_service_get_metadata_async()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-get-metadata-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async_result</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-get-metadata-finish.returns"></a><h4>Returns</h4>
<p>the service's metadata object; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix25.html#api-index-0.17.9">0.17.9</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-query-documents"></a><h3>gdata_documents_service_query_documents ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsFeed.html" title="GDataDocumentsFeed"><span class="returnvalue">GDataDocumentsFeed</span></a> *
gdata_documents_service_query_documents
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsQuery.html" title="GDataDocumentsQuery"><span class="type">GDataDocumentsQuery</span></a> *query</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataService.html#GDataQueryProgressCallback" title="GDataQueryProgressCallback ()"><span class="type">GDataQueryProgressCallback</span></a> progress_callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> progress_user_data</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Queries the service to return a list of documents matching the given <em class="parameter"><code>query</code></em>
. Note that <em class="parameter"><code>query</code></em>
 has to be a <a class="link" href="GDataDocumentsQuery.html" title="GDataDocumentsQuery"><span class="type">GDataDocumentsQuery</span></a>, rather than just
a <a class="link" href="GDataQuery.html" title="GDataQuery"><span class="type">GDataQuery</span></a>, as it uses the folder ID specified in <a class="link" href="GDataDocumentsQuery.html#GDataDocumentsQuery--folder-id" title="The “folder-id” property"><span class="type">“folder-id”</span></a>.</p>
<p>For more details, see <a class="link" href="GDataService.html#gdata-service-query" title="gdata_service_query ()"><code class="function">gdata_service_query()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-query-documents.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>query</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsQuery.html" title="GDataDocumentsQuery"><span class="type">GDataDocumentsQuery</span></a> with the query parameters, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>progress_callback</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataService.html#GDataQueryProgressCallback" title="GDataQueryProgressCallback ()"><span class="type">GDataQueryProgressCallback</span></a> to call when an entry is loaded, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>][<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> progress_user_data]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>progress_user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>progress_callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-query-documents.returns"></a><h4>Returns</h4>
<p>a <a class="link" href="GDataDocumentsFeed.html" title="GDataDocumentsFeed"><span class="type">GDataDocumentsFeed</span></a> of query results; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix06.html#api-index-0.4.0">0.4.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-query-documents-async"></a><h3>gdata_documents_service_query_documents_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_documents_service_query_documents_async
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsQuery.html" title="GDataDocumentsQuery"><span class="type">GDataDocumentsQuery</span></a> *query</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataService.html#GDataQueryProgressCallback" title="GDataQueryProgressCallback ()"><span class="type">GDataQueryProgressCallback</span></a> progress_callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> progress_user_data</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_progress_user_data</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Queries the service to return a list of documents matching the given <em class="parameter"><code>query</code></em>
. <em class="parameter"><code>self</code></em>
 and
<em class="parameter"><code>query</code></em>
 are both reffed when this function is called, so can safely be unreffed after this function returns.</p>
<p>For more details, see <a class="link" href="GDataDocumentsService.html#gdata-documents-service-query-documents" title="gdata_documents_service_query_documents ()"><code class="function">gdata_documents_service_query_documents()</code></a>, which is the synchronous version of this function,
and <a class="link" href="GDataService.html#gdata-service-query-async" title="gdata_service_query_async ()"><code class="function">gdata_service_query_async()</code></a>, which is the base asynchronous query function.</p>
<div class="refsect3">
<a name="gdata-documents-service-query-documents-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>query</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsQuery.html" title="GDataDocumentsQuery"><span class="type">GDataDocumentsQuery</span></a> with the query parameters, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>progress_callback</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataService.html#GDataQueryProgressCallback" title="GDataQueryProgressCallback ()"><span class="type">GDataQueryProgressCallback</span></a> to call when an entry is loaded, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> progress_user_data]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>progress_user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>progress_callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>destroy_progress_user_data</p></td>
<td class="parameter_description"><p>the function to call when <em class="parameter"><code>progress_callback</code></em>
will not be called any more, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. This function will be
called with <em class="parameter"><code>progress_user_data</code></em>
as a parameter and can be used to free any memory allocated for it. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when authentication is finished</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix12.html#api-index-0.9.1">0.9.1</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-upload-document"></a><h3>gdata_documents_service_upload_document ()</h3>
<pre class="programlisting"><a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
gdata_documents_service_upload_document
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> *document</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *slug</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *content_type</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> *folder</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Uploads a document to Google Documents, using the properties from <em class="parameter"><code>document</code></em>
 and the document data written to the resulting <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a>. If
the document data does not need to be provided at the moment, just the metadata, use <a class="link" href="GDataService.html#gdata-service-insert-entry" title="gdata_service_insert_entry ()"><code class="function">gdata_service_insert_entry()</code></a> instead (e.g. in the case of
creating a new, empty file to be edited at a later date).</p>
<p>This performs a non-resumable upload, unlike <a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document" title="gdata_documents_service_upload_document ()"><code class="function">gdata_documents_service_upload_document()</code></a>. This means that errors during transmission will cause the
upload to fail, and the entire document will have to be re-uploaded. It is recommended that <a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document-resumable" title="gdata_documents_service_upload_document_resumable ()"><code class="function">gdata_documents_service_upload_document_resumable()</code></a>
be used instead.</p>
<p>If <em class="parameter"><code>document</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, only the document data will be uploaded. The new document entry will be named using <em class="parameter"><code>slug</code></em>
, and will have default metadata.</p>
<p>The stream returned by this function should be written to using the standard <span class="type">GOutputStream</span> methods, asychronously or synchronously. Once the stream
is closed (using <code class="function">g_output_stream_close()</code>), <a class="link" href="GDataDocumentsService.html#gdata-documents-service-finish-upload" title="gdata_documents_service_finish_upload ()"><code class="function">gdata_documents_service_finish_upload()</code></a> should be called on it to parse and return the updated
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> for the document. This must be done, as <em class="parameter"><code>document</code></em>
 isn't updated in-place.</p>
<p>In order to cancel the upload, a <span class="type">GCancellable</span> passed in to <em class="parameter"><code>cancellable</code></em>
 must be cancelled using <code class="function">g_cancellable_cancel()</code>. Cancelling the individual
<span class="type">GOutputStream</span> operations on the <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> will not cancel the entire upload; merely the write or close operation in question. See the
<a class="link" href="GDataUploadStream.html#GDataUploadStream--cancellable" title="The “cancellable” property"><span class="type">“cancellable”</span></a> for more details.</p>
<p>Any upload errors will be thrown by the stream methods, and may come from the <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> domain.</p>
<div class="refsect3">
<a name="gdata-documents-service-upload-document.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an authenticated <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>document</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> to insert, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>slug</p></td>
<td class="parameter_description"><p>the filename to give to the uploaded document</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>content_type</p></td>
<td class="parameter_description"><p>the content type of the uploaded data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>folder</p></td>
<td class="parameter_description"><p>the folder to which the document should be uploaded, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span> for the entire upload stream, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-upload-document.returns"></a><h4>Returns</h4>
<p>a <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> to write the document data to, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-upload-document-resumable"></a><h3>gdata_documents_service_upload_document_resumable ()</h3>
<pre class="programlisting"><a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
gdata_documents_service_upload_document_resumable
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> *document</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *slug</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *content_type</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#goffset"><span class="type">goffset</span></a> content_length</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsUploadQuery.html" title="GDataDocumentsUploadQuery"><span class="type">GDataDocumentsUploadQuery</span></a> *query</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Uploads a document to Google Documents, using the properties from <em class="parameter"><code>document</code></em>
 and the document data written to the resulting <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a>. If
the document data does not need to be provided at the moment, just the metadata, use <a class="link" href="GDataService.html#gdata-service-insert-entry" title="gdata_service_insert_entry ()"><code class="function">gdata_service_insert_entry()</code></a> instead (e.g. in the case of
creating a new, empty file to be edited at a later date).</p>
<p>Unlike <a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document" title="gdata_documents_service_upload_document ()"><code class="function">gdata_documents_service_upload_document()</code></a>, this method performs a</p>
<a class="ulink" href="http://code.google.com/apis/gdata/docs/resumable_upload.html" target="_top">resumable upload</a> which allows for correction of
<p>transmission errors without re-uploading the entire file. Use of this method is preferred over <a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document" title="gdata_documents_service_upload_document ()"><code class="function">gdata_documents_service_upload_document()</code></a>.</p>
<p>If <em class="parameter"><code>document</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, only the document data will be uploaded. The new document entry will be named using <em class="parameter"><code>slug</code></em>
, and will have default metadata.</p>
<p>If non-<a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the <em class="parameter"><code>query</code></em>
 specifies parameters for the upload, such as a <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> to upload the document into; and whether to treat
the document as an opaque file, or convert it to a standard format. If <em class="parameter"><code>query</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the document will be uploaded into the root folder, and
automatically converted to a standard format. No OCR or automatic language translation will be performed by default.</p>
<p>If <em class="parameter"><code>query</code></em>
 is non-<a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and <a class="link" href="GDataDocumentsUploadQuery.html#GDataDocumentsUploadQuery--convert" title="The “convert” property"><span class="type">“convert”</span></a> is <a href="../glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <em class="parameter"><code>document</code></em>
 must be an instance of <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>. Otherwise,
<em class="parameter"><code>document</code></em>
 must be a subclass of it, such as <a class="link" href="GDataDocumentsPresentation.html" title="GDataDocumentsPresentation"><span class="type">GDataDocumentsPresentation</span></a>.</p>
<p>The stream returned by this function should be written to using the standard <span class="type">GOutputStream</span> methods, asychronously or synchronously. Once the stream
is closed (using <code class="function">g_output_stream_close()</code>), <a class="link" href="GDataDocumentsService.html#gdata-documents-service-finish-upload" title="gdata_documents_service_finish_upload ()"><code class="function">gdata_documents_service_finish_upload()</code></a> should be called on it to parse and return the updated
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> for the document. This must be done, as <em class="parameter"><code>document</code></em>
 isn't updated in-place.</p>
<p>In order to cancel the upload, a <span class="type">GCancellable</span> passed in to <em class="parameter"><code>cancellable</code></em>
 must be cancelled using <code class="function">g_cancellable_cancel()</code>. Cancelling the individual
<span class="type">GOutputStream</span> operations on the <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> will not cancel the entire upload; merely the write or close operation in question. See the
<a class="link" href="GDataUploadStream.html#GDataUploadStream--cancellable" title="The “cancellable” property"><span class="type">“cancellable”</span></a> for more details.</p>
<p>Any upload errors will be thrown by the stream methods, and may come from the <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> domain.</p>
<div class="refsect3">
<a name="gdata-documents-service-upload-document-resumable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an authenticated <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>document</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> to insert, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>slug</p></td>
<td class="parameter_description"><p>the filename to give to the uploaded document</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>content_type</p></td>
<td class="parameter_description"><p>the content type of the uploaded data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>content_length</p></td>
<td class="parameter_description"><p>the size (in bytes) of the file being uploaded</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>query</p></td>
<td class="parameter_description"><p>a query specifying parameters for the upload, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span> for the entire upload stream, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-upload-document-resumable.returns"></a><h4>Returns</h4>
<p>a <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> to write the document data to, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix15.html#api-index-0.13.0">0.13.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-update-document"></a><h3>gdata_documents_service_update_document ()</h3>
<pre class="programlisting"><a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
gdata_documents_service_update_document
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> *document</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *slug</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *content_type</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Update the document using the properties from <em class="parameter"><code>document</code></em>
 and the document data written to the resulting <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a>. If the document data does
not need to be changed, just the metadata, use <a class="link" href="GDataService.html#gdata-service-update-entry" title="gdata_service_update_entry ()"><code class="function">gdata_service_update_entry()</code></a> instead.</p>
<p>This performs a non-resumable upload, unlike <a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document" title="gdata_documents_service_update_document ()"><code class="function">gdata_documents_service_update_document()</code></a>. This means that errors during transmission will cause the
upload to fail, and the entire document will have to be re-uploaded. It is recommended that <a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document-resumable" title="gdata_documents_service_update_document_resumable ()"><code class="function">gdata_documents_service_update_document_resumable()</code></a>
be used instead.</p>
<p>The stream returned by this function should be written to using the standard <span class="type">GOutputStream</span> methods, asychronously or synchronously. Once the stream
is closed (using <code class="function">g_output_stream_close()</code>), <a class="link" href="GDataDocumentsService.html#gdata-documents-service-finish-upload" title="gdata_documents_service_finish_upload ()"><code class="function">gdata_documents_service_finish_upload()</code></a> should be called on it to parse and return the updated
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> for the document. This must be done, as <em class="parameter"><code>document</code></em>
 isn't updated in-place.</p>
<p>In order to cancel the update, a <span class="type">GCancellable</span> passed in to <em class="parameter"><code>cancellable</code></em>
 must be cancelled using <code class="function">g_cancellable_cancel()</code>. Cancelling the individual
<span class="type">GOutputStream</span> operations on the <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> will not cancel the entire update; merely the write or close operation in question. See the
<a class="link" href="GDataUploadStream.html#GDataUploadStream--cancellable" title="The “cancellable” property"><span class="type">“cancellable”</span></a> for more details.</p>
<p>Any upload errors will be thrown by the stream methods, and may come from the <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> domain.</p>
<p>For more information, see <a class="link" href="GDataService.html#gdata-service-update-entry" title="gdata_service_update_entry ()"><code class="function">gdata_service_update_entry()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-update-document.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>document</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> to update</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>slug</p></td>
<td class="parameter_description"><p>the filename to give to the uploaded document</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>content_type</p></td>
<td class="parameter_description"><p>the content type of the uploaded data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span> for the entire upload stream, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-update-document.returns"></a><h4>Returns</h4>
<p>a <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> to write the document data to; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-update-document-resumable"></a><h3>gdata_documents_service_update_document_resumable ()</h3>
<pre class="programlisting"><a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="returnvalue">GDataUploadStream</span></a> *
gdata_documents_service_update_document_resumable
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> *document</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *slug</code></em>,
                                <em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *content_type</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#goffset"><span class="type">goffset</span></a> content_length</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Update the document using the properties from <em class="parameter"><code>document</code></em>
 and the document data written to the resulting <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a>. If the document data does
not need to be changed, just the metadata, use <a class="link" href="GDataService.html#gdata-service-update-entry" title="gdata_service_update_entry ()"><code class="function">gdata_service_update_entry()</code></a> instead.</p>
<p>Unlike <a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document" title="gdata_documents_service_update_document ()"><code class="function">gdata_documents_service_update_document()</code></a>, this method performs a</p>
<a class="ulink" href="http://code.google.com/apis/gdata/docs/resumable_upload.html" target="_top">resumable upload</a> which allows for correction of
<p>transmission errors without re-uploading the entire file. Use of this method is preferred over <a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document" title="gdata_documents_service_update_document ()"><code class="function">gdata_documents_service_update_document()</code></a>.</p>
<p>The stream returned by this function should be written to using the standard <span class="type">GOutputStream</span> methods, asychronously or synchronously. Once the stream
is closed (using <code class="function">g_output_stream_close()</code>), <a class="link" href="GDataDocumentsService.html#gdata-documents-service-finish-upload" title="gdata_documents_service_finish_upload ()"><code class="function">gdata_documents_service_finish_upload()</code></a> should be called on it to parse and return the updated
<a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> for the document. This must be done, as <em class="parameter"><code>document</code></em>
 isn't updated in-place.</p>
<p>In order to cancel the update, a <span class="type">GCancellable</span> passed in to <em class="parameter"><code>cancellable</code></em>
 must be cancelled using <code class="function">g_cancellable_cancel()</code>. Cancelling the individual
<span class="type">GOutputStream</span> operations on the <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> will not cancel the entire update; merely the write or close operation in question. See the
<a class="link" href="GDataUploadStream.html#GDataUploadStream--cancellable" title="The “cancellable” property"><span class="type">“cancellable”</span></a> for more details.</p>
<p>Any upload errors will be thrown by the stream methods, and may come from the <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> domain.</p>
<p>For more information, see <a class="link" href="GDataService.html#gdata-service-update-entry" title="gdata_service_update_entry ()"><code class="function">gdata_service_update_entry()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-update-document-resumable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>document</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> to update</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>slug</p></td>
<td class="parameter_description"><p>the filename to give to the uploaded document</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>content_type</p></td>
<td class="parameter_description"><p>the content type of the uploaded data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>content_length</p></td>
<td class="parameter_description"><p>the size (in bytes) of the file being uploaded</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span> for the entire upload stream, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-update-document-resumable.returns"></a><h4>Returns</h4>
<p>a <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> to write the document data to; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix15.html#api-index-0.13.0">0.13.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-finish-upload"></a><h3>gdata_documents_service_finish_upload ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="returnvalue">GDataDocumentsDocument</span></a> *
gdata_documents_service_finish_upload (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                       <em class="parameter"><code><a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> *upload_stream</code></em>,
                                       <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finish off a document upload or update operation started by <a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document" title="gdata_documents_service_upload_document ()"><code class="function">gdata_documents_service_upload_document()</code></a> or <a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document" title="gdata_documents_service_update_document ()"><code class="function">gdata_documents_service_update_document()</code></a>,
parsing the result and returning the new or updated <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>.</p>
<p>If an error occurred during the upload or update operation, it will have been returned during the operation (e.g. by <code class="function">g_output_stream_splice()</code> or one
of the other stream methods). In such a case, <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned but <em class="parameter"><code>error</code></em>
 will remain unset. <em class="parameter"><code>error</code></em>
 is only set in the case that the server
indicates that the operation was successful, but an error is encountered in parsing the result sent by the server.</p>
<p>In the case that no <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> was passed (to <a class="link" href="GDataDocumentsService.html#gdata-documents-service-upload-document" title="gdata_documents_service_upload_document ()"><code class="function">gdata_documents_service_upload_document()</code></a> or <a class="link" href="GDataDocumentsService.html#gdata-documents-service-update-document" title="gdata_documents_service_update_document ()"><code class="function">gdata_documents_service_update_document()</code></a>)
when starting the operation, <a class="link" href="GDataDocumentsService.html#GDATA-DOCUMENTS-SERVICE-ERROR-INVALID-CONTENT-TYPE:CAPS"><code class="literal">GDATA_DOCUMENTS_SERVICE_ERROR_INVALID_CONTENT_TYPE</code></a> will be thrown in <em class="parameter"><code>error</code></em>
 if the content type of the uploaded data
could not be mapped to a document type with which to interpret the response from the server.</p>
<div class="refsect3">
<a name="gdata-documents-service-finish-upload.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>upload_stream</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataUploadStream.html" title="GDataUploadStream"><span class="type">GDataUploadStream</span></a> from the operation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-finish-upload.returns"></a><h4>Returns</h4>
<p>the new or updated <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-copy-document"></a><h3>gdata_documents_service_copy_document ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="returnvalue">GDataDocumentsDocument</span></a> *
gdata_documents_service_copy_document (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                       <em class="parameter"><code><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> *document</code></em>,
                                       <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                       <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Copy the given <em class="parameter"><code>document</code></em>
, producing a duplicate document in the same folder and returning its <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>.</p>
<p>Errors from <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> can be returned for exceptional conditions, as determined by the server.</p>
<div class="refsect3">
<a name="gdata-documents-service-copy-document.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an authenticated <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>document</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> to copy</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-copy-document.returns"></a><h4>Returns</h4>
<p>the duplicate <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix16.html#api-index-0.13.1">0.13.1</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-copy-document-async"></a><h3>gdata_documents_service_copy_document_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_documents_service_copy_document_async
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> *document</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Copy the given <em class="parameter"><code>document</code></em>
, producing a duplicate document in the same folder and returning its <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>. <em class="parameter"><code>self</code></em>
 and <em class="parameter"><code>document</code></em>
 are
both reffed when this function is called, so can safely be unreffed after this function returns.</p>
<p>For more details, see <a class="link" href="GDataDocumentsService.html#gdata-documents-service-copy-document" title="gdata_documents_service_copy_document ()"><code class="function">gdata_documents_service_copy_document()</code></a>, which is the synchronous version of this function.</p>
<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
 will be called. You can then call <a class="link" href="GDataDocumentsService.html#gdata-documents-service-copy-document-finish" title="gdata_documents_service_copy_document_finish ()"><code class="function">gdata_documents_service_copy_document_finish()</code></a> to get the results
of the operation.</p>
<div class="refsect3">
<a name="gdata-documents-service-copy-document-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>document</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> to copy</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when the operation is finished, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix16.html#api-index-0.13.1">0.13.1</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-copy-document-finish"></a><h3>gdata_documents_service_copy_document_finish ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="returnvalue">GDataDocumentsDocument</span></a> *
gdata_documents_service_copy_document_finish
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncResult</span> *async_result</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finish an asynchronous operation to copy a <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> started with <a class="link" href="GDataDocumentsService.html#gdata-documents-service-copy-document-async" title="gdata_documents_service_copy_document_async ()"><code class="function">gdata_documents_service_copy_document_async()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-copy-document-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async_result</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-copy-document-finish.returns"></a><h4>Returns</h4>
<p>the duplicate <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix16.html#api-index-0.13.1">0.13.1</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-add-entry-to-folder"></a><h3>gdata_documents_service_add_entry_to_folder ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
gdata_documents_service_add_entry_to_folder
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> *entry</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> *folder</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Add the given <em class="parameter"><code>entry</code></em>
 to the specified <em class="parameter"><code>folder</code></em>
, and return an updated <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> for <em class="parameter"><code>entry</code></em>
. If the <em class="parameter"><code>entry</code></em>
 is already in another folder,
a copy will be added to the new folder. The copy and original will have different IDs. Note that <em class="parameter"><code>entry</code></em>
 can't be a <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> that
already exists on the server. It can be a new <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a>, or a <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> that is either new or already present on the
server.</p>
<p>Errors from <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> can be returned for exceptional conditions, as determined by the server.</p>
<div class="refsect3">
<a name="gdata-documents-service-add-entry-to-folder.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an authenticated <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>entry</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> to copy</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>folder</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> to copy <em class="parameter"><code>entry</code></em>
into</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-add-entry-to-folder.returns"></a><h4>Returns</h4>
<p>an updated <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-add-entry-to-folder-async"></a><h3>gdata_documents_service_add_entry_to_folder_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_documents_service_add_entry_to_folder_async
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> *entry</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> *folder</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Add the given <em class="parameter"><code>entry</code></em>
 to the specified <em class="parameter"><code>folder</code></em>
. <em class="parameter"><code>self</code></em>
, <em class="parameter"><code>entry</code></em>
 and <em class="parameter"><code>folder</code></em>
 are all reffed when this function is called, so can safely be unreffed
after this function returns.</p>
<p>For more details, see <a class="link" href="GDataDocumentsService.html#gdata-documents-service-add-entry-to-folder" title="gdata_documents_service_add_entry_to_folder ()"><code class="function">gdata_documents_service_add_entry_to_folder()</code></a>, which is the synchronous version of this function.</p>
<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
 will be called. You can then call <a class="link" href="GDataDocumentsService.html#gdata-documents-service-add-entry-to-folder-finish" title="gdata_documents_service_add_entry_to_folder_finish ()"><code class="function">gdata_documents_service_add_entry_to_folder_finish()</code></a> to get the results
of the operation.</p>
<div class="refsect3">
<a name="gdata-documents-service-add-entry-to-folder-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>entry</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> to add to <em class="parameter"><code>folder</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>folder</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> to add <em class="parameter"><code>entry</code></em>
to</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when the operation is finished, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-add-entry-to-folder-finish"></a><h3>gdata_documents_service_add_entry_to_folder_finish ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
gdata_documents_service_add_entry_to_folder_finish
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncResult</span> *async_result</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finish an asynchronous operation to add a <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> to a folder started with <a class="link" href="GDataDocumentsService.html#gdata-documents-service-add-entry-to-folder-async" title="gdata_documents_service_add_entry_to_folder_async ()"><code class="function">gdata_documents_service_add_entry_to_folder_async()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-add-entry-to-folder-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async_result</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-add-entry-to-folder-finish.returns"></a><h4>Returns</h4>
<p>an updated <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-remove-entry-from-folder"></a><h3>gdata_documents_service_remove_entry_from_folder ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
gdata_documents_service_remove_entry_from_folder
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> *entry</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> *folder</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Remove the given <em class="parameter"><code>entry</code></em>
 from <em class="parameter"><code>folder</code></em>
, and return an updated <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> for <em class="parameter"><code>entry</code></em>
. <em class="parameter"><code>entry</code></em>
 will remain a member of any other folders it's
currently in. Note that <em class="parameter"><code>entry</code></em>
 can be either a <a class="link" href="GDataDocumentsDocument.html" title="GDataDocumentsDocument"><span class="type">GDataDocumentsDocument</span></a> or a <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a>.</p>
<p>Errors from <a class="link" href="GDataService.html#GDataServiceError" title="enum GDataServiceError"><span class="type">GDataServiceError</span></a> can be returned for exceptional conditions, as determined by the server.</p>
<div class="refsect3">
<a name="gdata-documents-service-remove-entry-from-folder.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>entry</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> to remove</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>folder</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> from which we should remove <em class="parameter"><code>entry</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-remove-entry-from-folder.returns"></a><h4>Returns</h4>
<p>an updated <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-remove-entry-from-folder-async"></a><h3>gdata_documents_service_remove_entry_from_folder_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gdata_documents_service_remove_entry_from_folder_async
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> *entry</code></em>,
                                <em class="parameter"><code><a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> *folder</code></em>,
                                <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Remove the given <em class="parameter"><code>entry</code></em>
 from the specified <em class="parameter"><code>folder</code></em>
. <em class="parameter"><code>self</code></em>
, <em class="parameter"><code>entry</code></em>
 and <em class="parameter"><code>folder</code></em>
 are all reffed when this function is called, so can safely be unreffed
after this function returns.</p>
<p>For more details, see <a class="link" href="GDataDocumentsService.html#gdata-documents-service-remove-entry-from-folder" title="gdata_documents_service_remove_entry_from_folder ()"><code class="function">gdata_documents_service_remove_entry_from_folder()</code></a>, which is the synchronous version of this function.</p>
<p>When the operation is finished, <em class="parameter"><code>callback</code></em>
 will be called. You can then call <a class="link" href="GDataDocumentsService.html#gdata-documents-service-remove-entry-from-folder-finish" title="gdata_documents_service_remove_entry_from_folder_finish ()"><code class="function">gdata_documents_service_remove_entry_from_folder_finish()</code></a> to get the
results of the operation.</p>
<div class="refsect3">
<a name="gdata-documents-service-remove-entry-from-folder-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>entry</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> to remove from <em class="parameter"><code>folder</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>folder</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> to remove <em class="parameter"><code>entry</code></em>
from</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <span class="type">GCancellable</span> object, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncReadyCallback</span> to call when the operation is finished, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to the <em class="parameter"><code>callback</code></em>
function. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-remove-entry-from-folder-finish"></a><h3>gdata_documents_service_remove_entry_from_folder_finish ()</h3>
<pre class="programlisting"><a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="returnvalue">GDataDocumentsEntry</span></a> *
gdata_documents_service_remove_entry_from_folder_finish
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> *self</code></em>,
                                <em class="parameter"><code><span class="type">GAsyncResult</span> *async_result</code></em>,
                                <em class="parameter"><code><a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Finish an asynchronous operation to remove a <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a> from a folder started with
<a class="link" href="GDataDocumentsService.html#gdata-documents-service-remove-entry-from-folder-async" title="gdata_documents_service_remove_entry_from_folder_async ()"><code class="function">gdata_documents_service_remove_entry_from_folder_async()</code></a>.</p>
<div class="refsect3">
<a name="gdata-documents-service-remove-entry-from-folder-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>async_result</p></td>
<td class="parameter_description"><p>a <span class="type">GAsyncResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <a href="../glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-remove-entry-from-folder-finish.returns"></a><h4>Returns</h4>
<p>an updated <a class="link" href="GDataDocumentsEntry.html" title="GDataDocumentsEntry"><span class="type">GDataDocumentsEntry</span></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; unref with <a href="../gobject/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="ix10.html#api-index-0.8.0">0.8.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gdata-documents-service-get-upload-uri"></a><h3>gdata_documents_service_get_upload_uri ()</h3>
<pre class="programlisting"><a href="../glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
gdata_documents_service_get_upload_uri
                               (<em class="parameter"><code><a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> *folder</code></em>);</pre>
<p>Gets the upload URI for documents for the service.</p>
<p>If <em class="parameter"><code>folder</code></em>
 is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the URI will be the one to upload documents to the "root" folder.</p>
<div class="refsect3">
<a name="gdata-documents-service-get-upload-uri.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>folder</p></td>
<td class="parameter_description"><p>the <a class="link" href="GDataDocumentsFolder.html" title="GDataDocumentsFolder"><span class="type">GDataDocumentsFolder</span></a> into which to upload the document, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gdata-documents-service-get-upload-uri.returns"></a><h4>Returns</h4>
<p> the URI permitting the upload of documents to <em class="parameter"><code>folder</code></em>
, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>; free with <a href="../glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a></p>
</div>
<p class="since">Since: <a class="link" href="ix07.html#api-index-0.5.0">0.5.0</a></p>
</div>
</div>
<div class="refsect1">
<a name="GDataDocumentsService.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GDataDocumentsService-struct"></a><h3>GDataDocumentsService</h3>
<pre class="programlisting">typedef struct _GDataDocumentsService GDataDocumentsService;</pre>
<p>All the fields in the <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> structure are private and should never be accessed directly.</p>
<p class="since">Since: <a class="link" href="ix06.html#api-index-0.4.0">0.4.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataDocumentsServiceClass"></a><h3>GDataDocumentsServiceClass</h3>
<pre class="programlisting">typedef struct {
} GDataDocumentsServiceClass;
</pre>
<p>All the fields in the <a class="link" href="GDataDocumentsService.html#GDataDocumentsServiceClass" title="GDataDocumentsServiceClass"><span class="type">GDataDocumentsServiceClass</span></a> structure are private and should never be accessed directly.</p>
<p class="since">Since: <a class="link" href="ix06.html#api-index-0.4.0">0.4.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GDataDocumentsServiceError"></a><h3>enum GDataDocumentsServiceError</h3>
<p>Error codes for <a class="link" href="GDataDocumentsService.html" title="GDataDocumentsService"><span class="type">GDataDocumentsService</span></a> operations.</p>
<div class="refsect3">
<a name="GDataDocumentsServiceError.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody><tr>
<td class="enum_member_name"><p><a name="GDATA-DOCUMENTS-SERVICE-ERROR-INVALID-CONTENT-TYPE:CAPS"></a>GDATA_DOCUMENTS_SERVICE_ERROR_INVALID_CONTENT_TYPE</p></td>
<td class="enum_member_description">
<p>the content type of a provided file was invalid</p>
</td>
<td class="enum_member_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix06.html#api-index-0.4.0">0.4.0</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.26.1</div>
</body>
</html>