transferengine.html 23.8 KB
Newer Older
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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en_US" lang="en_US">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- transferengine.cpp -->
  <title>Nemo TransferEngine 1.0: TransferEngine Class Reference</title>
<li>Modules</li>
<li>TransferEngine</li>
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#public-slots">Public Slots</a></li>
<li class="level1"><a href="#signals">Signals</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<h1 class="title">TransferEngine Class Reference</h1>
<!-- $$$TransferEngine-brief -->
<p>The TransferEngine class implements the functionality for different transfer types. <a href="#details">More...</a></p>
<!-- @@@TransferEngine -->
<pre class="cpp"> <span class="preprocessor">#include &lt;TransferEngine&gt;</span></pre><ul>
<li><a href="transferengine-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h2>Public Functions</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#TransferEngine">TransferEngine</a></b> ( QObject * <i>parent</i> = 0 )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#dtor.TransferEngine">~TransferEngine</a></b> ()</td></tr>
</table>
<a name="public-slots"></a>
<h2>Public Slots</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#cancelTransfer">cancelTransfer</a></b> ( int <i>transferId</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#clearTransfers">clearTransfers</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#createDownload">createDownload</a></b> ( const QString &amp; <i>displayName</i>, const QString &amp; <i>applicationIcon</i>, const QString &amp; <i>serviceIcon</i>, const QString &amp; <i>filePath</i>, const QString &amp; <i>mimeType</i>, qlonglong <i>expectedFileSize</i>, const QStringList &amp; <i>callback</i>, const QString &amp; <i>cancelMethod</i>, const QString &amp; <i>restartMethod</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#createSync">createSync</a></b> ( const QString &amp; <i>displayName</i>, const QString &amp; <i>applicationIcon</i>, const QString &amp; <i>serviceIcon</i>, const QStringList &amp; <i>callback</i>, const QString &amp; <i>cancelMethod</i>, const QString &amp; <i>restartMethod</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#enableNotifications">enableNotifications</a></b> ( bool <i>enable</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#finishTransfer">finishTransfer</a></b> ( int <i>transferId</i>, int <i>status</i>, const QString &amp; <i>reason</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#notificationsEnabled">notificationsEnabled</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#restartTransfer">restartTransfer</a></b> ( int <i>transferId</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#startTransfer">startTransfer</a></b> ( int <i>transferId</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QList&lt;TransferMethodInfo&gt; </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#transferMethods">transferMethods</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> QList&lt;TransferDBRecord&gt; </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#transfers">transfers</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#updateTransferProgress">updateTransferProgress</a></b> ( int <i>transferId</i>, double <i>progress</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#uploadMediaItem">uploadMediaItem</a></b> ( const QString &amp; <i>source</i>, const QString &amp; <i>serviceId</i>, const QString &amp; <i>mimeType</i>, bool <i>metadataStripped</i>, const QVariantMap &amp; <i>userData</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#uploadMediaItemContent">uploadMediaItemContent</a></b> ( const QVariantMap &amp; <i>content</i>, const QString &amp; <i>serviceId</i>, const QVariantMap &amp; <i>userData</i> )</td></tr>
</table>
<a name="signals"></a>
<h2>Signals</h2>
<table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#progressChanged">progressChanged</a></b> ( int <i>transferId</i>, double <i>progress</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#statusChanged">statusChanged</a></b> ( int <i>transferId</i>, int <i>status</i> )</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#transferMethodListChanged">transferMethodListChanged</a></b> ()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="transferengine.html#transfersChanged">transfersChanged</a></b> ()</td></tr>
</table>
<a name="details"></a>
<!-- $$$TransferEngine-description -->
<div class="descr">
<h2>Detailed Description</h2>
<p>The TransferEngine class implements the functionality for different transfer types.</p>
<p>TransferEngine is the central place for:</p>
<ul>
<li>Sharing - Provides requires plugin interfaces for share plugins</li>
<li>Downloads - Provides an API to create Download entries</li>
<li>Syncs - Provides an API to create Sync entries</li>
</ul>
<p>For Downloads and Syncs, the Transfer Engine acts only a place to keep track of these operations. The actual Download and Sync is executed by a client using TransferEngine API. For sharing the TransferEngine provides an API containing a few interaces, which a share plugin must implement. TransferEngine also takes care of loading and executing the sharing, based on the API it defines.</p>
<p>The most essential thing to remember is that Transfer Engine provides share plugin API, DBus API e.g&#x2e; for creating Transfer UI or Share UIs, it stores data to the local sqlite database using <a href="dbmanager.html">DbManager</a> and that's it.</p>
<p>How to implement a share plugin see: <a href="transferplugininterface.html">TransferPluginInterface</a>, MediaTransferInterface, MediaItem, TransferPluginInfo</p>
<p>TransferEngine provides DBus API, but instead of using it directly, it's recommended to use <a href="transferengineclient.html">TransferEngineClient</a>. If there is a need to create UI to display e.g&#x2e; transfer statuses, then the DBus API is the recommend way to implement it.</p>
</div>
<!-- @@@TransferEngine -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$TransferEngine[overload1]$$$TransferEngineQObject* -->
<h3 class="fn"><a name="TransferEngine"></a>TransferEngine::<span class="name">TransferEngine</span> ( <span class="type">QObject</span> * <i>parent</i> = 0 )</h3>
<p>Constructor with optional <i>parent</i> arguement.</p>
<!-- @@@TransferEngine -->
<!-- $$$~TransferEngine[overload1]$$$~TransferEngine -->
<h3 class="fn"><a name="dtor.TransferEngine"></a>TransferEngine::<span class="name">~TransferEngine</span> ()</h3>
<p>Destructor.</p>
<!-- @@@~TransferEngine -->
<!-- $$$cancelTransfer[overload1]$$$cancelTransferint -->
<h3 class="fn"><a name="cancelTransfer"></a><span class="type">void</span> TransferEngine::<span class="name">cancelTransfer</span> ( <span class="type">int</span> <i>transferId</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to cancel an existing transfer with a <i>transferId</i>.</p>
<p>If the transfer is Upload, then this method calls MediaTransferInterface instance's cancel method. In a case of Sync or Download this method calls client's cancel callback method, if the one exists.</p>
<p>Calling this method causes <a href="transferengine.html#statusChanged">statusChanged</a>() signal to be emitted.</p>
<!-- @@@cancelTransfer -->
<!-- $$$clearTransfers[overload1]$$$clearTransfers -->
<h3 class="fn"><a name="clearTransfers"></a><span class="type">void</span> TransferEngine::<span class="name">clearTransfers</span> ()<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to clear all the finished, canceled or interrupted transfers in the database.</p>
<!-- @@@clearTransfers -->
<!-- $$$createDownload[overload1]$$$createDownloadconstQString&constQString&constQString&constQString&constQString&qlonglongconstQStringList&constQString&constQString& -->
<h3 class="fn"><a name="createDownload"></a><span class="type">int</span> TransferEngine::<span class="name">createDownload</span> ( const <span class="type">QString</span> &amp; <i>displayName</i>, const <span class="type">QString</span> &amp; <i>applicationIcon</i>, const <span class="type">QString</span> &amp; <i>serviceIcon</i>, const <span class="type">QString</span> &amp; <i>filePath</i>, const <span class="type">QString</span> &amp; <i>mimeType</i>, <span class="type">qlonglong</span> <i>expectedFileSize</i>, const <span class="type">QStringList</span> &amp; <i>callback</i>, const <span class="type">QString</span> &amp; <i>cancelMethod</i>, const <span class="type">QString</span> &amp; <i>restartMethod</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to create a download entry. Note that this is purely write-only method and doesn't involve anything else from <a href="transferengine.html">TransferEngine</a> side than creating a new DB record of type 'Download'.</p>
<ul>
<li><i>displayName</i> The name for Download which may be used by the UI displaying the download</li>
<li><i>applicationIcon</i> The application icon of the application created the download</li>
<li><i>serviceIcon</i> The service icon, which provides the file to be downloaded</li>
<li><i>filePath</i> The filePath e.g&#x2e; url to the file to be downloaded</li>
<li><i>mimeType</i> the MimeType of the file to be downloaded</li>
<li><i>expectedFileSize</i> The file size of the file to be downloaded</li>
<li><i>callback</i> QStringList containing DBus callback information such as: service, path and interface</li>
<li><i>cancelMethod</i> The name of the cancel callback method, which DBus callback provides</li>
<li><i>restartMethod</i> The name of the restart callback method, which DBus callback provides</li>
</ul>
<p>This method returns the transfer id of the created Download transfer. Note that this method only creates an entry to the database. To start the actual transfer, the <a href="transferengine.html#startTransfer">startTransfer</a>() method must be called.</p>
<p><b>See also </b><a href="transferengine.html#startTransfer">startTransfer</a>(), <a href="transferengine.html#restartTransfer">restartTransfer</a>(), <a href="transferengine.html#finishTransfer">finishTransfer</a>(), and <a href="transferengine.html#updateTransferProgress">updateTransferProgress</a>().</p>
<!-- @@@createDownload -->
<!-- $$$createSync[overload1]$$$createSyncconstQString&constQString&constQString&constQStringList&constQString&constQString& -->
<h3 class="fn"><a name="createSync"></a><span class="type">int</span> TransferEngine::<span class="name">createSync</span> ( const <span class="type">QString</span> &amp; <i>displayName</i>, const <span class="type">QString</span> &amp; <i>applicationIcon</i>, const <span class="type">QString</span> &amp; <i>serviceIcon</i>, const <span class="type">QStringList</span> &amp; <i>callback</i>, const <span class="type">QString</span> &amp; <i>cancelMethod</i>, const <span class="type">QString</span> &amp; <i>restartMethod</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to create a Sync entry. Note that this is purely write-only method and doesn't involve anything else from <a href="transferengine.html">TransferEngine</a> side than creating a new DB record of type 'Download'.</p>
<ul>
<li><i>displayName</i> The name for download which may be used by the UI displaying the download</li>
<li><i>applicationIcon</i> The application icon of the application created the download</li>
<li><i>serviceIcon</i> The service icon, which provides the file to be downloaded</li>
<li><i>callback</i> QStringList containing DBus callback information such as: service, path and interface</li>
<li><i>cancelMethod</i> The name of the cancel callback method, which DBus callback provides</li>
<li><i>restartMethod</i> The name of the restart callback method, which DBus callback provides</li>
</ul>
<p>This method returns the transfer id of the created Download transfer. Note that this method only creates an entry to the database. To start the actual transfer, the <a href="transferengine.html#startTransfer">startTransfer</a>() method must be called.</p>
<p><b>See also </b><a href="transferengine.html#startTransfer">startTransfer</a>(), <a href="transferengine.html#restartTransfer">restartTransfer</a>(), <a href="transferengine.html#finishTransfer">finishTransfer</a>(), and <a href="transferengine.html#updateTransferProgress">updateTransferProgress</a>().</p>
<!-- @@@createSync -->
<!-- $$$enableNotifications[overload1]$$$enableNotificationsbool -->
<h3 class="fn"><a name="enableNotifications"></a><span class="type">void</span> TransferEngine::<span class="name">enableNotifications</span> ( <span class="type">bool</span> <i>enable</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to enable or disable transfer speicific notifications based on <i>enable</i> argument.</p>
<!-- @@@enableNotifications -->
<!-- $$$finishTransfer[overload1]$$$finishTransferintintconstQString& -->
<h3 class="fn"><a name="finishTransfer"></a><span class="type">void</span> TransferEngine::<span class="name">finishTransfer</span> ( <span class="type">int</span> <i>transferId</i>, <span class="type">int</span> <i>status</i>, const <span class="type">QString</span> &amp; <i>reason</i> )<tt> [slot]</tt></h3>
<p>Finish an existing Sync or Download transfer with a <i>transferId</i>. Transfer can be finished with different <i>status</i> e.g for successfully finish status can be set to <a href="transferenginedata.html#TransferStatus-enum">TransferEngineData::TransferFinished</a>, for canceling TransferEngineData::Canceled and for failure with <a href="transferenginedata.html#TransferStatus-enum">TransferEngineData::TransferInterrupted</a>. In a case of failure, the client can also provide a <i>reason</i>.</p>
<p>This method causes <a href="transferengine.html#statusChanged">statusChanged</a>() signal to be emitted. If a sync has been successfully finished, then it will also be removed from the database automatically which causes transferChanged() signal to be emitted.</p>
<!-- @@@finishTransfer -->
<!-- $$$notificationsEnabled[overload1]$$$notificationsEnabled -->
<h3 class="fn"><a name="notificationsEnabled"></a><span class="type">bool</span> TransferEngine::<span class="name">notificationsEnabled</span> ()<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method. Returns true or false depending if notifications are enabled or disabled.</p>
<!-- @@@notificationsEnabled -->
<!-- $$$progressChanged[overload1]$$$progressChangedintdouble -->
<h3 class="fn"><a name="progressChanged"></a><span class="type">void</span> TransferEngine::<span class="name">progressChanged</span> ( <span class="type">int</span> <i>transferId</i>, <span class="type">double</span> <i>progress</i> )<tt> [signal]</tt></h3>
<!-- @@@progressChanged -->
<!-- $$$restartTransfer[overload1]$$$restartTransferint -->
<h3 class="fn"><a name="restartTransfer"></a><span class="type">void</span> TransferEngine::<span class="name">restartTransfer</span> ( <span class="type">int</span> <i>transferId</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to restart a canceled or failed transfer with a <b class="redFont"><code>\transferId</code></b>. In a case of Upload, this method creates MediaItem instance of the existing transfer and instantiates the required share plugin. The MediaItem instance is passed to the plugin and sharing is restarted.</p>
<p>For Sync and Download entries, this method calls their callbacks methods, if a callback interface has been defined by the client originally created the Sync or Download entry.</p>
<!-- @@@restartTransfer -->
<!-- $$$startTransfer[overload1]$$$startTransferint -->
<h3 class="fn"><a name="startTransfer"></a><span class="type">void</span> TransferEngine::<span class="name">startTransfer</span> ( <span class="type">int</span> <i>transferId</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to start the actual transfer. This method changes the transfer status of the existing transfer with a <i>key</i> to <a href="transferenginedata.html#TransferStatus-enum">TransferEngineData::TransferStarted</a>. This method can only be called for Sync and Download transfers.</p>
<p>Calling this method causes the corresponding <a href="transferengine.html#statusChanged">statusChanged</a>() signal to be emitted.</p>
<!-- @@@startTransfer -->
<!-- $$$statusChanged[overload1]$$$statusChangedintint -->
<h3 class="fn"><a name="statusChanged"></a><span class="type">void</span> TransferEngine::<span class="name">statusChanged</span> ( <span class="type">int</span> <i>transferId</i>, <span class="type">int</span> <i>status</i> )<tt> [signal]</tt></h3>
<!-- @@@statusChanged -->
<!-- $$$transferMethodListChanged[overload1]$$$transferMethodListChanged -->
<h3 class="fn"><a name="transferMethodListChanged"></a><span class="type">void</span> TransferEngine::<span class="name">transferMethodListChanged</span> ()<tt> [signal]</tt></h3>
<!-- @@@transferMethodListChanged -->
<!-- $$$transferMethods[overload1]$$$transferMethods -->
<h3 class="fn"><a name="transferMethods"></a><span class="type">QList</span>&lt;<span class="type"><a href="transfermethodinfo.html">TransferMethodInfo</a></span>&gt; TransferEngine::<span class="name">transferMethods</span> ()<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to fetch a list of transfer methods. This method returns QList&lt;<a href="transfermethodinfo.html">TransferMethodInfo</a>&gt;.</p>
<p>Transfer methods are basically a list of share plugins installed to the system.</p>
<!-- @@@transferMethods -->
<!-- $$$transfers[overload1]$$$transfers -->
<h3 class="fn"><a name="transfers"></a><span class="type">QList</span>&lt;<span class="type"><a href="transferdbrecord.html">TransferDBRecord</a></span>&gt; TransferEngine::<span class="name">transfers</span> ()<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to fetch a list of transfers. This method returns QList&lt;<a href="transferdbrecord.html">TransferDBRecord</a>&gt;.</p>
<!-- @@@transfers -->
<!-- $$$transfersChanged[overload1]$$$transfersChanged -->
<h3 class="fn"><a name="transfersChanged"></a><span class="type">void</span> TransferEngine::<span class="name">transfersChanged</span> ()<tt> [signal]</tt></h3>
<!-- @@@transfersChanged -->
<!-- $$$updateTransferProgress[overload1]$$$updateTransferProgressintdouble -->
<h3 class="fn"><a name="updateTransferProgress"></a><span class="type">void</span> TransferEngine::<span class="name">updateTransferProgress</span> ( <span class="type">int</span> <i>transferId</i>, <span class="type">double</span> <i>progress</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to update transfer progress of the transfer with a <i>transferId</i> and with a new <i>progress</i>.</p>
<!-- @@@updateTransferProgress -->
<!-- $$$uploadMediaItem[overload1]$$$uploadMediaItemconstQString&constQString&constQString&boolconstQVariantMap& -->
<h3 class="fn"><a name="uploadMediaItem"></a><span class="type">int</span> TransferEngine::<span class="name">uploadMediaItem</span> ( const <span class="type">QString</span> &amp; <i>source</i>, const <span class="type">QString</span> &amp; <i>serviceId</i>, const <span class="type">QString</span> &amp; <i>mimeType</i>, <span class="type">bool</span> <i>metadataStripped</i>, const <span class="type">QVariantMap</span> &amp; <i>userData</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to start uploading a media item. The minimum information needed to start an upload and to create an entry to the transfer database is: <i>source</i> the path to the media item to be downloaded. <i>serviceId</i> the ID of the share plugin. See <a href="transferplugininterface.html#pluginId">TransferPluginInterface::pluginId</a>() for more details. <i>mimeType</i> is the MimeType of the media item e.g&#x2e; &quot;image/jpeg&quot;. <i>metadataStripped</i> boolean to indicate if the metadata should be kept or removed before uploading. <i>userData</i> is various kind of data which share UI may provide to the engine. UserData is QVariant map i.e&#x2e; the data must be provided as key-value pairs, where the keys must be QStrings.</p>
<p><a href="transferengine.html">TransferEngine</a> handles the following user defined data automatically and stores them to the database:</p>
<ul>
<li>&quot;title&quot; Title for the media</li>
<li>&quot;description&quot; Description for the media</li>
<li>&quot;accountId&quot; The ID of the account which is used for sharing. See qt-accounts for more details.</li>
<li>&quot;scalePercent&quot; The scale percent e.g&#x2e; downscale image to 50% from original before uploading.</li>
</ul>
<p>In practice this method instantiates a share plugin with <i>serviceId</i> and passes a MediaItem instance filled with required data to it. When the plugin has been loaded, the <a href="mediatransferinterface.html#start">MediaTransferInterface::start</a>() method is called and the actual sharing starts.</p>
<p>This method returns a transfer ID which can be used later to fetch information of this specific transfer.</p>
<!-- @@@uploadMediaItem -->
<!-- $$$uploadMediaItemContent[overload1]$$$uploadMediaItemContentconstQVariantMap&constQString&constQVariantMap& -->
<h3 class="fn"><a name="uploadMediaItemContent"></a><span class="type">int</span> TransferEngine::<span class="name">uploadMediaItemContent</span> ( const <span class="type">QVariantMap</span> &amp; <i>content</i>, const <span class="type">QString</span> &amp; <i>serviceId</i>, const <span class="type">QVariantMap</span> &amp; <i>userData</i> )<tt> [slot]</tt></h3>
<p>DBus adaptor calls this method to start uploading media item content. Sometimes the content to be shared is not a file, but data e.g&#x2e; contact information in vcard format. In order to avoid serializing data to a file, pass url to the file, reading the data, deleting the file, <a href="transferengine.html">TransferEngine</a> provides this convenience API.</p>
<p><i>content</i> is the media item content to be shared. <i>serviceId</i> is the id of the share plugin. See <a href="transferplugininterface.html#pluginId">TransferPluginInterface::pluginId</a>() for more details. <i>userData</i> is a QVariantMap containing share plugin specific data. See TransferEngine::uploadMediaItem for more details.</p>
<p>This method returns a transfer ID which can be used later to fetch information of this specific transfer.</p>
<!-- @@@uploadMediaItemContent -->
</div>
</body>
</html>