Delete Service Adaptor from web API references because serviceadaptor is native
authorDonghyun Lee <dh0922.lee@samsung.com>
Tue, 28 Jul 2015 05:43:34 +0000 (14:43 +0900)
committerDonghyun Lee <dh0922.lee@samsung.com>
Tue, 28 Jul 2015 05:44:54 +0000 (14:44 +0900)
org.tizen.web.apireference/html/device_api/mobile/index.html
org.tizen.web.apireference/html/device_api/mobile/tizen/serviceadaptor.html [deleted file]

index cb8b3f1..ddd29cb 100644 (file)
                 <td>Optional</td>
                 <td>No</td>
                 
-                </tr><tr><td><a href="tizen/serviceadaptor.html" data-origin="tizen" data-domain="pim" data-category="core" data-status="S" data-version="">
-                        Service Adaptor</a></td>
-                        <td>This API provides methods to communicate with cloud storage systems or other storage systems. </td>
-                <td>2.4</td>
-                <td>Mandatory</td>
-                <td>Yes</td>
-
                 </tr></tbody></table><h4 id="System">System</h4>
              <table class="api-list"><thead><tr><th>API</th><th>Description</th><th>Version (Since)</th><th>Mobile</th><th>Supported on<br>Mobile Emulator</th></tr>
        </thead><tbody><tr><td><a href="tizen/fmradio.html" data-origin="tizen" data-domain="system" data-category="core" data-status="D" data-version="">
diff --git a/org.tizen.web.apireference/html/device_api/mobile/tizen/serviceadaptor.html b/org.tizen.web.apireference/html/device_api/mobile/tizen/serviceadaptor.html
deleted file mode 100644 (file)
index dc67573..0000000
+++ /dev/null
@@ -1,3725 +0,0 @@
-<!DOCTYPE html PUBLIC "html">
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-        <link rel="stylesheet" type="text/css" href="tizen.css" media="screen">
-        <script type="text/javascript" src="snippet.js"></script><title>Account API</title>
-    </head>
-    <body id="page-content" onload="prettyPrint()">
-        <div class="api" id="::ServiceAdaptorClient">
-            <div class="supported-platforms"><img class="mobile-mandatory emulator" title="Mandatory, Supported by Tizen Mobile emulator" src="mw_icon.png"></div>
-            <div class="title"><h1>Service Adaptor Client API</h1></div>
-            <div class="brief">
-                The Service Adaptor Client API provides developer with common interfaces like using local service to communicate with remote storage systems.
-                Service Adaptor Client provides functions kind of Authorization, Storage ones.
-            </div>
-            <div class="description">
-                <p>
-                    The basic concepts are:
-                </p>
-                <ul>
-                    <li>
-                        <b>Authorization plugin</b> will allow the Tizen Device users to authorize (login)
-                        into 3rd party clouds or other systems. After authorize user will be able to perform
-                        operation on the Tizen
-                        Device to manage 3rd party storage systems files via Storage Plugin.         </li>
-                    <li>
-                        <b>Storage plugin</b> will allow the Tizen Device users (after authorization using Authorization plugin) to see and manage
-                        files stored on 3rd party storage clouds (or other storages) transparently like local files. Users will be allowed to download files from storage
-                        to Tizen Device, edit these files, remove them or upload files from Tizen Device to 3rd party storages.          </li>
-                </ul>
-                <p>
-                    For more information about how to use Service Adaptor Client API, see <a href="../../../../../org.tizen.guides/html/native/social/service_adaptor_client_n.html">Service Adaptor Client Guide</a>.
-                </p>
-            </div>
-            <p><span class="version">
-                    Since: </span>
-                2.4
-            </p>
-
-            <!-- Table of Contents -->
-            <div class="typedefs" id="TableOfContents">
-                <h2>Table of Contents</h2>
-                <ul class="toc">
-                    <li>1. <a href="#typedefs-section">Global Type Definitions</a>
-                        <ul class="toc">
-                            <li>1.1. <a href="#ServiceErrorCodes">Service Error Codes</a></li>
-                        </ul>
-                    </li>
-                    <li>2. <a href="#ServiceAdaptorAPI">Service Adaptor API</a>
-                        <ul class="toc">
-                            <li>2.1. <a href="#ServiceAdaptorAPITypeDefinition">Service Adaptor API Types Definition</a>
-                                <ul class="toc">
-                                    <li>2.1.1. <a href="#ServiceAdaptorAPIServiceAdaptorHandle">Service Adaptor Handle</a></li>
-                                    <li>2.1.2. <a href="#ServiceAdaptorAPIServiceAdaptorPluginCB">Service Adaptor Plugin Callback</a></li>
-                                </ul>
-                            </li>
-                            <li>2.2. <a href="#ServiceAdaptorAPIMethods">Methods</a>
-                        </ul>
-                    </li>
-                    <li>3. <a href="#ServicePluginAPI">Service Plugin API</a>
-                        <ul class="toc">
-                            <li>3.1. <a href="#ServicePluginAPITypesDefinition">Service Plugin API Types Definition</a>
-                                <ul class="toc">
-                                    <li>3.1.1. <a href="#ServicePluginAPIServicePluginHandle">Service Plugin Handle</a></li>
-                                    <li>3.1.2. <a href="#ServicePluginAPIServicePluginServiceType">Service Plugin Service Type</a></li>
-                                    <li>3.1.3. <a href="#ServicePluginAPIServicePluginMacros">Service Plugin API Macros</a></li>
-                                </ul>
-                            </li>
-                            <li>3.2. <a href="#ServicePluginAPIMethods">Methods</a>
-                        </ul>
-                    </li>
-                    <li>4. <a href="#StorageAPI">Storage API</a>
-                        <ul class="toc">
-                            <li>4.1. <a href="#StorageAPIDefinition">Storage API Types Definition</a>
-                                <ul class="toc">
-                                    <li>4.1.1. <a href="#StorageAPIFile">Service storage file</a></li>
-                                    <li>4.1.2. <a href="#StorageAPIFileList">Service storage file list</a></li>
-                                    <li>4.1.3. <a href="#StorageAPIStorageTask">Service storage task</a></li>
-                                    <li>4.1.4. <a href="#StorageAPIStorageTaskState">Service storage task state</a></li>
-                                    <li>4.1.5. <a href="#StorageAPIStorageFileCallback">Service storage file callback</a></li>
-                                    <li>4.1.6. <a href="#StorageAPIStorageFileListCallback">Service storage file list callback</a></li>
-                                    <li>4.1.7. <a href="#StorageAPIStorageResultCallback">Service storage result callback</a></li>
-                                    <li>4.1.8. <a href="#StorageAPIStorageTaskProgressCallback">Service storage task progress callback</a></li>
-                                    <li>4.1.9. <a href="#StorageAPIStorageTaskStateCallback">Service storage task state callback</a></li>
-                                </ul>
-                            </li>
-                            <li>4.2. <a href="#StorageAPIMethods">Methods</a>
-                        </ul>
-                    </li>
-                </ul>
-                <hr>
-            </div>
-            <!-- Summary of Interfaces and Methods -->
-            <div class="typedefs">
-                <h2 id="method-summary">Summary of Interfaces and Methods</h2>
-                <table class="informaltable">
-                    <thead><tr>
-                            <th>Interface</th>
-                            <th>Method</th>
-                        </tr></thead>
-                    <tbody>
-                        <tr>
-                            <td><a href="#ServiceAdaptorAPI"> Service Adaptor API</a></td>
-                            <td>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_create">service_adaptor_create</a> (<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> *service_adaptor)<br>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_destroy">service_adaptor_destroy</a> (<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor)<br>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_foreach_plugin">service_adaptor_foreach_plugin</a> (<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor, <a href="#ServiceAdaptorAPIServiceAdaptorPluginCB">service_adaptor_plugin_cb</a> callback, void * user_data)<br>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_query_plugin_by_file">service_adaptor_query_plugin_by_file</a> (<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor, const char *file_path, char **plugin_uri)<br>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message</a> (char **message)<br>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result</a> (int *err)
-                            </td>
-                        </tr>
-                        <tr>
-                            <td><a href="#ServicePluginAPI">Service Plugin API</a></td>
-                            <td>
-                                int <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin</a> (<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor, const char *plugin_uri, <a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> *plugin)<br>
-                                int <a href="#::ServiceAdaptorClient::service_plugin_add_property">service_plugin_add_property</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *key, const char *value)<br>
-                                int <a href="#::ServiceAdaptorClient::service_plugin_get_property">service_plugin_get_property</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *key, char **value)<br>
-                                int <a href="#::ServiceAdaptorClient::service_plugin_remove_property">service_plugin_remove_property</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *key)<br>
-                                int <a href="#::ServiceAdaptorClient::service_plugin_start">service_plugin_start</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, int service_mask)<br>
-                                int <a href="#::ServiceAdaptorClient::service_plugin_stop">service_plugin_stop</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin)<br>
-                                int <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin)<br>
-                        </tr>
-                        <tr>
-                            <td><a href="#StorageAPI">Storage API</a></td>
-                            <td>
-                                int <a href="#::ServiceAdaptorClient::service_storage_create_download_task">service_storage_create_download_task</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *storage_path, const char *download_path, <a href="#StorageAPIStorageTask">service_storage_task_h</a> *task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_create_download_thumbnail_task">service_storage_create_download_thumbnail_task</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *storage_path, const char *download_path, int thumbnail_size, <a href="#StorageAPIStorageTask">service_storage_task_h</a> *task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_create_upload_task">service_storage_create_upload_task</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *file_path, const char *upload_path, <a href="#StorageAPIStorageTask">service_storage_task_h</a> *task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_set_task_progress_cb">service_storage_set_task_progress_cb</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task, <a href="#StorageAPIStorageTaskProgressCallback">service_storage_task_progress_cb</a> callback, void *user_data)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_set_task_state_changed_cb">service_storage_set_task_state_changed_cb</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task, <a href="#StorageAPIStorageTaskStateCallback">service_storage_task_state_cb</a> callback, void *user_data)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_unset_task_progress_cb">service_storage_unset_task_progress_cb</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_unset_task_state_changed_cb">service_storage_unset_task_state_changed_cb</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_start_task">service_storage_start_task</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_cancel_task">service_storage_cancel_task</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_destroy_task">service_storage_destroy_task</a> (<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_get_file_list">service_storage_get_file_list</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *dir_path, <a href="#StorageAPIStorageFileListCallback">service_storage_file_list_cb</a> callback, void *user_data)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_list_get_length">service_storage_file_list_get_length</a> (<a href="#StorageAPIFileList">service_storage_file_list_h</a> list, int *length)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_list_foreach_file">service_storage_file_list_foreach_file</a> (<a href="#StorageAPIFileList">service_storage_file_list_h</a> list, <a href="#StorageAPIStorageFileCallback">service_storage_file_cb</a> callback, void *user_data)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_list_clone">service_storage_file_list_clone</a> (<a href="#StorageAPIFileList">service_storage_file_list_h</a> src_list, <a href="#StorageAPIFileList">service_storage_file_list_h</a> *dst_list)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_list_destroy">service_storage_file_list_destroy</a> (<a href="#StorageAPIFileList">service_storage_file_list_h</a> list)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_clone">service_storage_file_clone</a> (<a href="#StorageAPIFile">service_storage_file_h</a> src_file, <a href="#StorageAPIFile">service_storage_file_h</a> *dst_file)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_get_logical_path">service_storage_file_get_logical_path</a> (<a href="#StorageAPIFile">service_storage_file_h</a> file, char **path)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_get_physical_path">service_storage_file_get_physical_path</a> (<a href="#StorageAPIFile">service_storage_file_h</a> file, char **path)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_get_size">service_storage_file_get_size</a> (<a href="#StorageAPIFile">service_storage_file_h</a> file, unsigned long long *size)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_is_dir">service_storage_file_is_dir</a> (<a href="#StorageAPIFile">service_storage_file_h</a> file, bool *is_dir)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_file_destroy">service_storage_file_destroy</a> (<a href="#StorageAPIFile">service_storage_file_h</a> file)<br>
-                                int <a href="#::ServiceAdaptorClient::service_storage_remove">service_storage_remove</a> (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *remove_path, <a href="#StorageAPIStorageResultCallback">service_storage_result_cb</a> callback, void *user_data)<br>
-                            </td>
-                        </tr>
-                    </tbody>
-                </table>
-            </div>
-            <!-- Global Type Definitions -->
-            <div class="typedefs" id="typedefs-section">
-                <h2>1. Global Type Definitions</h2>
-                <div class="typedef" id="ServiceErrorCodes">
-                    <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceErrorCode"></a>
-                    <h3>1.1 Service Error Codes</h3>
-                    <div class="brief">
-                        Specify error codes returned by API functionality.
-                    </div>
-                    <pre class="webidl prettyprint">    enum service_adaptor_error_e {"SERVICE_ADAPTOR_ERROR_NONE", "SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED",
-                                "SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER", "SERVICE_ADAPTOR_ERROR_TIMED_OUT", "SERVICE_ADAPTOR_ERROR_NO_DATA",
-                                "SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED", "SERVICE_ADAPTOR_ERROR_UNKNOWN", "SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE",
-                                "SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED", "SERVICE_ADAPTOR_ERROR_NOT_AUTHORIZED", "SERVICE_ADAPTOR_ERROR_INVALID_STATE"
-                                                    };  </pre>
-                    <p><span class="version">
-                            Since: </span>
-                        2.4
-                    </p>
-                    <div class="description">
-                        <ul>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_NONE - Success </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED - Service plugin does not support API  </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER - The parameter is invalid </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_TIMED_OUT - API time out  </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_NO_DATA - There is no data available </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED - Permission denied </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_UNKNOWN - Unknown error </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE - IPC Connection unstabled </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED - The error occured from Plugin, See detail from <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and Plugin SPEC </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_NOT_AUTHORIZED - Need Autholization </li>
-                            <li>
-                                SERVICE_ADAPTOR_ERROR_INVALID_STATE - The handle state is invalid for processing API  </li>
-
-                        </ul>
-                    </div>
-                </div>
-            </div>
-
-            <!-- Service Adaptor API -->
-            <div class="interfaces" id="ServiceAdaptorAPI">
-                <h2>2. Service Adaptor API</h2>
-                <div class="brief">
-                    The Service Adaptor API provides functions to manage service adaptor handle and creation of service plugin
-                </div>
-
-                <!-- Service Adaptor API Types Definition -->
-                <div class="interface" id="ServiceAdaptorAPITypeDefinition">
-                    <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorTypesDefinition"></a>
-                    <h3>2.1. Service Adaptor API Types Definition</h3>
-                    <div class="interface" id ="ServiceAdaptorAPIServiceAdaptorHandle">
-                        <h4>2.1.1 Service Adaptor Handle</h4>
-                        <div class="brief">
-                            The handle for connection and managing plugin handle of Service Adaptor. <br>
-                            The handle can be created by <a href="#::ServiceAdaptorClient::service_adaptor_create">service_adaptor_create()</a>. <br>
-                            When a handle is no longer needed, use <a href="#::ServiceAdaptorClient::service_adaptor_destroy">service_adaptor_destroy()</a>
-
-                        </div>
-                        <pre class="webidl prettyprint">    typedef struct _service_adaptor_s* service_adaptor_h  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                    </div>
-                    <div class="interface" id ="ServiceAdaptorAPIServiceAdaptorPluginCB">
-                        <h4>2.1.2 Service Adaptor Plugin Callback</h4>
-                        <div class="brief">
-                            Callback for <a href="#::ServiceAdaptorClient::service_adaptor_foreach_plugin">service_adaptor_foreach_plugin()</a> API
-                        </div>
-                        <pre class="webidl prettyprint">    typedef bool(* service_adaptor_plugin_cb) (char *plugin_uri, int service_mask, void *user_data)  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="parameters">
-                            <p><span class="param">Parameters:</span></p>
-                            <ul>
-                                <li class="param">
-                                    <span class="name">plugin_uri</span>:
-                                    The service plugin's unique uri, this value be set by plugin
-                                </li>
-                                <li class="param">
-                                    <span class="name">service_mask</span>:
-                                    Masked value for installed  service plugins, this value can be masked multiple enum (<a href="#ServicePluginAPIServicePluginServiceType">service_plugin_service_type_e</a>)
-                                </li>
-                                <li class="param">
-                                    <span class="name">user_data</span>:
-                                    Passed data from <a href="#::ServiceAdaptorClient::service_adaptor_foreach_plugin">service_adaptor_foreach_plugin()</a>
-                                </li>
-                            </ul>
-                        </div>
-                    </div>
-                </div>
-
-                <!-- Methods -->
-                <div class="interfaces" id="ServiceAdaptorAPIMethods">
-                    <h3>2.2 Methods</h3>
-                    <!-- service_adaptor_create -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_create">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorAPI::service_adaptor_create"></a>
-                        <code><b><span class="methodName">service_adaptor_create</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Create Service Adaptor.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_create(<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> *service_adaptor);
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Create Service Adaptor handle. The Service Adaptor is needed to use other functionality in this API.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">service_adaptor</span>:
-                                        Handle for new Service Adaptor.
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                service_adaptor  must be released memory using <a href="#::ServiceAdaptorClient::service_adaptor_destroy">service_adaptor_destroy()</a> when a program no longer needs any function of Service Adaptor
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_adaptor_h service_adaptor = NULL;
-service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-ret = service_adaptor_create(&service_adaptor);
-
-if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-{
-    some_operations();
-    service_adaptor_destroy(service_adaptor);
-}
-else
-{
-    log_error("Creating Service Adaptor failed", ret);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_adaptor_destroy -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_destroy">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorAPI::service_adaptor_destroy"></a>
-                        <code><b><span class="methodName">service_adaptor_destroy</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Destroy Service Adaptor.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_destroy(<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor);
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Destroy Service Adaptor. It must called after a program no longer needs any function of Service Adaptor.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">service_adaptor</span>:
-                                        Handle to Service Adaptor.
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                service_adaptor  must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create">service_adaptor_create()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_adaptor_h service_adaptor = NULL;
-service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-ret = service_adaptor_create(&service_adaptor);
-
-if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-{
-    some_operations();
-    service_adaptor_destroy(service_adaptor);
-}
-else
-{
-    log_error("Creating Service Adaptor failed", ret);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_adaptor_foreach_plugin -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_foreach_plugin">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorAPI::service_adaptor_foreach_plugin"></a>
-                        <code><b><span class="methodName">service_adaptor_foreach_plugin</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Foreach the list of plugins.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_foreach_plugin(<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor, <a href="#ServiceAdaptorAPIServiceAdaptorPluginCB">service_adaptor_plugin_cb</a> callback, void * user_data);
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Foreach the list of plugins. This function will call callback function for all installed plugins.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">service_adaptor</span>:
-                                        The handle of Service Adaptor
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">callback</span>:
-                                        The callback for foreach plugin
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">user_data</span>:
-                                        Passed data to callback
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no available plugins
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                service_adaptor  must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create">service_adaptor_create()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool plugin_cb(char *plugin_uri, int service_mask, void *user_data)
-{
-    do_something_with_plugin(plugin_uri, service_mask);
-    return true;
-}
-
-void process_plugins(service_adaptor_h service_adaptor)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_adaptor_foreach_plugin(service_adaptor, plugin_cb, NULL);
-
-    switch(ret)
-    {
-        case SERVICE_ADAPTOR_ERROR_NONE: return;
-        case SERVICE_ADAPTOR_ERROR_NO_DATA: log_error("There is no installed plugin"); break;
-        default: log_error("Unknown error", ret);
-    }
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_adaptor_query_plugin_by_file -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_query_plugin_by_file">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorAPI::service_adaptor_query_plugin_by_file"></a>
-                        <code><b><span class="methodName">service_adaptor_query_plugin_by_file</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Retrieve an plugin URI with local file path.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_query_plugin_by_file(<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor, const char *file_path, char **plugin_uri)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    For specific files that is located in cloud but be shown to such as local files (that is operated by Unified Storage System with Service Adaptor),
-                                    this API can find which plugin is used for that file (showing to likes local file). Please reference details to description for Unified Storage System.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">service_adaptor</span>:
-                                        The handle of Service Adaptor
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">file_path</span>:
-                                        The local file path
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">plugin_uri</span>:
-                                        The specfic string for use plugin, this values are set by plugin
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no data (also returned if given file is just local (not storage) file)
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                plugin_uri  must be released using free()
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                service_adaptor  must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create">service_adaptor_create()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void process_files(service_adaptor_h service_adaptor, const char *file)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    char *plugin_uri = NULL;
-
-    ret = service_adaptor_query_plugin_by_file(service_adaptor, file, &plugin_uri);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        if (0 == strcmp("org.tizen.plugin.my_plugin", plugin_uri))
-        {
-            view_file(file);
-        }
-        else
-        {
-            log_warrning("File is not managed by my_plugin");
-        }
-    }
-    else
-    {
-        log_error("Error occurred", ret);
-    }
-    free(plugin_uri);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_adaptor_get_last_error_message -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_get_last_error_message">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorAPI::service_adaptor_get_last_error_message"></a>
-                        <code><b><span class="methodName">service_adaptor_get_last_error_message</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets service specific last result error message.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_get_last_error_message(char **message)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    This function retrieves the last error code that be issued from plugin.
-                                    When if API function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, gets using this function.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">message</span>:
-                                        The error message that is defined service plugin SPEC
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no error message
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                message  must be released using free()
-                                Thread safe functions
-                                The result string's detail specification is defined service plugin or provider.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-ret = do_some_operations_on_plugin();
-
-if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-{
-    return;
-}
-else if (SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED == ret)
-{
-    char *message = NULL;
-    if (SERVICE_ADAPTOR_ERROR_NONE == service_adaptor_get_last_error_message(&message);
-    {
-        show_plugin_message(message);
-        free(message);
-    }
-}
-else
-{
-    log_error("Unknown error", ret);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_adaptor_get_last_result -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_get_last_result">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServiceAdaptorAPI::service_adaptor_get_last_result"></a>
-                        <code><b><span class="methodName">service_adaptor_get_last_result</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets service specific last result.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_get_last_result(int *err)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    This function retrieves the last error code that be issued from plugin.
-                                    When if API function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, gets using this function.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">err</span>:
-                                        The error number that is defined service plugin SPEC
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no error message
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                Thread safe functions
-                                The result number's detail specification is defined service plugin or provider.
-                                The detail error message can be got using <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a>
-
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-ret = do_some_operations_on_plugin();
-
-if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-{
-    return;
-}
-else if (SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED == ret)
-{
-    int err_msg = 0;
-    if (SERVICE_ADAPTOR_ERROR_NONE == service_adaptor_get_last_result(&err_msg);
-    {
-        handle_plugin_error(err_msg);
-    }
-}
-else
-{
-    log_error("Unknown error", ret);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                </div>
-            </div>
-            <!-- Service Plugin API -->
-            <div class="interfaces" id="ServicePluginAPI">
-                <h2>3. Service Plugin API</h2>
-                <div class="brief">
-                    The Service Plugin API provides functions to manage the plugin set’s property and state.
-                </div>
-                <!-- Service Plugin API Types Definition -->
-                <div class="interface" id="ServicePluginAPITypesDefinition">
-                    <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginTypesDefinition"></a>
-                    <h3>3.1. Service Plugin API Types Definition</h3>
-                    <!-- Service Plugin Handle -->
-                    <div class="interface" id ="ServicePluginAPIServicePluginHandle">
-                        <h4>3.1.1 Service Plugin Handle</h4>
-                        <div class="brief">
-                            The Plugn handle for Service Adaptor. <br>
-                            The handle can be created by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a><br>
-                            When a handle is no longer needed, use <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy()</a>
-                        </div>
-                        <pre class="webidl prettyprint">    struct _service_plugin_s* service_plugin_h  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                    </div>
-                    <!-- Service Plugin Service Type -->
-                    <div class="interface" id ="ServicePluginAPIServicePluginServiceType">
-                        <h4>3.1.2 Service Plugin Service Type</h4>
-                        <div class="brief">
-                            Type of service in plugin.
-                        </div>
-                        <pre class="webidl prettyprint">    enum service_plugin_service_type_e {"SERVICE_PLUGIN_SERVICE_AUTH", "SERVICE_PLUGIN_SERVICE_STORAGE"}; </pre>
-                        <div class="description">
-                            <ul>
-                                <li>
-                                    SERVICE_PLUGIN_SERVICE_AUTH  - Auth service type flag </li>
-                                <li>
-                                    SERVICE_PLUGIN_SERVICE_STORAGE - Storage service type flag </li>
-                            </ul>
-                        </div>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                    </div>
-                    <!-- Service Plugin API Macros -->
-                    <div class="interface" id ="ServicePluginAPIServicePluginMacros">
-                        <h4>3.1.3 Service Plugin API Macros</h4>
-                        <dl>
-                            <dt class="method" id="::ServiceAdaptorClient::SERVICE_PLUGIN_PROPERTY_APP_KEY">
-                            <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::SERVICE_PLUGIN_PROPERTY_APP_KEY"></a>
-                            <code><b><span class="methodName">SERVICE_PLUGIN_PROPERTY_APP_KEY</span></b></code>
-                            </dt>
-                            <dd>
-                                <div class="brief">
-                                    Definition for the service_plugin property Application Key
-                                </div>
-                                <div class="synopsis"><pre class="signature prettyprint">#define SERVICE_PLUGIN_PROPERTY_APP_KEY "http://tizen.org/service-adaptor/plugin/property/app_key"
-                                    </pre></div>
-                                <p><span class="version">
-                                        Since: </span>
-                                    2.4
-                                </p>
-                                <div class="description">
-                                    <p>
-                                        Definition for the service_plugin property: The application id be issued from service provider for 3<sup>rd</sup> party developer
-                                    </p>
-                                </div>
-                                <p><span class="privilegelevel">
-                                        Privilege level: </span>
-                                    public
-                                </p>
-                            </dd>
-                        </dl>
-                        <dl>
-                            <dt class="method" id="::ServiceAdaptorClient::SERVICE_PLUGIN_PROPERTY_APP_SECRET">
-                            <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::SERVICE_PLUGIN_PROPERTY_APP_SECRET"></a>
-                            <code><b><span class="methodName">SERVICE_PLUGIN_PROPERTY_APP_SECRET</span></b></code>
-                            </dt>
-                            <dd>
-                                <div class="brief">
-                                    Definition for the service_plugin property Application Secret
-                                </div>
-                                <div class="synopsis"><pre class="signature prettyprint">#define SERVICE_PLUGIN_PROPERTY_APP_SECRET  "http://tizen.org/service-adaptor/plugin/property/app_secret"
-                                    </pre></div>
-                                <p><span class="version">
-                                        Since: </span>
-                                    2.4
-                                </p>
-                                <div class="description">
-                                    <p>
-                                        Definition for the service_plugin property: The application password be issued from service provider for 3<sup>rd</sup> party developer
-                                    </p>
-                                </div>
-                                <p><span class="privilegelevel">
-                                        Privilege level: </span>
-                                    public
-                                </p>
-                            </dd>
-                        </dl>
-                        <dl>
-                            <dt class="method" id="::ServiceAdaptorClient::SERVICE_PLUGIN_PROPERTY_USER_ID">
-                            <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::SERVICE_PLUGIN_PROPERTY_USER_ID"></a>
-                            <code><b><span class="methodName">SERVICE_PLUGIN_PROPERTY_USER_ID</span></b></code>
-                            </dt>
-                            <dd>
-                                <div class="brief">
-                                    Definition for the service_plugin property User ID
-                                </div>
-                                <div class="synopsis"><pre class="signature prettyprint">#define SERVICE_PLUGIN_PROPERTY_APP_SECRET  "http://tizen.org/service-adaptor/plugin/property/app_secret"
-                                    </pre></div>
-                                <p><span class="version">
-                                        Since: </span>
-                                    2.4
-                                </p>
-                                <div class="description">
-                                    <p>
-                                        Definition for the service_plugin property: The user id for using specific service provider for 3<sup>rd</sup> party developer
-                                    </p>
-                                </div>
-                                <p><span class="privilegelevel">
-                                        Privilege level: </span>
-                                    public
-                                </p>
-                            </dd>
-                        </dl>
-                    </div>
-                </div>
-                <div class="interfaces" id="ServicePluginAPIMethods">
-                    <h3>3.2 Methods</h3>
-                    <!-- service_adaptor_create_plugin -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_adaptor_create_plugin">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_adaptor_create_plugin"></a>
-                        <code><b><span class="methodName">service_adaptor_create_plugin</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Create service plugin handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_adaptor_create_plugin(<a href="#ServiceAdaptorAPIServiceAdaptorHandle">service_adaptor_h</a> service_adaptor, const char *plugin_uri, <a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> *plugin);
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Create service plugin handle using plugin_uri
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">service_adaptor</span>:
-                                        The handle of Service Adaptor
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">plugin_uri</span>:
-                                        The specific string for use plugin, this values are set by plugin
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs.
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                plugin  must be released memory using <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy()</a> when you no longer needs plugin's
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_adaptor_h service_adaptor = NULL;
-service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-ret = service_adaptor_create(&service_adaptor);
-
-if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-{
-    service_plugin_h plugin = NULL;
-    const char *plugin_uri = "org.tizen.plugin.my_plugin";
-
-    ret = service_adaptor_create_plugin(service_adaptor, plugin_uri, &plugin);
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        do_something();
-        service_plugin_destroy(plugin);
-    }
-    else
-    {
-        log_error("Creating plugin failed", ret);
-    }
-    service_adaptor_destroy(service_adaptor);
-}
-else
-{
-    log_error("Creating Service Adaptor failed", ret);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_plugin_add_property -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_plugin_add_property">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_plugin_add_property"></a>
-                        <code><b><span class="methodName">service_plugin_add_property </span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Add Plugin Property.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_plugin_add_property(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *key, const char *value)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Add Plugin Property.
-                                    The plguin property is used for plugin's basic or optional requirement. <br>
-                                    This value is not used in Adaptor layer, but it can be uesd to important Key for plugin with service provider.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">key</span>:
-                                        The key of plugin property defined in <a href="#ServicePluginAPIServicePluginMacros">3.1.3 Service Plugin API Macros</a>
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">value</span>:
-                                        The value of plugin property that matched key
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                Some kind of property key(Not mandatory) is defined in this API (That is named to SERVICE_PLUGIN_PROPERTY_XXX) <br>
-                                If the key  already exists in the property its current value is replaced with the new value . <br>
-                                plugin  must be released memory using <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy()</a> when you no longer needs plugin's API
-
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                plugin  must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void create_plugin(service_adaptor_h service_adaptor)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    service_plugin_h plugin = NULL;
-    const char *plugin_uri = "org.tizen.plugin.my_plugin";
-
-    ret = service_adaptor_create_plugin(service_adaptor, plugin_uri, &plugin);
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        service_plugin_add_property(plugin, SERVICE_PLUGIN_PROPERTY_USER_ID, "The King");
-        do_something();
-        service_plugin_destroy(plugin);
-    }
-    else
-    {
-        log_error("Creating plugin failed", ret);
-    }
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_plugin_get_property -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_plugin_get_property">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_plugin_get_property"></a>
-                        <code><b><span class="methodName">service_plugin_get_property </span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets Plugin Property.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_plugin_get_property(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *key, char **value)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Add Plugin Property.
-                                    The plguin property is used for plugin's basic or optional requirement. <br>
-                                    This value is not used in Adaptor layer, but it can be uesd to important Key for plugin with service provider.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">key</span>:
-                                        The key of plugin property defined in <a href="#ServicePluginAPIServicePluginMacros">3.1.3 Service Plugin API Macros</a>
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">value</span>:
-                                        The value of plugin property that matched key
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no property
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                Some kind of property key(Not mandatory) is defined in this API (That is named to SERVICE_PLUGIN_PROPERTY_XXX) <br>
-                                value must be released using free()
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                plugin must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool check_plugin(service_plugin_h service_plugin)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    char *value = NULL;
-
-    ret = service_plugin_get_property(plugin, SERVICE_PLUGIN_PROPERTY_USER_ID, &value);
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        bool retVal = check_user(value);
-
-        free(value);
-        return retVal;
-    }
-    else
-    {
-        log_error("Creating plugin failed", ret);
-    }
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_plugin_remove_property -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_plugin_remove_property">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_plugin_remove_property"></a>
-                        <code><b><span class="methodName">service_plugin_remove_property</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Remove Plugin Property
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_plugin_remove_property(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *key)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Remove property that has been added before from plugin.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">key</span>:
-                                        The key of plugin property defined in <a href="#ServicePluginAPIServicePluginMacros">3.1.3 Service Plugin API Macros</a>
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                Some kind of property key (not mandatory) is defined in this API (That is named to SERVICE_PLUGIN_PROPERTY_XXX)
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                plugin must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a>
-                                The function property already set by <a href="#::ServiceAdaptorClient::service_plugin_add_property">service_plugin_add_property</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool reset_plugin(service_plugin_h service_plugin)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_plugin_remove_property(plugin, SERVICE_PLUGIN_PROPERTY_USER_ID);
-    return (SERVICE_ADAPTOR_ERROR_NONE == ret);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_plugin_start -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_plugin_start">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_plugin_start"></a>
-                        <code><b><span class="methodName">service_plugin_start</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Requests start initialization for service plugin.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_plugin_start (<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, int service_mask)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Requests start initialization for service plugin. After start is done plugin is operational and plugin functionality can be used.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">service_mask</span>:
-                                        The flag for use service plugins, this flag can be masked multiple enum (<a href="#ServicePluginAPIServicePluginServiceType">service_plugin_service_type_e</a>
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER</span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NOT_AUTHORIZED</span>
-                                        Need authorization
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT</span>
-                                        Timed out
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                service_mask  must be input using 'bit or' operation with <a href="#ServicePluginAPIServicePluginServiceType">service_plugin_service_type_e</a>
-                                - for example,<br>
-                                int  service_mask  |= SERVIE_PLUGIN_SERVICE_AUTH;<br>
-                                service_mask  |= SERVICE_PLUGIN_SERVICE_STORAGE; <br>
-                                int  ret = service_plugin_start(m_plugin , service_mask ); <br>
-                                If a program needs to stop plugin manually, use <a href="#::ServiceAdaptorClient::service_plugin_stop">service_plugin_stop()</a>.
-                                But in <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy()</a>, automatically stop service plugin
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                plugin must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_plugin_h service_plugin = NULL;
-
-create_service_plugin(&service_plugin);
-add_properties_to_plugin(service_plugin);
-
-int mask = SERVIE_PLUGIN_SERVICE_AUTH;
-
-service_plugin_start(service_plugin, mask);
-do_something();
-
-service_plugin_destroy(service_plugin);
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_plugin_stop -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_plugin_stop">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_plugin_stop"></a>
-                        <code><b><span class="methodName">service_plugin_stop</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Requests stop manually for service plugin.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_plugin_stop(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Requests stop manually for service plugin. This operation could be perform e.g. to change plugin state and start it again.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER</span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT</span>
-                                        Timed out
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN</span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If a program needs to stop plugin manually, use this function.
-                                But in <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy()</a>, automatically stop service plugin
-                                plugin must be released memory using <a href="#::ServiceAdaptorClient::service_plugin_destroy">service_plugin_destroy()</a> when you no longer needs plugin's API
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                plugin must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_plugin_h service_plugin = NULL;
-
-create_service_plugin(&service_plugin);
-add_properties_to_plugin(service_plugin);
-
-int mask = SERVIE_PLUGIN_SERVICE_AUTH;
-
-service_plugin_start(service_plugin, mask);
-
-do_something();
-
-service_plugin_stop(service_plugin);
-service_plugin_change_to_annother_user_id(service_plugin);
-service_plugin_start(service_plugin, mask);
-
-do_something();  //do the same with another user id
-
-service_plugin_destroy(service_plugin);
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_plugin_destroy -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_plugin_destroy">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_plugin_destroy"></a>
-                        <code><b><span class="methodName">service_plugin_destroy</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Stop and destroy Service Plugin.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_plugin_destroy(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <div class="description">
-                                <p>
-                                    Requests stop (if not already stopped) and destroy Service Plugin.<br>
-                                    It must called after a program no longer needs APIs of specific plugin.
-                                </p>
-                            </div>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin</span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER</span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN</span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Precondition</span></p>
-                                plugin must be issued by <a href="#::ServiceAdaptorClient::service_adaptor_create_plugin">service_adaptor_create_plugin()</a>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">service_plugin_h service_plugin = NULL;
-
-create_service_plugin(&service_plugin);
-add_properties_to_plugin(service_plugin);
-
-int mask = SERVIE_PLUGIN_SERVICE_AUTH;
-
-service_plugin_start(service_plugin, mask);
-do_something();
-
-service_plugin_destroy(service_plugin);
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                </div>
-            </div>
-            <!-- Service Plugin API -->
-            <div class="interfaces" id="StorageAPI">
-                <h2>4. Storage API</h2>
-                <div class="brief">
-                    Storage API provide functions for access and managing storage service.
-                </div>
-                <div class="interface" id="StorageAPIDefinition">
-                    <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::StorageTypesDefinition"></a>
-                    <h3>4.1. Storage API Types Definition</h3>
-                    <!-- Service storage file -->
-                    <div class="interface" id ="StorageAPIFile">
-                        <h4>4.1.1 Service storage file</h4>
-                        <div class="brief">
-                            The handle of file or directory in storage.
-                        </div>
-                        <pre class="webidl prettyprint">    struct _service_storage_file_s* service_storage_file_h</pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                    </div>
-                    <!-- Service storage file list -->
-                    <div class="interface" id ="StorageAPIFileList">
-                        <h4>4.1.2 Service storage file list</h4>
-                        <div class="brief">
-                            The list handle of file or directory in storage.
-                        </div>
-                        <pre class="webidl prettyprint">    struct _service_storage_file_list_s* service_storage_file_list_h</pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                    </div>
-                    <!-- Service storage task -->
-                    <div class="interface" id ="StorageAPIStorageTask">
-                        <h4>4.1.3 Service storage task</h4>
-                        <div class="brief">
-                            The handle of async task for storage service.
-                        </div>
-                        <pre class="webidl prettyprint">    struct _service_storage_task_s* service_storage_task_h</pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                    </div>
-                    <!-- Service storage task state -->
-                    <div class="interface" id ="StorageAPIStorageTaskState">
-                        <h4>4.1.4 Service storage task state</h4>
-                        <div class="brief">
-                            The handle of async task for storage service.
-                        </div>
-                        <pre class="webidl prettyprint">    enum service_storage_task_state_e={"SERVICE_STORAGE_TASK_IN_PROGRESS", "SERVICE_STORAGE_TASK_COMPLETED",
-                                       "SERVICE_STORAGE_TASK_CANCELED", "SERVICE_STORAGE_TASK_FAILED"};
-                        </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="description">
-                            <ul>
-                                <li>
-                                    SERVICE_STORAGE_TASK_IN_PROGRESS - The task is progressing  </li>
-                                <li>
-                                    SERVICE_STORAGE_TASK_COMPLETED - The task was completed  </li>
-                                <li>
-                                    SERVICE_STORAGE_TASK_CANCELED - The task was canceled </li>
-                                <li>
-                                    SERVICE_STORAGE_TASK_FAILED - The task was failed </li>
-
-                            </ul>
-                        </div>
-                    </div>
-                    <!-- Service storage file callback -->
-                    <div class="interface" id ="StorageAPIStorageFileCallback">
-                        <h4>4.1.5 Service storage file callback</h4>
-                        <div class="brief">
-                            Callback for <a href="#::ServiceAdaptorClient::service_storage_file_list_foreach_file">service_storage_file_list_foreach_file()</a> API
-                        </div>
-                        <pre class="webidl prettyprint">    typedef bool(*service_storage_file_cb)(<a href="#StorageAPIFile">service_storage_file_h</a> file, void *user_data)  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="parameters">
-                            <p><span class="param">Parameters:</span></p>
-                            <ul>
-                                <li class="param">
-                                    <span class="name">file</span>:
-                                    The handle of file
-                                </li>
-                                <li class="param">
-                                    <span class="name">user_data</span>:
-                                    Passed data from <a href="#::ServiceAdaptorClient::service_storage_file_list_foreach_file">service_storage_file_list_foreach_file()</a>
-                                </li>
-                            </ul>
-                        </div>
-                    </div>
-                    <!-- Service storage file list callback -->
-                    <div class="interface" id ="StorageAPIStorageFileListCallback">
-                        <h4>4.1.6 Service storage file list callback</h4>
-                        <div class="brief">
-                            Callback for <a href="#::ServiceAdaptorClient::service_storage_get_file_list">service_storage_get_file_list()</a> API
-                        </div>
-                        <pre class="webidl prettyprint">    void(* service_storage_file_list_cb)(int result, <a href="#StorageAPIFileList">service_storage_file_list_h</a> list, void *user_data)  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="parameters">
-                            <p><span class="param">Parameters:</span></p>
-                            <ul>
-                                <li class="param">
-                                    <span class="name">result</span>:
-                                    Result code for <a href="#::ServiceAdaptorClient::service_storage_get_file_list">service_storage_get_file_list()</a> (see <a href="#::ServiceAdaptorClient::ServiceErrorCode">service_adaptor_error_e</a>)
-                                    <p><span class="return">Possible value:</span></p>
-                                    <ul>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                            Successful
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                            There is no files
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT </span>
-                                            Timed out
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED </span>
-                                            Failed in Plugin internal. <br>
-                                            Error code and error message can be obtained using
-                                            <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                                            Error codes and messages are described in Service Plugin.
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN</span>
-                                            Unknown error
-                                        </li>
-                                    </ul>
-                                </li>
-                                <li class="param">
-                                    <span class="name">list</span>:
-                                    The handle of file list
-                                </li>
-                                <li class="param">
-                                    <span class="name">user_data</span>:
-                                    Passed data from <a href="#::ServiceAdaptorClient::service_storage_get_file_list">service_storage_get_file_list()</a>
-                                </li>
-                            </ul>
-                        </div>
-                    </div>
-                    <!-- Service storage result callback -->
-                    <div class="interface" id ="StorageAPIStorageResultCallback">
-                        <h4>4.1.7 Service storage result callback</h4>
-                        <div class="brief">
-                            Callback for getting async storage operation result.
-                        </div>
-                        <pre class="webidl prettyprint">    void(* service_storage_result_cb)(int result, void *user_data)  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="parameters">
-                            <p><span class="param">Parameters:</span></p>
-                            <ul>
-                                <li class="param">
-                                    <span class="name">result</span>:
-                                    Result code for storage async operation (see <a href="#::ServiceAdaptorClient::ServiceErrorCode">service_adaptor_error_e</a>)
-                                    <p><span class="return">Possible value:</span></p>
-                                    <ul>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                            Successful
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                            There is no files
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT </span>
-                                            Timed out
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED </span>
-                                            Failed in Plugin internal. <br>
-                                            Error code and error message can be obtained using
-                                            <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                                            Error codes and messages are described in Service Plugin.
-                                        </li>
-                                        <li class="returntypes">
-                                            <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN</span>
-                                            Unknown error
-                                        </li>
-                                    </ul>
-                                </li>
-                                <li class="param">
-                                    <span class="name">user_data</span>:
-                                    Passed data from request function
-                                </li>
-                            </ul>
-                        </div>
-                    </div>
-                    <!-- Service storage task progress callback -->
-                    <div class="interface" id ="StorageAPIStorageTaskProgressCallback">
-                        <h4>4.1.8 Service storage task progress callback</h4>
-                        <div class="brief">
-                            Callback for progress of storage task
-                        </div>
-                        <pre class="webidl prettyprint">    void(* service_storage_task_progress_cb)(unsigned long long progress, unsigned long long total, void *user_data)  </pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="parameters">
-                            <p><span class="param">Parameters:</span></p>
-                            <ul>
-                                <li class="param">
-                                    <span class="name">progress</span>:
-                                    The progressed amount of storage task
-                                </li>
-                                <li class="param">
-                                    <span class="name">total</span>:
-                                    The total amount of storage task
-                                </li>
-                                <li class="param">
-                                    <span class="name">user_data</span>:
-                                    Passed data from <a href="#::ServiceAdaptorClient::service_storage_set_task_progress_cb">service_storage_set_task_progress_cb</a>
-                                </li>
-                            </ul>
-                        </div>
-                    </div>
-                    <!-- Service storage task state callback -->
-                    <div class="interface" id ="StorageAPIStorageTaskStateCallback">
-                        <h4>4.1.9 Service storage task state callback</h4>
-                        <div class="brief">
-                            Callback for changing state of storage task.
-                        </div>
-                        <pre class="webidl prettyprint">    void(* service_storage_task_state_cb)(service_storage_task_state_e state, void *user_data)</pre>
-                        <p><span class="version">
-                                Since: </span>
-                            2.4
-                        </p>
-                        <div class="parameters">
-                            <p><span class="param">Parameters:</span></p>
-                            <ul>
-                                <li class="param">
-                                    <span class="name">state</span>:
-                                    The state of storage task
-                                </li>
-                                <li class="param">
-                                    <span class="name">user_data</span>:
-                                    Passed data from <a href="#::ServiceAdaptorClient::service_storage_set_task_state_changed_cb">service_storage_set_task_state_changed_cb()</a>
-                                </li>
-                            </ul>
-                        </div>
-                    </div>
-                </div>
-
-                <div class="interfaces" id="StorageAPIMethods">
-                    <h3>4.2 Methods</h3>
-                    <!-- service_storage_create_download_task -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_create_download_task">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_create_download_task"></a>
-                        <code><b><span class="methodName">service_storage_create_download_task</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Creates storage task for download file from storage.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_create_download_task(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *storage_path, const char *download_path, <a href="#StorageAPIStorageTask">service_storage_task_h</a> *task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span></p>
-                            <ul>
-                                <li> http://tizen.org/privilege/mediastorage
-                                </li>
-                                <li> http://tizen.org/privilege/externalstorage
-                                </li>
-                            </ul>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin </span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">storage_path </span>:
-                                        The source file path in storage (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">download_path </span>:
-                                        The source file path in storage (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">task</span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED </span>
-                                        Permission denied
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_STATE </span>
-                                        The handle's state is invalid
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no files
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT</span>
-                                        Timed out
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED</span>
-                                        Not supported API in this plugin
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED</span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                task  must be released memory using <a href="#::ServiceAdaptorClient::service_storage_destroy_task">service_storage_destroy_task()</a> when the task no longer run <br>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool create_task(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-    const char *storage_path = "/my_file.txt";
-    const char *download_path = "/";
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_create_download_task(plugin, storage_path, download_path, task);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        ret = service_storage_start_task(task);
-
-        if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-        {
-            return true;
-        }
-        else
-        {
-            log_error("Cannot start task", ret);
-            service_storage_destroy_task(task);
-        }
-    }
-    else
-    {
-        log_error("Cannot create task", ret);
-    }
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_create_download_thumbnail_task -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_create_download_thumbnail_task">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_create_download_thumbnail_task"></a>
-                        <code><b><span class="methodName">service_storage_create_download_thumbnail_task</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Creates storage task for download thumbnail from storage.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_create_download_thumbnail_task(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *storage_path, const char *download_path, int thumbnail_size, <a href="#StorageAPIStorageTask">service_storage_task_h</a> *task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span></p>
-                            <ul>
-                                <li> http://tizen.org/privilege/mediastorage
-                                </li>
-                                <li> http://tizen.org/privilege/externalstorage
-                                </li>
-                            </ul>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin </span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">storage_path </span>:
-                                        The source file path in storage (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">download_path </span>:
-                                        The source file path in storage (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">thumbnail_size</span>:
-                                        The size level of thumbnail, the level is defined service plugin SPEC
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">task</span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED </span>
-                                        Permission denied
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_STATE </span>
-                                        The handle's state is invalid
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no files
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT</span>
-                                        Timed out
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED</span>
-                                        Not supported API in this plugin
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED</span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If thumbnail_size  is 0 , gets default size thumbnail, the default size must be defined plugin SPEC <br>
-                                If thumbnail_size  is -1 , gets minimum size thumbnail be supported plugin <br>
-                                If thumbnail_size  is -2 , gets maximum size thumbnail be supported plugin <br>
-                                task  must be released memory using <a href="#::ServiceAdaptorClient::service_storage_destroy_task">service_storage_destroy_task()</a> when the task no longer run <br>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool download_thumbnail(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-    const char *storage_path = "/my_file.png";
-    const char *download_path = "/.thumbnails/";
-    int size = -1;
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_create_download_task(plugin, storage_path, download_path, size, task);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        ret = service_storage_start_task(task);
-
-        if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-        {
-            return true;
-        }
-        else
-        {
-            log_error("Cannot start task", ret);
-            service_storage_destroy_task(task);
-        }
-    }
-    else
-    {
-        log_error("Cannot create task", ret);
-    }
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_create_upload_task -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_create_upload_task">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_create_upload_task"></a>
-                        <code><b><span class="methodName">service_storage_create_upload_task</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Creates storage task for upload file to storage
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_create_upload_task(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *file_path, const char *upload_path, <a href="#StorageAPIStorageTask">service_storage_task_h</a> *task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span></p>
-                            <ul>
-                                <li> http://tizen.org/privilege/mediastorage
-                                </li>
-                                <li> http://tizen.org/privilege/externalstorage
-                                </li>
-                            </ul>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin </span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">file_path </span>:
-                                        The upload file path in local (Logical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">upload_path </span>:
-                                        The upload target path in storage (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">task</span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED </span>
-                                        Permission denied
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_STATE </span>
-                                        The handle's state is invalid
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA </span>
-                                        There is no files
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_TIMED_OUT</span>
-                                        Timed out
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED</span>
-                                        Not supported API in this plugin
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED</span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                task  must be released memory using <a href="#::ServiceAdaptorClient::service_storage_destroy_task">service_storage_destroy_task()</a> when the task no longer run <br>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool upload(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-    const char *upload_path = "/my_file.png";
-    const char *upload_path = "/";
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_create_upload_task (plugin, upload_path, upload_path, task);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        ret = service_storage_start_task(task);
-
-        if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-        {
-            return true;
-        }
-        else
-        {
-            log_error("Cannot start task", ret);
-            service_storage_destroy_task(task);
-        }
-    }
-    else
-    {
-        log_error("Cannot create task", ret);
-    }
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_set_task_progress_cb -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_set_task_progress_cb">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_set_task_progress_cb"></a>
-                        <code><b><span class="methodName">service_storage_set_task_progress_cb</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Sets a callback function to be invoked when progress of the task running
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_set_task_progress_cb(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task, <a href="#StorageAPIStorageTaskProgressCallback">service_storage_task_progress_cb</a> callback, void *user_data)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task  </span>:
-                                        The handle of storage task
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">callback </span>:
-                                        The callback function to register
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">user_data </span>:
-                                        The user data to be passed to the callback function
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED  </span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                                Error codes and messages are described in Service Plugin.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void task_progress_cb(unsigned long long progress, unsigned long long total, void *user_data)
-{
-    if (progress < total)
-    {
-        update_progress_bar(progress);
-    }
-    else
-    {
-        close_progress_bar();
-    }
-}
-
-void create_task(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-
-    create_download_task(task);
-    set_task_properties(task);
-
-    service_storage_set_task_progress_cb(task, task_progress_cb, NULL);
-
-    start_task(task);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_set_task_state_changed_cb -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_set_task_state_changed_cb">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_set_task_state_changed_cb"></a>
-                        <code><b><span class="methodName">service_storage_set_task_state_changed_cb</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Sets a callback function to be invoked when change of the task running state
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_set_task_state_changed_cb(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task, <a href="#StorageAPIStorageTaskStateCallback">service_storage_task_state_cb</a> callback, void *user_data)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task  </span>:
-                                        The handle of storage task
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">callback </span>:
-                                        The callback function to register
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">user_data </span>:
-                                        The user data to be passed to the callback function
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED  </span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                                Error codes and messages are described in Service Plugin.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void task_state_cb(service_storage_task_state_e state, void *user_data)
-{
-    if (SERVICE_STORAGE_TASK_COMPLETED == state)
-    {
-        ending_task_process();
-    }
-}
-
-void create_task(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-
-    create_download_task(task);
-    set_task_properties(task);
-
-    service_storage_set_task_progress_cb(task, task_progress_cb, NULL);
-    service_storage_set_task_state_changed_cb(task, task_state_cb, NULL);
-
-    start_task(task);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_unset_task_progress_cb -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_unset_task_progress_cb">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_unset_task_progress_cb"></a>
-                        <code><b><span class="methodName">service_storage_unset_task_progress_cb</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Unsets the progress callback function.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_unset_task_progress_cb(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task  </span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                This function must be called before starting task (see <a href="#::ServiceAdaptorClient::service_storage_start_task">service_storage_start_task()</a>)
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void set_state_cb_in_task(service_storage_task_h task)
-{
-    service_storage_unset_task_progress_cb(task);
-    service_storage_set_task_progress_cb(task, task_progress_cb2, NULL);
-}
-
-void create_task(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-
-    create_download_task(task);
-    set_task_properties(task);
-    set_progress_cb_in_task(task);
-
-    start_task(task);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_unset_task_state_changed_cb -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_unset_task_state_changed_cb">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_unset_task_state_changed_cb"></a>
-                        <code><b><span class="methodName">service_storage_unset_task_state_changed_cb</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Unsets the state changed callback function
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_unset_task_state_changed_cb(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task  </span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                This function must be called before starting task (see <a href="#::ServiceAdaptorClient::service_storage_start_task">service_storage_start_task()</a>)
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void set_state_cb_in_task(service_storage_task_h task)
-{
-    service_storage_unset_task_progress_cb(task);
-    service_storage_set_task_state_changed_cb(task, task_state_cb, NULL);
-}
-
-void create_task(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-
-    create_download_task(task);
-    set_task_properties(task);
-    set_state_cb_in_task(task);
-
-    start_task(task);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_start_task -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_start_task">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_start_task"></a>
-                        <code><b><span class="methodName">service_storage_start_task</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Starts storage task, asynchronously.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_start_task(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task  </span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED  </span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                                Error codes and messages are described in Service Plugin.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void create_task(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-
-    create_download_task(task);
-    set_task_properties(task);
-    set_task_callbacks(task);
-
-    service_storage_start_task(task);
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_cancel_task -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_cancel_task">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_cancel_task"></a>
-                        <code><b><span class="methodName">service_storage_cancel_task</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Cancels storage task.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_cancel_task(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task);
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task</span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED</span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                task  must be released memory using <a href="#::ServiceAdaptorClient::service_storage_destroy_task">service_storage_destroy_task()</a> when the task no longer run <br>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method.  <br>
-                                Error codes and messages are described in Service Plugin.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void cancel_task(service_storage_task_h task)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_cancel_task(task);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        service_storage_destroy_task(task);
-    }
-    else
-    {
-        log_error("Cannot cancel task", ret);
-    }
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_destroy_task -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_destroy_task">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_destroy_task"></a>
-                        <code><b><span class="methodName">service_storage_destroy_task</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Destroys storage task.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_destroy_task(<a href="#StorageAPIStorageTask">service_storage_task_h</a> task)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">task</span>:
-                                        The handle of storage task
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED</span>
-                                        Failed in Plugin internal
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN  </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method.  <br>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool upload(service_plugin_h plugin)
-{
-    service_storage_task_h task = NULL;
-    const char *upload_path = "/my_file.png";
-    const char *upload_path = "/";
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_create_upload_task (plugin, upload_path, upload_path, task);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        ret = service_storage_start_task(task);
-
-        if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-        {
-            return true;
-        }
-        else
-        {
-            log_error("Cannot start task", ret);
-            service_storage_destroy_task(task);
-        }
-    }
-    else
-    {
-        log_error("Cannot create task", ret);
-    }
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_get_file_list -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_get_file_list">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_get_file_list"></a>
-                        <code><b><span class="methodName">service_storage_get_file_list</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets file list from storage, asynchronously.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_get_file_list(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *dir_path, <a href="#StorageAPIStorageFileListCallback">service_storage_file_list_cb</a> callback, void *user_data)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin  </span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">dir_path </span>:
-                                        The dir path (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">callback </span>:
-                                        The callback for getting file list
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">user_data </span>:
-                                        The user data to be passed to the callback function
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED </span>
-                                        Permission denied
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_STATE </span>
-                                        The handle's state is invalid
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE  </span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED </span>
-                                        Not supported API in this plugin
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                For the dir_path , "/" means root path.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void file_list_cb(int result, service_storage_file_list_h list, void *user_data)
-{
-    if(SERVICE_ADAPTOR_ERROR_NONE != result)
-    {
-        log_error("Cannot get file list", ret);
-        return;
-    }
-
-    process_files_list(list);
-}
-
-void process_directory(service_plugin_h plugin, const char *dir_path)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_get_file_list(plugin, dir_path, file_list_cb, NULL);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE != ret)
-    {
-        log_error("Cannot process direcory", ret);
-    }
-}
-
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_list_get_length -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_list_get_length">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_list_get_length"></a>
-                        <code><b><span class="methodName">service_storage_file_list_get_length</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets length of the file list handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_list_get_length(<a href="#StorageAPIFileList">service_storage_file_list_h</a> list, int *length)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">list </span>:
-                                        The file list handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">length </span>:
-                                        The length of the file list handle
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void file_list_cb(int result, service_storage_file_list_h list, void *user_data)
-{
-    if(SERVICE_ADAPTOR_ERROR_NONE != result)
-    {
-        log_error("Cannot get file list", ret);
-        return;
-    }
-
-    int length;
-
-    service_storage_file_list_get_length(list, &length);
-    if (length > 0)
-    {
-        process_files_list(list);
-    }
-    else
-    {
-        log_warrning("Empty file list");
-    }
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_list_foreach_file -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_list_foreach_file">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_list_foreach_file"></a>
-                        <code><b><span class="methodName">service_storage_file_list_foreach_file</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Foreach All of the file from file list.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_list_foreach_file(<a href="#StorageAPIFileList">service_storage_file_list_h</a> list, <a href="#StorageAPIStorageFileCallback">service_storage_file_cb</a> callback, void *user_data)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">list </span>:
-                                        The file list handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">callback </span>:
-                                        The callback for foreach file
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">user_data  </span>:
-                                        Passed data to callback
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA  </span>
-                                        There is no file
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool storage_file_cb(service_storage_file_h file, void *user_data)
-{
-    bool isDir = false;
-    service_storage_file_is_dir(file, &isDir);
-    if (!isDir)
-    {
-        service_storage_file_h copy = NULL;
-        service_storage_file_clone(file, Â©);
-        do_something(copy);
-        service_storage_file_destroy(copy);
-    }
-    return true;
-}
-
-void process_file_list(service_storage_file_list_h list)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_file_list_foreach_file(list, storage_file_cb, NULL);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE != ret)
-    {
-        log_error("Foreach operation failed", ret);
-    }
-}
-
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_list_clone -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_list_clone">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_list_clone"></a>
-                        <code><b><span class="methodName">service_storage_file_list_clone</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Clones the file list handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_list_clone(<a href="#StorageAPIFileList">service_storage_file_list_h</a> src_list, <a href="#StorageAPIFileList">service_storage_file_list_h</a> *dst_list)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">src_list </span>:
-                                        The source handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">dst_list </span>:
-                                        The destination handle
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                file  must be released memory using <a href="#::ServiceAdaptorClient::service_storage_file_list_destroy">service_storage_file_list_destroy()</a> when you no longer needs this handle
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void file_list_cb(int result, service_storage_file_list_h list, void *user_data)
-{
-    if(SERVICE_ADAPTOR_ERROR_NONE != result)
-    {
-        log_error("Cannot get file list", ret);
-        return;
-    }
-
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    service_storage_file_list_h list_copy = NULL:
-
-    ret = service_storage_file_list_clone(list, &list_copy);
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        process_files(list);
-        process_files_second_iteration(list_copy);
-
-        service_storage_file_list_destroy(list_copy);
-    }
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_list_destroy -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_list_destroy">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_list_destroy"></a>
-                        <code><b><span class="methodName">service_storage_file_list_destroy</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Destroys the file list handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_list_destroy(<a href="#StorageAPIFileList">service_storage_file_list_h</a> list)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">list </span>:
-                                        The file list handle
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                It must be used for cloned file list handle
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void file_list_cb(int result, service_storage_file_list_h list, void *user_data)
-{
-    if(SERVICE_ADAPTOR_ERROR_NONE != result)
-    {
-        log_error("Cannot get file list", ret);
-        return;
-    }
-
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    service_storage_file_list_h list_copy = NULL:
-
-    ret = service_storage_file_list_clone(list, &list_copy);
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        process_files(list);
-        process_files_second_iteration(list_copy);
-
-        service_storage_file_list_destroy(list_copy);
-    }
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_clone -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_clone">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_clone"></a>
-                        <code><b><span class="methodName">service_storage_file_clone</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Clones the file handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_clone(<a href="#StorageAPIFile">service_storage_file_h</a> src_file, <a href="#StorageAPIFile">service_storage_file_h</a> *dst_file)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">src_file</span>:
-                                        The source handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">dst_file</span>:
-                                        The destination handle
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                file  must be released memory using <a href="#::ServiceAdaptorClient::service_storage_file_destroy">service_storage_file_destroy()</a> when you no longer needs this handle
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool storage_file_cb(service_storage_file_h file, void *user_data)
-{
-    bool isDir = false;
-    service_storage_file_is_dir(file, &isDir);
-    if (!isDir)
-    {
-        service_storage_file_h file_copy = NULL;
-        service_storage_file_clone(file, &file_copy);
-        do_something(file_copy);
-        service_storage_file_destroy(file_copy);
-    }
-    return true;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_get_logical_path -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_get_logical_path">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_get_logical_path"></a>
-                        <code><b><span class="methodName">service_storage_file_get_logical_path</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets logical path from file handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_get_logical_path(<a href="#StorageAPIFile">service_storage_file_h</a> file, char **path)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">file</span>:
-                                        The source handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">path</span>:
-                                        The logical path of file
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA  </span>
-                                        There is no data
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                path must be released with free() function
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool get_file_path(service_storage_file_h file, char **path)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    char *_path = NULL;
-
-    ret = service_storage_file_get_logical_path(file, &_path);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        *path = _path;
-        return true;
-    }
-    else
-    {
-        log_error("Cannot get logical path", ret);
-    }
-
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_get_physical_path -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_get_physical_path">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_get_physical_path"></a>
-                        <code><b><span class="methodName">service_storage_file_get_physical_path</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets physical path from file handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_get_physical_path(<a href="#StorageAPIFile">service_storage_file_h</a> file, char **path)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">file</span>:
-                                        The source handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">path</span>:
-                                        The physical path of file
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NO_DATA  </span>
-                                        There is no data
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                path must be released with free() function
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool get_file_physical_path(service_storage_file_h file, char **path)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    char *_path = NULL;
-
-    ret = service_storage_file_get_physical_path(file, &_path);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        *path = _path;
-        return true;
-    }
-    else
-    {
-        log_error("Cannot get logical path", ret);
-    }
-
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_get_size -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_get_size">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_get_size"></a>
-                        <code><b><span class="methodName">service_storage_file_get_size</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets size of a file.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_get_size(<a href="#StorageAPIFile">service_storage_file_h</a> file, unsigned long long *size)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">file</span>:
-                                        The source handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">size</span>:
-                                        The size of file (byte)
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool get_file_size(service_storage_file_h file, unsigned long long **size)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-    unsigned long long _size = -1;
-
-    ret = service_storage_file_get_size(file, &_size);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE == ret)
-    {
-        *size = _size;
-        return true;
-    }
-    else
-    {
-        log_error("Cannot get file size", ret);
-    }
-
-    return false;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_is_dir -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_is_dir">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_is_dir"></a>
-                        <code><b><span class="methodName">service_storage_file_is_dir</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Gets information if file handle is directory or not.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_is_dir(<a href="#StorageAPIFile">service_storage_file_h</a> file, bool *is_dir)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">file</span>:
-                                        The source handle
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">is_dir</span>:
-                                        true on directory, false on file
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool storage_file_cb(service_storage_file_h file, void *user_data)
-{
-    bool isDir = false;
-
-    service_storage_file_is_dir(file, &isDir);
-
-
-    if (!isDir)
-    {
-        do_some_file_operations(file);
-    }
-
-    return true;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_file_destroy -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_file_destroy">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_file_destroy"></a>
-                        <code><b><span class="methodName">service_storage_file_destroy</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Clones the file handle.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_file_destroy(<a href="#StorageAPIFile">service_storage_file_h</a> file)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">file</span>:
-                                        The handle of file or directory in storage
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">bool storage_file_cb(service_storage_file_h file, void *user_data)
-{
-    bool isDir = false;
-    service_storage_file_is_dir(file, &isDir);
-    if (!isDir)
-    {
-        service_storage_file_h file_copy = NULL;
-        service_storage_file_clone(file, &file_copy);
-        do_something(file_copy);
-        service_storage_file_destroy(file_copy);
-    }
-    return true;
-}
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                    <!-- service_storage_remove -->
-                    <dl>
-                        <dt class="method" id="::ServiceAdaptorClient::service_storage_remove">
-                        <a class="backward-compatibility-anchor" name="::ServiceAdaptorClient::ServicePluginAPI::service_storage_remove"></a>
-                        <code><b><span class="methodName">service_storage_remove</span></b></code>
-                        </dt>
-                        <dd>
-                            <div class="brief">
-                                Removes file or directory in storage.
-                            </div>
-                            <div class="synopsis"><pre class="signature prettyprint">int service_storage_remove(<a href="#ServicePluginAPIServicePluginHandle">service_plugin_h</a> plugin, const char *remove_path, <a href="#StorageAPIStorageResultCallback">service_storage_result_cb</a> callback, void *user_data)
-                                </pre></div>
-                            <p><span class="version">
-                                    Since: </span>
-                                2.4
-                            </p>
-                            <p><span class="privilegelevel">
-                                    Privilege level: </span>
-                                Public
-                            </p>
-                            <div class="parameters">
-                                <p><span class="param">Parameters:</span></p>
-                                <ul>
-                                    <li class="param">
-                                        <span class="name">plugin  </span>:
-                                        The handle for use Plugin APIs
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">remove_path </span>:
-                                        The target file or directory for remove (Physical path)
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">callback </span>:
-                                        The callback for getting file list
-                                    </li>
-                                    <li class="param">
-                                        <span class="name">user_data </span>:
-                                        The user data to be passed to the callback function
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="returntype">
-                                <p><span class="return">Return value:</span></p>
-                                <ul>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NONE</span>
-                                        Successful
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_PERMISSION_DENIED </span>
-                                        Permission denied
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_STATE </span>
-                                        The handle's state is invalid
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_INVALID_PARAMETER </span>
-                                        Invalid parameter
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_IPC_UNSTABLE</span>
-                                        IPC failed with Service Adaptor Daemon
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_NOT_SUPPORTED </span>
-                                        Not supported API in this plugin
-                                    </li>
-                                    <li class="returntypes">
-                                        <span class="name">SERVICE_ADAPTOR_ERROR_UNKNOWN </span>
-                                        Unknown error
-                                    </li>
-                                </ul>
-                            </div>
-                            <div class="exception">
-                                <p><span class="name">Remarks</span></p>
-                                If the function returns SERVICE_ADAPTOR_ERROR_PLUGIN_FAILED, error code and error message can be obtained using
-                                <a href="#::ServiceAdaptorClient::service_adaptor_get_last_result">service_adaptor_get_last_result()</a> and <a href="#::ServiceAdaptorClient::service_adaptor_get_last_error_message">service_adaptor_get_last_error_message()</a> method. <br>
-                                Error codes and messages are described in Service Plugin.
-                            </div>
-                            <div class="example">
-                                <span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">void file_list_cb(int result, service_storage_file_list_h list, void *user_data)
-{
-    if(SERVICE_ADAPTOR_ERROR_NONE != result)
-    {
-        log_error("Cannot get file list", ret);
-        return;
-    }
-
-    process_files_list(list);
-}
-
-void process_directory(service_plugin_h plugin, const char *dir_path)
-{
-    service_adaptor_error_e ret = SERVICE_ADAPTOR_ERROR_UNKNOWN;
-
-    ret = service_storage_get_file_list(plugin, dir_path, file_list_cb, NULL);
-
-    if (SERVICE_ADAPTOR_ERROR_NONE != ret)
-    {
-        log_error("Cannot process direcory", ret);
-    }
-}
-
-                                </pre>
-                            </div>
-                        </dd>
-                    </dl>
-                </div>
-            </div>
-        </div>
-        <div id="page-footer">
-            <div class="copyright" align="center">
-                Except as noted, this content - excluding the Code Examples - is licensed under <a href="http://creativecommons.org/licenses/by/3.0/legalcode" target="_blank">Creative Commons Attribution 3.0</a> and all of the Code Examples contained herein are licensed under <a href="https://www.tizen.org/bsd-3-clause-license" target="_blank">BSD-3-Clause</a>. <br>For details, see the <a href="https://www.tizen.org/content-license" target="_blank">Content License</a>.
-            </div>
-            <script type="text/javascript">
-
-                var _gaq = _gaq || [];
-                _gaq.push(['_setAccount', 'UA-25976949-1']);
-                _gaq.push(['_setDomainName', 'tizen.org']);
-                _gaq.push(['_trackPageview']);
-
-                (function () {
-                    var ga = document.createElement('script');
-                    ga.type = 'text/javascript';
-                    ga.async = true;
-                    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-                    var s = document.getElementsByTagName('script')[0];
-                    s.parentNode.insertBefore(ga, s);
-                })();
-
-            </script>
-        </div>
-    </body>
-</html>