Removing Convergence API 69/152169/1
authorSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Mon, 25 Sep 2017 07:32:45 +0000 (09:32 +0200)
committerSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Mon, 25 Sep 2017 07:32:45 +0000 (09:32 +0200)
segwon.han has requested to remove Convergence API.

Change-Id: I8a4cd0b6ae55a8fbeda316614ee034b2c919c6a0
Signed-off-by: Szymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
13 files changed:
org.tizen.guides/html/index.htm
org.tizen.guides/html/web/connectivity/connectivity_cover_w.htm
org.tizen.guides/html/web/connectivity/convergence_w.htm [deleted file]
org.tizen.guides/index.xml
org.tizen.training/html/web/details/app_filtering_w.htm
org.tizen.web.apireference/html/device_api/mobile/index.html
org.tizen.web.apireference/html/device_api/mobile/tizen/convergence.html [deleted file]
org.tizen.web.apireference/html/device_api/tv/index.html
org.tizen.web.apireference/html/device_api/tv/tizen/convergence.html [deleted file]
org.tizen.web.apireference/html/device_api/wearable/index.html
org.tizen.web.apireference/html/device_api/wearable/tizen/convergence.html [deleted file]
org.tizen.web.apireference/html/index.htm
org.tizen.web.apireference/index.xml

index af33a24..a97bbb0 100644 (file)
                                <li><a href="web/connectivity/nfc_w.htm" target="content">NFC</a></li>
                                <li><a href="web/connectivity/secure_element_w.htm" target="content">Secure Element Access</a></li>
                                <li><a href="web/connectivity/download_w.htm" target="content">Content Downloads</a></li>
-                               <li><a href="web/connectivity/convergence_w.htm" target="content">Convergence Services</a></li>
                        </ul>
                </li>
                <li><a href="web/messaging/messaging_cover_w.htm" target="content">Messaging</a>
index 3c34546..8d9d0af 100644 (file)
 <li><a href="download_w.htm">Content Downloads</a>
 
 <p>You can download files from the Internet. You can also monitor the download progress to keep the user informed of the status.</p></li>
-
-<li><a href="convergence_w.htm">Convergence Services</a>
-
-<p>You can establish wireless connections between applications on remote devices through device-to-device Convergence services. You can discover devices within the same network, obtain information about available device-to-device Convergence services, connect to applicable devices, and use the available services.</p></li>
 </ul>
 
 <script type="text/javascript" src="../../scripts/jquery.zclip.min.js"></script>
diff --git a/org.tizen.guides/html/web/connectivity/convergence_w.htm b/org.tizen.guides/html/web/connectivity/convergence_w.htm
deleted file mode 100644 (file)
index 1784450..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
-    <meta http-equiv="X-UA-Compatible" content="IE=9" />
-    <link rel="stylesheet" type="text/css" href="../../css/styles.css" />
-    <link rel="stylesheet" type="text/css" href="../../css/snippet.css" />
-    <script type="text/javascript" src="../../scripts/snippet.js"></script>
-    <script type="text/javascript" src="../../scripts/jquery.util.js" charset="utf-8"></script>
-    <script type="text/javascript" src="../../scripts/common.js" charset="utf-8"></script>
-    <script type="text/javascript" src="../../scripts/core.js" charset="utf-8"></script>
-    <script type="text/javascript" src="../../scripts/search.js" charset="utf-8"></script>
-<title>Convergence Services</title>
-</head>
-<body onload="prettyPrint()" style="overflow: auto;">
-
-<div id="toc-navigation">
-    <div id="profile">
-        <p><img alt="Mobile Web" src="../../images/mobile_s_w_optional.png"/> <img alt="Wearable Web" src="../../images/wearable_s_w_optional.png"/></p>
-    </div>
-
-    <div id="toc_border"><div id="toc">
-        <p class="toc-title">Dependencies</p>
-        <ul class="toc">
-            <li>Tizen 4.0 and Higher for Mobile</li>
-            <li>Tizen 4.0 and Higher for Wearable</li>
-        </ul>
-        <p class="toc-title">Content</p>
-        <ul class="toc">
-                  <li><a href="#Prerequisites">Prerequisites</a></li>
-                  <li><a href="#Discovering_Devices">Searching for Nearby Devices</a></li>
-                  <li><a href="#Communication_Service">Setting up the AppCommunicationService and Exchanging Messages</a></li>
-                  <li><a href="#Launch_App">Launching an Application Remotely</a></li>
-                  <li><a href="#App_Control">Sending an Application Control Remotely</a></li>
-        </ul>
-        <p class="toc-title">Related Info</p>
-        <ul class="toc">
-            <li><a href="../../../../org.tizen.web.apireference/html/device_api/mobile/tizen/convergence.html">Convergence API for Mobile Web</a></li>
-            <li><a href="../../../../org.tizen.web.apireference/html/device_api/wearable/tizen/convergence.html">Convergence API for Wearable Web</a></li>
-               </ul>
-    </div></div>
-</div>
-
-<div id="container"><div id="contents"><div class="content">
-<h1>Convergence Services</h1>
-
-<p>You can establish connections between different devices as well as propagate data and commands among them using a collection of device-to-device Convergence services. The Convergence services are remote functions to access and control nearby devices. If you implement an application with the Convergence API, the application can discover devices within the same network, obtain information about available device-to-device Convergence services, connect to applicable devices, and execute the services remotely, while you need no understanding of the communication details, such as connectivity type.</p>
-
-    <p>This feature is supported in mobile and wearable applications only.</p>
-
-    <p>The main features of the Convergence API include:</p>
-    <ul>
-        <li>Service discovery
-               <p>You can <a href="#Discovering_Devices">discover all Convergence services</a> supported by nearby devices.</p></li>
-        <li>Remote communication
-               <p>You can implement <a href="#Communication_Service">communication between applications</a> on remote devices.</p></li>
-        <li>Remote launch and actions
-               <p>You can <a href="#Launch_App">launch applications remotely</a>, and <a href="#App_Control">request them to take specific actions</a>.</p></li>
-    </ul>
-
-    <p>The following Convergence services are currently provided:</p>
-    <ul>
-        <li>AppCommunicationService
-            <p>You can spawn 2 types of instances: server and client. Typically, the client finds available server services through a discovery, establishes a connection with one of the servers, and launches an application on the server side. The server cannot launch an application on the client side. Both the client and server can exchange text messages and binary payloads.</p>
-<div class="note">
-       <strong>Note</strong>
-       The server for the AppCommunicationService can only be implemented on a TV device based on Tizen 3.0. You can develop a mobile or wearable client for the AppCommunicationService, if a server exists.
-</div>
-        </li>
-        <li>RemoteAppControlService
-            <p>The communication between RemoteAppControlService device instances does not involve servers. If the RemoteAppControlService is available on the device, remote applications can launch applications and send application control requests. The communication between devices begins after a discovery of the RemoteAppControlService.</p>
-        </li>
-    </ul>
-
-    <h2 id="Prerequisites">Prerequisites</h2>
-    <p>To use the Convergence API (in <a href="../../../../org.tizen.web.apireference/html/device_api/mobile/tizen/convergence.html">mobile</a> and <a href="../../../../org.tizen.web.apireference/html/device_api/wearable/tizen/convergence.html">wearable</a> applications), the application has to request permission by adding the following privileges to the <code>config.xml</code> file:</p>
-<pre class="prettyprint">
-&lt;tizen:privilege name="http://tizen.org/privilege/bluetooth"/&gt;
-&lt;tizen:privilege name="http://tizen.org/privilege/internet"/&gt;
-&lt;tizen:privilege name="http://tizen.org/privilege/d2d.datasharing"/&gt;
-</pre>
-
-    <h2 id="Discovering_Devices">Searching for Nearby Devices</h2>
-    <p>A discovery is a search for Convergence services in the same device-to-device network. To launch a discovery procedure and attempt to connect with the found service:</p>
-    <ol>
-        <li>Search for nearby devices with the <code>startDiscovery()</code> method:
-
-<pre class="prettyprint">
-var timeout = 60 * 60;
-
-try {
-    tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, timeout);
-} catch (err) {
-    console.log(err.name + ': ' + err.message);
-}
-</pre></li>
-
-    <li><p>Implement the <code>discoverySuccessCallback</code> callback defined in the first parameter of the <code>startDiscovery()</code> method.</p>
-       <p>The callback must contain 2 methods:</p>
-       <ul>
-       <li>When a nearby device is detected, the <code>onfound</code> event is triggered. The <code>device</code> parameter holds the services available on the found device. In the following example, the <code>connect()</code> method is called on the found <code>RemoteAppControlService</code>.</li>
-       <li>When the discovery is finished and no more devices are found, the <code>onfinished</code> event is triggered.</li>
-       </ul>
-
-<pre class="prettyprint">
-var discoverySuccessCallback = {
-    onfound: function(device) {
-        console.log('Found a device');
-        console.log(' - id: ' + device.id);
-        console.log(' - name: ' + device.name);
-        console.log(' - type: ' + device.type);
-        console.log(' - service amount: ' + device.services.length);
-        for (i in device.services) {
-            if (device.services[i] instanceof RemoteAppControlService) {
-                if (device.services[i].connectionState != 'CONNECTED') {
-                    device.services[i].connect(onconnected, onerror);
-                }
-            }
-        }
-    },
-
-    onfinished: function(foundDevices) {
-        console.log(' Device discovery has finished');
-        if (foundDevices.length &gt; 0) {
-            console.log(' - devices found: ' + foundDevices.length);
-        }
-    }
-};
-
-function onerror(err) {
-    console.log(err.name + ': ' + err.message);
-}
-</pre></li>
-      <li><p>When a connection is established, the <code>onconnected</code> callback is invoked with the connected <code>service</code> as a parameter:</p>
-<pre class="prettyprint">
-function onconnected(service) {
-    console.log('Connected to the service');
-}
-</pre>
-        </li>
-    </ol>
-
-
-    <h2 id="Communication_Service">Setting up the AppCommunicationService and Exchanging Messages</h2>
-<p>You can set up a server service, establish a connection between it and a client, and exchange messages.</p>
-    <h3>Launching a Server Service</h3>
-    <p>To instantiate a server service:</p>
-
-    <ol>
-        <li>Create a <code>ChannelInfo</code> object. It identifies the server and is used by the clients to address their demands. The first parameter of the <code>ChannelInfo</code> constructor is the server's application ID, set in its <code>config.xml</code> file. The second parameter is an ID set by you.
-<pre class="prettyprint">
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-</pre>
-        </li>
-        <li>Define the success and error callbacks for the server service start:
-<pre class="prettyprint">
-function onerror(err) {
-    console.log(err.name +': ' + err.message);
-}
-
-function onstarted(channel, clientInfo) {
-    console.log('Channel started');
-    console.log('channel uri: ' + channel.uri);
-    console.log('channel id: ' + channel.id);
-
-    if (clientInfo) {
-        console.log('clientInfo');
-        console.log('isHost: ' + clientInfo.isHost);
-        console.log('client id: ' + clientInfo.clientId);
-        console.log('connection time: ' + clientInfo.connectionTime);
-    }
-}
-</pre>
-        </li>
-        <li>Instantiate an <code>AppCommunicationServerService</code> object:
-<pre class="prettyprint">
-var service = new tizen.AppCommunicationServerService();
-</pre>
-        </li>
-        <li>Start the server service. In addition to the <code>ChannelInfo</code> object, you must provide the success and error callbacks defined earlier.
-<pre class="prettyprint">
-service.start(requestChannel, onstarted, onerror);
-</pre></li>
-    </ol>
-
-    <h3>Listening for Incoming Messages on the Server Side</h3>
-    <p>Applications can transfer data as <strong>payload</strong> objects, consisting of a key string and a data chunk in form of a string or binary values array.</p>
-<p>To wait for incoming messages on the server side:</p>
-    <ol>
-        <li><p>The started server service handles incoming messages through the <code>onnotify</code> callback, which is invoked when another service attempts to communicate with the server. The callback receives the sent payload and data about its sender.</p>
-<pre class="prettyprint">
-function onnotify(channel, payload, senderclientid) {
-    console.log('On service notification');
-    console.log('channel uri: ' + channel.uri);
-    console.log('channel id: ' + channel.id);
-    console.log('client id of sender: ' + senderclientid);
-    for (i in payload) {
-        console.log('payload: ' + payload[i].key + '-' + payload[i].value);
-    }
-}
-</pre></li>
-
-        <li><p>To be able to receive messages, register the <code>onnotify</code> callback with the <code>setListener()</code> method:</p>
-<pre class="prettyprint">
-service.setListener(onnotify);
-</pre>
-        <p>After the callback has been registered, all incoming data is handled by the <code>onnotify</code> callback.</p></li>
-    </ol>
-
-    <h3>Communicating with the Server</h3>
-    <p>In contrast to the server, a client service does not have to be instantiated. It can communicate with the server after discovering it.</p>
-       <p>To communicate with the server:</p>
-    <ol>
-
-        <li><p>Discover available server services on the client side:</p>
-<pre class="prettyprint">
-function onerror(err) {
-    console.log(err.name +': ' + err.message);
-}
-
-var timeout = 60 * 60;
-
-try {
-    tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, timeout);
-} catch (err) {
-    console.log(err.name + ': ' + err.message);
-}
-</pre></li>
-        <li><p>Create a <code>ChannelInfo</code> instance with the same URI and ID as the channel used on the server side. Then start the available server service and send the payload to it.</p>
-<pre class="prettyprint">
-var serverService;
-var channel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err) {
-    console.log(err.name +': ' + err.message);
-}
-
-var requestPayload = {
-    key: 'testPayload',
-    value: 'Hello!'
-};
-
-function sendSuccessCallback(channel) {
-    console.log('requestPayload sent');
-    console.log('channel uri: ' + channel.uri);
-    console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientInfo) {
-    serverService.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-var discoverySuccessCallback = {
-    onfound: function(device) {
-        for (i in device.services) {
-            if (device.services[i] instanceof AppCommunicationServerService) {
-                serverService = device.services[i];
-                device.services[i].start(channel, onstarted, onerror);
-            }
-        }
-    },
-
-    onfinished: function(foundDevices) {
-        console.log(' Device discovery has finished');
-    }
-};
-</pre></li>
-    </ol>
-    <h2 id="Launch_App">Launching an Application Remotely</h2>
-
-       <p>This use case assumes that a "targetApp0.main" application has been installed on the remote device.</p>
-
-    <p>To launch an application on a remote device:</p>
-
-    <ol>
-        <li><p>Call the <code>startDiscovery()</code> method to establish connections with remote devices:</p>
-<pre class="prettyprint">
-var discoverySuccessCallback = {
-    onfound: function(device) {
-        for (i in device.services) {
-            if (device.services[i].type === 'REMOTE_APP_CONTROL') {
-                if (device.services[i].connectionState != 'CONNECTED') {
-                    device.services[i].connect(onconnected, onerror);
-                } else {
-                    device.services[i].start(onstarted, onerror);
-                }
-            }
-        }
-    },
-
-    onfinished: function(foundDevices) {
-        console.log('Device discovery has finished');
-    }
-};
-
-function onerror(err) {
-    console.log(err.name +': ' + err.message);
-}
-
-var timeout = 60 * 60;
-
-try {
-    tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, timeout);
-} catch (err) {
-    console.log(err.name + ': ' + err.message);
-}
-</pre></li>
-        <li><p>An application on the remote device is started from the <code>onconnected</code> callback. The <code>remoteAppControlCallback</code> method handles the data sent from the remote device.</p>
-<pre class="prettyprint">
-var requestAppId = 'targetApp0.main';
-
-function remoteAppControlCallback(data) {
-    for (var i = 0; i &lt; data.length; i++) {
-        console.log('key: ' + data[i].key + 'value: ' + data[i].value[0]);
-    }
-    service.disconnect();
-}
-
-function onstarted(service) {
-    console.log('Remote app control service started');
-    service.launch(requestAppId, remoteAppControlCallback, onerror);
-}
-
-function onconnected(service) {
-    console.log('Connected to the remote app control service');
-    service.start(onstarted, onerror);
-    service.launch(requestAppId, remoteAppControlCallback, onerror);
-}
-</pre></li>
-    </ol>
-
-    <h2 id="App_Control">Sending an Application Control Remotely</h2>
-    <p>The <code>ApplicationControl</code> object is used to request applications to perform particular actions. This use case shows how to ask an image viewer to display a picture. For more information on application controls, see <a href="../../../../org.tizen.guides/html/web/app_management/app_controls_w.htm">Application Controls</a>.</p>
-    <ol>
-        <li><p>Use the <code>startDiscovery()</code> method to search for and connect to a <code>RemoteAppControlService</code>:</p>
-<pre class="prettyprint">
-var discoverySuccessCallback = {
-    onfound: function(device) {
-        for (i in device.services) {
-            if (device.services[i] instanceof RemoteAppControlService) {
-                if (device.services[i].connectionState != 'CONNECTED') {
-                    device.services[i].connect(onconnected, onerror);
-                }
-            }
-        }
-    },
-
-    onfinished: function(foundDevices) {
-        console.log(' Device discovery has finished');
-    }
-};
-
-function onerror(err) {
-    console.log(err.name +': ' + err.message);
-} try {
-    tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-} catch (err) {
-    console.log(err.name + ': ' + err.message);
-}
-</pre></li>
-    <li><p>Create the <code>ApplicationControl</code> object:</p>
-<pre class="prettyprint">
-var requestAppControl =
-    new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/view', null,
-                                 'image/jpeg', null,
-                                 [new tizen.ApplicationControlData('images', [testImgData])]);
-</pre></li>
-    <li><p>Use the <code>onconnected()</code> callback to send the application control request to the remote service. The <code>launchAppControl()</code> method takes as parameters the <code>ApplicationControl</code> object, optionally the target application ID, and a callback defining the actions to be taken on the remote service reply.</p>
-<pre class="prettyprint">
-function remoteAppControlCallback(data) {
-    for (var i = 0; i &lt; data.length; i++) {
-        console.log('key: ' + data[i].key + 'value: ' + data[i].value[0]);
-    }
-}
-
-function onconnected(service) {
-    service.launchAppControl(requestAppControl, null,
-                             remoteAppControlCallback, onerror);
-}
-</pre></li>
-    </ol>
-<script type="text/javascript" src="../../scripts/jquery.zclip.min.js"></script>
-<script type="text/javascript" src="../../scripts/showhide.js"></script>
-</div></div></div>
-
-<a class="top sms" href="#"><img src="../../images/btn_top.gif" alt="Go to top" /></a>
-
-<div id="footer">
-<p class="footer">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>.</p>
-</div>
-
-<script type="text/javascript">
-var _gaq = _gaq || [];
-_gaq.push(['_setAccount', 'UA-25976949-1']);
-_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>
-
-</body>
-</html>
index 2a0f398..f8d600c 100644 (file)
                <topic href="html/web/connectivity/nfc_w.htm" label="NFC"></topic>
                <topic href="html/web/connectivity/secure_element_w.htm" label="Secure Element Access"></topic>
                <topic href="html/web/connectivity/download_w.htm" label="Content Downloads"></topic>
-               <topic href="html/web/connectivity/convergence_w.htm" label="Convergence Services"></topic>
        </topic>
        <topic href="html/web/messaging/messaging_cover_w.htm" label="Messaging">
                <topic href="html/web/messaging/messages_w.htm" label="Messages"></topic>
index 3f95bd1..363db97 100644 (file)
         <td>4.0</td>
     </tr>
 <tr>
-<td><code>http://tizen.org/feature/convergence.d2d</code></td>
-     <td>Specify this key, if the application requires the Device-to-Device (D2D) Convergence feature, which provides the service to discover near-by devices and to communicate information and data to the remote devices.</td>
-        <td>3.0</td>
-    </tr>
-<tr>
 <td><code>http://tizen.org/feature/database.encryption</code></td>
      <td>Specify this key, if the application requires the database encryption feature.</td>
         <td>2.2.1</td>
         <td>4.0</td>
     </tr>
 <tr>
-<td><code>http://tizen.org/feature/convergence.d2d</code></td>
-     <td>Specify this key, if the application requires the Device-to-Device (D2D) Convergence feature, which provides the service to discover near-by devices and to communicate information and data to the remote devices.</td>
-        <td>3.0</td>
-    </tr>
-<tr>
 <td><code>http://tizen.org/feature/database.encryption</code></td>
      <td>Specify this key, if the application requires the database encryption feature.</td>
         <td>2.2.1</td>
index 1403beb..62d42f9 100644 (file)
                 <td>No</td>
 
                 </tr><tr><td>
-                <a href="tizen/convergence.html" data-origin="tizen" data-domain="networking" data-category="core" data-status="D" data-version="">
-                        Convergence</a></td>
-                <td>This API provides interfaces and methods for using Tizen device-to-device convergence services.</td>
-                <td>3.0</td>
-                <td>Optional</td>
-                <td>No</td>
-
-                </tr><tr><td>
                 <a href="tizen/iotcon.html" data-origin="tizen" data-domain="networking" data-category="core" data-status="D" data-version="">
                         Iotcon</a></td>
                 <td>This API provides functions for IoT (Internet of Things) connectivity.</td>
diff --git a/org.tizen.web.apireference/html/device_api/mobile/tizen/convergence.html b/org.tizen.web.apireference/html/device_api/mobile/tizen/convergence.html
deleted file mode 100755 (executable)
index ade73e9..0000000
+++ /dev/null
@@ -1,4124 +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>Convergence API</title>
-</head>
-<body id="page-content" onload="prettyPrint()">
-<div class="api" id="::Convergence">
-<div class="supported-platforms"><img class="mobile-mandatory emulator" title="Mandatory, Supported by Tizen Mobile emulator" src="mobile_s_w.png"></div>
-<div class="title"><h1>Convergence API</h1></div>
-<div class="brief">
- The Convergence API defines interfaces and methods
-for using Tizen device-to-device convergence services.
-        </div>
-<div class="description">
-        <p>
-The following functionality is provided:
-        </p>
-        <ul>
-          <li>
-Discovering nearby devices which support device-to-device services          </li>
-          <li>
-Getting device and service information          </li>
-          <li>
-Connecting and disconnecting services          </li>
-          <li>
-Starting and stopping services          </li>
-          <li>
-Sending data to services          </li>
-          <li>
-Listening to notifications from the service          </li>
-        </ul>
-        <p>
-The collection of supported device-to-device services includes:
-        </p>
-        <ul>
-          <li>
-<em>Remote App Control Service</em> - Allows launching an application on a remote device.          </li>
-          <li>
-<em>App Communication Service</em> - Allows transferring data between applications on local and remote devices.
-<br>Note that there are 'client' and 'server' implementations of this service which allows easy set-up and
-convenient handling of the data exchange process on both local and remote devices.
-For better flexibility, the data transfer occurs in named user-defined communication channels.          </li>
-        </ul>
-        <p>
-For more information on the Device-to-device Convergence features,
-see the <a href="https://developer.tizen.org/development/guides/web-application/connectivity-and-wireless/convergence-services">Convergence Services Guide</a>.
-        </p>
-        <p>
-Tizen 3.0 only supports Wi-Fi for Convergence services. More connectivity, such as BT/BLE and Wi-Fi Direct, is to be supported in further versions.
-        </p>
-       </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-        </p>
-<h2>Table of Contents</h2>
-<ul class="toc">
-<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
-<li>
-                    1.1. <a href="#DeviceId">DeviceId</a>
-</li>
-<li>
-                    1.2. <a href="#DeviceProfile">DeviceProfile</a>
-</li>
-<li>
-                    1.3. <a href="#Payload">Payload</a>
-</li>
-<li>
-                    1.4. <a href="#PayloadType">PayloadType</a>
-</li>
-<li>
-                    1.5. <a href="#ConnectionState">ConnectionState</a>
-</li>
-<li>
-                    1.6. <a href="#ServiceType">ServiceType</a>
-</li>
-</ul>
-</li>
-<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
-<li>2.1. <a href="#ChannelInfo">ChannelInfo</a>
-</li>
-<li>2.2. <a href="#ConvergenceObject">ConvergenceObject</a>
-</li>
-<li>2.3. <a href="#ConvergenceManager">ConvergenceManager</a>
-</li>
-<li>2.4. <a href="#Device">Device</a>
-</li>
-<li>2.5. <a href="#Service">Service</a>
-</li>
-<li>2.6. <a href="#AppCommunicationService">AppCommunicationService</a>
-</li>
-<li>2.7. <a href="#AppCommunicationClientService">AppCommunicationClientService</a>
-</li>
-<li>2.8. <a href="#AppCommunicationServerService">AppCommunicationServerService</a>
-</li>
-<li>2.9. <a href="#RemoteAppControlService">RemoteAppControlService</a>
-</li>
-<li>2.10. <a href="#PayloadString">PayloadString</a>
-</li>
-<li>2.11. <a href="#PayloadRawBytes">PayloadRawBytes</a>
-</li>
-<li>2.12. <a href="#ClientInfo">ClientInfo</a>
-</li>
-<li>2.13. <a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a>
-</li>
-<li>2.14. <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>
-</li>
-<li>2.15. <a href="#ConnectSuccessCallback">ConnectSuccessCallback</a>
-</li>
-<li>2.16. <a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a>
-</li>
-<li>2.17. <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>
-</li>
-<li>2.18. <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a>
-</li>
-<li>2.19. <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a>
-</li>
-<li>2.20. <a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a>
-</li>
-</ul>
-</li>
-<li>3. <a href="#api-features">Related Feature</a>
-</li>
-<li>4. <a href="#full-webidl">Full WebIDL</a>
-</li>
-</ul>
-<hr>
-<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="#ChannelInfo">ChannelInfo</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ConvergenceObject">ConvergenceObject</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ConvergenceManager">ConvergenceManager</a></td>
-<td>
-<div>void <a href="#ConvergenceManager::startDiscovery">startDiscovery</a> (<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? timeout)</div>
-<div>void <a href="#ConvergenceManager::stopDiscovery">stopDiscovery</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#Device">Device</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#Service">Service</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationService">AppCommunicationService</a></td>
-<td>
-<div>void <a href="#AppCommunicationService::start">start</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::getClientList">getClientList</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::send">send</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::stop">stop</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::setListener">setListener</a> (<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)</div>
-<div>void <a href="#AppCommunicationService::unsetListener">unsetListener</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationClientService">AppCommunicationClientService</a></td>
-<td>
-<div>void <a href="#AppCommunicationClientService::connect">connect</a> (<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationClientService::disconnect">disconnect</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationServerService">AppCommunicationServerService</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlService">RemoteAppControlService</a></td>
-<td>
-<div>void <a href="#RemoteAppControlService::start">start</a> (<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::stop">stop</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::connect">connect</a> (<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::disconnect">disconnect</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::launch">launch</a> (<a href="application.html#ApplicationId">ApplicationId</a> appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::launchAppControl">launchAppControl</a> (<a href="application.html#ApplicationControl">ApplicationControl</a> appControl, optional <a href="application.html#ApplicationId">ApplicationId</a>? appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#PayloadString">PayloadString</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#PayloadRawBytes">PayloadRawBytes</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ClientInfo">ClientInfo</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a></td>
-<td>
-<div>void <a href="#DiscoverySuccessCallback::onfound">onfound</a> (<a href="#Device">Device</a> device)</div>
-<div>void <a href="#DiscoverySuccessCallback::onfinished">onfinished</a> (<a href="#Device">Device</a>[] foundDevices)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlCallback">RemoteAppControlCallback</a></td>
-<td>
-<div>void <a href="#RemoteAppControlCallback::onsuccess">onsuccess</a> (optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data)</div>
-<div>void <a href="#RemoteAppControlCallback::onfailure">onfailure</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#ConnectSuccessCallback">ConnectSuccessCallback</a></td>
-<td><div>void <a href="#ConnectSuccessCallback::onsuccess">onsuccess</a> (<a href="#Service">Service</a> service)</div></td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a></td>
-<td><div>void <a href="#RemoteAppControlStartCallback::onsuccess">onsuccess</a> (<a href="#Service">Service</a> service)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a></td>
-<td><div>void <a href="#AppCommunicationSuccessCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a></td>
-<td><div>void <a href="#AppCommunicationStartCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a></td>
-<td><div>void <a href="#AppCommunicationClientListCallback::onsuccess">onsuccess</a> (<a href="#ClientInfo">ClientInfo</a>[] clients)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a></td>
-<td><div>void <a href="#AppCommunicationListenerCallback::onnotify">onnotify</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId)</div></td>
-</tr>
-</tbody>
-</table>
-<div class="typedefs" id="typedefs-section">
-<h2>1. Type Definitions</h2>
-<div class="typedef" id="DeviceId">
-<a class="backward-compatibility-anchor" name="::Convergence::DeviceId"></a><h3>1.1. DeviceId</h3>
-<div class="brief">
- The type of the remote device identifier.
-          </div>
-<pre class="webidl prettyprint">    typedef DOMString DeviceId;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="enum" id="DeviceProfile">
-<a class="backward-compatibility-anchor" name="::Convergence::DeviceProfile"></a><h3>1.2. DeviceProfile</h3>
-<div class="brief">
- Enumeration of the remote device profile.
-          </div>
-<pre class="webidl prettyprint">    enum DeviceProfile {"MOBILE", "WEARABLE", "TV"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="typedef" id="Payload">
-<a class="backward-compatibility-anchor" name="::Convergence::Payload"></a><h3>1.3. Payload</h3>
-<div class="brief">
- The type of payload item. An item is a key-value pair. The value may be either a string or an array of raw bytes.
-          </div>
-<pre class="webidl prettyprint">    typedef (<a href="#PayloadString">PayloadString</a> or <a href="#PayloadRawBytes">PayloadRawBytes</a>) Payload;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="enum" id="PayloadType">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadType"></a><h3>1.4. PayloadType</h3>
-<div class="brief">
- Enumeration of payload types.
-          </div>
-<pre class="webidl prettyprint">    enum PayloadType{"STRING", "RAW_BYTES"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-STRING - The payload key-value value is a string.            </li>
-            <li>
-RAW_BYTES - The payload key-value value is a byte array.            </li>
-          </ul>
-         </div>
-</div>
-<div class="enum" id="ConnectionState">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectionState"></a><h3>1.5. ConnectionState</h3>
-<div class="brief">
- Enumeration of service connection states.
-          </div>
-<pre class="webidl prettyprint">    enum ConnectionState{"CONNECTED", "NOT_CONNECTED", "CONNECTING"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-CONNECTED - Connected state.             </li>
-            <li>
-DISCONNECTED - Not connected state.             </li>
-            <li>
-CONNECTING - Connecting state.             </li>
-          </ul>
-         </div>
-</div>
-<div class="enum" id="ServiceType">
-<a class="backward-compatibility-anchor" name="::Convergence::ServiceType"></a><h3>1.6. ServiceType</h3>
-<div class="brief">
- Enumeration of service type.
-          </div>
-<pre class="webidl prettyprint">    enum ServiceType{"APP_COMM_CLIENT", "APP_COMM_SERVER", "REMOTE_APP_CONTROL"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-APP_COMM_CLIENT - Application communication client service.             </li>
-            <li>
-APP_COMM_SERVER - Application communication server service.             </li>
-            <li>
-REMOTE_APP_CONTROL - Remote application control service.             </li>
-          </ul>
-         </div>
-</div>
-</div>
-<div class="interfaces" id="interfaces-section">
-<h2>2. Interfaces</h2>
-<div class="interface" id="ChannelInfo">
-<a class="backward-compatibility-anchor" name="::Convergence::ChannelInfo"></a><h3>2.1. ChannelInfo</h3>
-<div class="brief">
- The channel info interface that specifies the server application which a client application wants to connect with.
-          </div>
-<pre class="webidl prettyprint">    [Constructor(DOMString uri, DOMString id)]
-    interface ChannelInfo {
-      attribute DOMString uri;
-      attribute DOMString id;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The channelinfo is composed of a URI and a channel ID which is used in <a href="convergence.html#AppCommunicationService">App Communication</a> services.
-The channelinfo URI is a URI for an application on the server side.
-The channelinfo ID value is defined by the developer.
-          </p>
-         </div>
-<p><span class="remark"> Remark: </span>
- We assume that the server side app URI is known. For example, either client and server side apps are both developed by the same developer or the server app URI is available from other sources.
-          </p>
-<div class="constructors">
-<h4 id="ChannelInfo::constructor">Constructors</h4>
-<dl>
-<pre class="webidl prettyprint">ChannelInfo(DOMString uri, DOMString id);</pre>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Assume that the "targetApp0.main" application has been installed on remote device */
-var channel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-</pre>
-</div>
-</dl>
-</div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="ChannelInfo::uri">
-<span class="attrName"><span class="type">DOMString </span><span class="name">uri</span></span><div class="brief">
- The uri of the channel.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ChannelInfo::id">
-<span class="attrName"><span class="type">DOMString </span><span class="name">id</span></span><div class="brief">
- The identifier of the channel.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="ConvergenceObject">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceObject"></a><h3>2.2. ConvergenceObject</h3>
-<div class="brief">
- The <em>ConvergenceObject</em> interface defines what is
-instantiated by the <em>Tizen</em> object from the Tizen platform.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ConvergenceObject {
-        readonly attribute <a href="#ConvergenceManager">ConvergenceManager</a> convergence;
-    };</pre>
-<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ConvergenceObject">ConvergenceObject</a>;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The <em>tizen.convergence</em> object allows access to
-Tizen device-to-device convergence API.
-          </p>
-         </div>
-</div>
-<div class="interface" id="ConvergenceManager">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager"></a><h3>2.3. ConvergenceManager</h3>
-<div class="brief">
- The <em>ConvergenceManager</em> interface provides access to the
-<em>convergence</em> object.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ConvergenceManager {
-
-        void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional unsigned long? timeout) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stopDiscovery() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The device-to-device convergence manager allows discovering available
-nearby devices, which support device-to-device services.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="ConvergenceManager::startDiscovery">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager::startDiscovery"></a><code><b><span class="methodName">startDiscovery</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts discovery of nearby devices.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? timeout);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method initiates the device discovery procedure.
-Depending on the progress of this procedure the following methods
-are invoked:
-            </p>
-            <ul>
-              <li>
-<a href="convergence.html#DiscoverySuccessCallback::onfound">onfound()</a> - when a device is found.
-This method is invoked with the device
-information of
-<a href="convergence.html#Device">Device</a> type.
-If no device is found, this method will never be invoked.              </li>
-              <li>
-<a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> - when a discovery procedure is finished.
-This method is invoked
-with the list of discovered device information.              </li>
-            </ul>
-            <p>
-The discovery procedure can be canceled anytime, by calling
-<a href="convergence.html#ConvergenceManager::stopDiscovery">stopDiscovery()</a> in
-the <em>ConvergenceManager</em>.
-<br>Note the <a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> discovery
-callback will be invoked.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The callback to invoke each time the device is
-found. The callback will be invoked also when the discovery
-procedure has finished.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure of device
-discovery.
-                </li>
-          <li class="param">
-<span class="name">timeout</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- Duration of discovery procedure in seconds. If this
-value is omitted or <em>null</em> is passed, the default timeout
-is 5 seconds.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-discovery procedure has started already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Handling device discovery results */
-var discoveryCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      /* Do something with the discovered device */
-      /* If desired device is found, stop discovery with following call */
-      tizen.convergence.stopDiscovery();
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log('Device discovery has finished');
-   }
-};
-
-/* Running device discovery procedure */
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoveryCallback, function(err)
-   {
-      console.log(err.name + ': ' + err.message);
-   }, 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- </pre>
-</div>
-</dd>
-<dt class="method" id="ConvergenceManager::stopDiscovery">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager::stopDiscovery"></a><code><b><span class="methodName">stopDiscovery</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops discovery of nearby devices.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stopDiscovery();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops an ongoing discovery procedure.
-            </p>
-           </div>
-<p><span class="remark"> Remark: </span>
- Device discovery is a heavyweight procedure, so it may be
-useful to stop discovery when the required device is found.
-<br>Note this method triggers the <a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> discovery
-callback.
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a> code example.
-            </p>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
- with error type InvalidStateError, if the
-discovery procedure has not started yet.
-                </p></li></ul>
-</li></ul>
-        </div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="Device">
-<a class="backward-compatibility-anchor" name="::Convergence::Device"></a><h3>2.4. Device</h3>
-<div class="brief">
- The <em>Device</em> interface provides access to the remote
-device's properties.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface Device {
-
-        readonly attribute <a href="#DeviceId">DeviceId</a> id;
-
-        readonly attribute DOMString name;
-
-        readonly attribute <a href="#DeviceProfile">DeviceProfile</a> type;
-
-        readonly attribute <a href="#Service">Service</a>[] services;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers access to remote device information, such as the unique
-identifier, name, profile type and list of provided services.
-          </p>
-          <p>
-<br>Note, device ID and device type are defined in the platform, and the developer cannot change it.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="Device::id">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DeviceId </span><span class="name">id</span></span><div class="brief">
- The unique device ID.
-<br>Note the device ID is a unique identifier string, generated with following rule.
-If the Remote Server is installed on the device (e.g. TV),
-then the device ID is assigned by application communication server service.
-Usually it has a format of service name and version. Otherwise (e.g. mobile or wearable),
-the device ID is device MAC address.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::name">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
- The device name.
-<br>Note device name is one that is set in the Settings app (Settings&gt;About Devices&gt;Device Name).
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::type">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DeviceProfile </span><span class="name">type</span></span><div class="brief">
- The device profile type.
-<br>Note Device type represents the <a href="https://www.tizen.org/about">profile of the device</a>,
-such as “TV”, “Mobile” or “Wearable”.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::services">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">Service[]
-                      </span><span class="name">services</span></span><div class="brief">
- The list of services, available on the device.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="Service">
-<a class="backward-compatibility-anchor" name="::Convergence::Service"></a><h3>2.5. Service</h3>
-<div class="brief">
- The <em>Service</em> interface is a base interface for all
-device-to-device services.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface Service {
-
-        readonly attribute <a href="#ConnectionState">ConnectionState</a> connectionState;
-
-        readonly attribute <a href="#ServiceType">ServiceType</a> type;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface defines common property for all device-to-device services
-          </p>
-         </div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul><li class="attribute" id="Service::connectionState">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">ConnectionState </span><span class="name">connectionState</span></span><div class="brief">
- The service connection state.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Service::type">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">ServiceType </span><span class="name">type</span></span><div class="brief">
- The service type.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="AppCommunicationService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService"></a><h3>2.6. AppCommunicationService</h3>
-<div class="brief">
- The <em>AppCommunicationService</em> interface defines the base interface
-of both application communication
-<a href="convergence.html#AppCommunicationClientService">Client</a> and
-<a href="convergence.html#AppCommunicationServerService">Server</a> services
-and specifies common service features, such as start, stop, send, listener etc.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface AppCommunicationService : <a href="#Service">Service</a> {
-
-        void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#Payload">Payload</a>[] payload,
-            <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)
-            raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void unsetListener();
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-App Communication Service allows transferring data between apps on local and remote devices.
-The App Communication Service relies on a Remote Server. The initialization and execution of a server app
-(the app on the side with the Remote Server, e.g. TV) and a client app (e.g. an app on a mobile or wearable device)
-are slightly different. Furthermore, the client app can remotely launch an app on the server side or connect to an
-already running server app, but the reverse way is impossible. More than one client can be connected to a server app.
-For example, multiple players on mobile devices can connect to a game application on a TV which takes a role of a server.
-Both client and server side apps can send payloads and listen to each other.
-          </p>
-          <p>
-<br>Note there are <a href="convergence.html#AppCommunicationClientService">client</a> and
-<a href="convergence.html#AppCommunicationServerService">server</a> implementations
-of this service for both local and remote devices. For better flexibility, the data transfer occurs in a user-defined
-<a href="convergence.html#ChannelInfo">ChannelInfo</a>.
-          </p>
-          <p>
-These interfaces offer the following service features:
-          </p>
-          <ul>
-            <li>
-Starting and stopping the service            </li>
-            <li>
-Sending payloads to the service            </li>
-            <li>
-Listening to remote service notifications            </li>
-            <li>
-Getting the list of clients that are connected to the service            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationService::start">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::start"></a><code><b><span class="methodName">start</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method starts the channel of the service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidStateError: If the service has already started the channel. Note some services don't require a connection and disconnection procedures              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method for application communication client service, the service must be connected with the
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-<br>Note ChannelInfo in the application communication service specifies a server app which a client wants to connect with.
-ChannelInfo URI is a URI of the server side app, while ChannelInfo ID is a developer-defined value.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(channelinfo, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channelinfo.uri);
-   console.log('channel id: ' + channelinfo.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-/* Create an instance of application communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(channelinfo, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channelinfo.uri);
-   console.log('channel id: ' + channelinfo.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::getClientList">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::getClientList"></a><code><b><span class="methodName">getClientList</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Get the client lists connected to the channel
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected and
-started with
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> and
-<a href="convergence.html#AppCommunicationService::start">start()</a> methods
-correspondingly.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess(clientinfolist)
-{
-   console.log('get client list');
-   for (i in clientinfolist)
-   {
-      console.log('isHost: ' + clientinfolist[i].isHost);
-      console.log('client id: ' + clientinfolist[i].clientId);
-      console.log('connection time: ' + clientinfolist[i].connectionTime);
-   }
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri' + channel.uri);
-   console.log('channel id ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   service.getClientList(requestChannel, onsuccess, onerror);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- get client list
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- isHost: false
- client id: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connection time: 1420163913807
- isHost: false
- client id: c13adb22-5423-22e4-5d8q-adf872d4q889
- connection time: 1420163913125
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess(clientinfolist)
-{
-   console.log('get client list');
-   for (i in clientinfolist)
-   {
-      console.log('isHost: ' + clientinfolist[i].isHost);
-      console.log('client id: ' + clientinfolist[i].clientId);
-      console.log('connection time: ' + clientinfolist[i].connectionTime);
-   }
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri' + channel.uri);
-   console.log('channel id ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   clientService.getClientList(requestChannel, onsuccess, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- get client list
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- isHost: false
- client id: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connection time: 1420163913807
- isHost: false
- client id: c13adb22-5423-22e4-5d8q-adf872d4q889
- connection time: 1420163913125
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::send">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::send"></a><code><b><span class="methodName">send</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends a payload to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#AppCommunicationService::start">start()</a> code example.
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected and
-started with
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> and
-<a href="convergence.html#AppCommunicationService::start">start()</a> methods
-correspondingly.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">payload</span>:
- The payload containing request data.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function sendSuccessCallback(channelinfo)
-{
-   console.log('requestPayload sent');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by Multi Screen server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   /* Send data to the remote service */
-   service.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function sendSuccessCallback(channel)
-{
-   console.log('requestPayload sent');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   /* Send data to the remote service */
-   clientService.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               clientService = device.service[i];
-               clientService.start(requestChannel, onstarted, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::stop">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::stop"></a><code><b><span class="methodName">stop</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops the specified channel of the service.
-<br>Note When all clients have stopped using the service channel, the server side automatically terminates the application.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelInfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel1 = new tizen.ChannelInfo('targetApp0.main', 'chA');
-var requestChannel2 = new tizen.ChannelInfo('targetApp1.main', 'chB');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped(channel)
-{
-   console.log('Channel stopped');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('clienti id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   if (channel id == 'chB')
-   {
-      service.stop(requestChannel2, onstopped);
-   }
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel1, onstarted, onerror);
-service.start(requestChannel2, onstarted, onerror);
-</pre>
-</div>
-
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre>
-Channel started
-channel uri: targetApp0.main
-channel id: chA
-clientinfo
-isHost: true
-clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
-connectionTime: 1420163913035
-Channel started
-channel uri: targetApp1.main
-channel id: chB
-clientinfo
-isHost: true
-clientId: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
-connectionTime: 1420163913807
-Channel stopped
-channel uri: targetApp1.main
-channel id: chB
-</pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel1 = new tizen.ChannelInfo('targetApp0.main', 'chA');
-var requestChannel2 = new tizen.ChannelInfo('targetApp1.main', 'chB');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped(channel)
-{
-   console.log('Channel stopped');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   if (channel id == 'chB')
-   {
-      clientService.stop(requestChannel2, onstopped);
-   }
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- Channel started
- channel uri: targetApp1.main
- channel id: chB
- clientinfo
- isHost: false
- clientId: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connectionTime: 1420163913807
- Channel stopped
- channel uri: targetApp1.main
- channel id: chB
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::setListener">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::setListener"></a><code><b><span class="methodName">setListener</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Registers the service listener.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">listenerCallback</span>:
- The method to invoke when a service
-notification is received.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li></ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onnotify(channel, payload, senderclientid)
-{
-   console.log('On service notification');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   /* clientid of the sender of the payload */
-   console.log('client id of sender: ' + senderclientid);
-   for (i in payload)
-   {
-      console.log('payload: ' + payload[i].key + '-' + payload[i].value);
-   }
-   /* If using unsetListener, unregisters the listener and stops receiving notifications from the service */
-   service.unsetListener();
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by Multi Screen server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-/* Register listener to receive notifications from remote service */
-service.setListener(onnotify);
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- On service notification
- channel uri: targetApp0.main
- channel id: chA
- client id of sender: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- payload: msg-hello
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onnotify(channel, payload, senderclientid)
-{
-   console.log('On service notification');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   /* clientid of the sender of the payload */
-   console.log('client id of sender: ' + senderclientid);
-   for (i in payload)
-   {
-      console.log('payload ' + payload[i].key + ': ' + payload[i].value);
-   }
-   /* If using unsetListener, unregisters the listener and stops receiving notifications from the service */
-   clientService.unsetListener();
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      service.start(requestChannel, onstarted, onerror);
-      /* Register listener to receive notifications from remote service */
-      service.setListener(onnotify);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- On service notification
- channel uri: targetApp0.main
- channel id: chA
- client id of sender: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- payload: msg-hello
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::unsetListener">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::unsetListener"></a><code><b><span class="methodName">unsetListener</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Unregisters the service listener.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void unsetListener();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#AppCommunicationService::setListener">setListener()</a> code example.
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationClientService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService"></a><h3>2.7. AppCommunicationClientService</h3>
-<div class="brief">
- The <em>AppCommunicationClientService</em> interface provides access to
-application communication client service features.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface AppCommunicationClientService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following service features:
-          </p>
-          <ul>
-            <li>
-Connecting and disconnecting the remote service            </li>
-            <li>
-Reading immediate data of the remote service            </li>
-            <li>
-Listening to remote service update notifications            </li>
-            <li>
-Sending data to the remote service            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationClientService::connect">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService::connect"></a><code><b><span class="methodName">connect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Connects to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Makes physical connection such as Wi-Fi or Bluetooth to the
-service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Connecting is only supported for services on devices not connected via WiFi.
-For devices connected via WiFi, <a href="convergence.html#ConnectionState">connectionState</a> will always be <em>"CONNECTED"</em>.
-            </p>
-<p><span class="remark"> Remark: </span>
- App developers do not need to specify the connectivity type
-explicitly. The framework automatically determines which connectivity
-to use in a selected service.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is connected already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-   }
-   else if (service.type === "REMOTE_APP_CONTROL")
-   {
-      console.log('Connected to the remote app control service');
-   }
-   service.disconnect();
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         else if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Connected to the service
- Connected to the remote app control service
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationClientService::disconnect">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService::disconnect"></a><code><b><span class="methodName">disconnect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Disconnects the connected service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Disconnect physical connection with device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Disconnecting is only supported for services on devices not connected via WiFi.
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at <a href="convergence.html#AppCommunicationClientService::connect">connect()</a> code example.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service was not connected yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationServerService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationServerService"></a><h3>2.8. AppCommunicationServerService</h3>
-<div class="brief">
- The <em>AppCommunicationServerService</em> interface provides access to
-application communication server service features.
-          </div>
-<pre class="webidl prettyprint">    [Constructor()]
-    interface AppCommunicationServerService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following service features:
-          </p>
-          <ul>
-            <li>
-Instantiating the service            </li>
-            <li>
-Reading immediate data of the service            </li>
-            <li>
-Listening to service update notifications            </li>
-            <li>
-Sending data for the service            </li>
-          </ul>
-         </div>
-<p class="warning"><b>Warning:</b>
- AppCommunicationServerService API is supported on Tizen 3.0 TV product only.
-          </p>
-<p><span class="remark"> Remark: </span>
- application server service is used without discovery phase.
-The developer should instantiate a standalone service object using
-the constructor.
-          </p>
-
-      <div class="constructors">
-<h4 id="AppCommunicationServerService::constructor">Constructors</h4>
-<dl>
-<pre class="webidl prettyprint">AppCommunicationServerService();</pre>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Create an instance of application communication server service object */
-var service = new tizen.AppCommunicationServerService();
-</pre>
-</div>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlService">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService"></a><h3>2.9. RemoteAppControlService</h3>
-<div class="brief">
- The <em>RemoteAppControlService</em> interface provides access to
-remote application control service features.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface RemoteAppControlService : <a href="#Service">Service</a> {
-        void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl,
-            optional <a href="application.html#ApplicationId">ApplicationId</a>? appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following device-to-device service features:
-          </p>
-          <ul>
-            <li>
-Connecting and disconnecting the service            </li>
-            <li>
-Sending app control data to the service            </li>
-            <li>
-Receiving app control results            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlService::start">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::start"></a><code><b><span class="methodName">start</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts and initiates remote service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method starts the remote app control service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p><span class="remark"> Remark : </span>
- Before using this method for remote application service, the service must be connected with the
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-the service is already started.
-                </p></li>
-<li class="list"><p>
- with error type AbortError, if the
-other error occurs during start.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(service)
-{
-   console.log('Remote app control service started');
-   service.disconnect();
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               device.services[i].start(onstarted, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
-&lt;&lt; Found a device
-   - id: de2bea-ddvia
-   - name : deviceA
-   - type : TV
-   - service amount: 2
-&lt;&lt; Device discovery has finished
-Connected to the remote app control service
-Remote app control service started
-</pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::stop">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::stop"></a><code><b><span class="methodName">stop</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops remote service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops and release internally allocated resources for remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-the service is not started yet.
-                </p></li>
-<li class="list"><p>
- with error type AbortError, if the
-other error occurs during start.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped()
-{
-   console.log('Remote App Control service stopped');
-   /* Disconnect */
-   service.disconnect();
-}
-
-function onstarted(service)
-{
-   console.log('Remote App Control service started');
-   /* Stop the service */
-   service.stop(onstopped, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               device.services[i].start(onstarted, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
-&lt;&lt; Found a device
-   - id: de2bea-ddvia
-   - name : deviceA
-   - type : TV
-   - service amount: 2
-&lt;&lt; Device discovery has finished
-Connected to the remote app control service
-Remote App Control service started
-Remote App Control service stopped
-</pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::connect">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::connect"></a><code><b><span class="methodName">connect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Connects to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Makes physical connection such as Wi-Fi or Bluetooth to remote
-device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Connecting is only supported for services on devices not connected via WiFi.
-For devices connected via WiFi, <a href="convergence.html#ConnectionState">connectionState</a> will always be <em>"CONNECTED"</em>.
-            </p>
-<p><span class="remark"> Remark: </span>
- App developers do not need to specify the connectivity type
-explicitly. Framework automatically determines which connectivity
-to use in a selected service.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is connected already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.disconnect();
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the remote app control service
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::disconnect">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::disconnect"></a><code><b><span class="methodName">disconnect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Disconnects the connected service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Disconnect physical connection with device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Disconnecting is only supported for services on devices not connected via WiFi.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service was not connected yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function ondisconnected()
-{
-   console.log('Disconnected to the service');
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState == "CONNECTED")
-            {
-               device.services[i].disconnect(ondisconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log('Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Disconnected to the service
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::launch">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::launch"></a><code><b><span class="methodName">launch</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends the given application ID to launch an application on the remote device.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method sends an application ID to the remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an
-invalid value              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected
-with
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method
-and started with <a href="convergence.html#RemoteAppControlService::start">start()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">appId</span>:
- The target app id.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is not started yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Assume that the "targetApp0.main" application has been installed on remote device */
-var requestAppId = 'targetApp0.main';
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess()
-{
-   console.log('The application has launched successfully');
-}
-
-function onstarted(service)
-{
-   console.log('Service started');
-
-   /* Launching server app remotely */
-   service.launch(requestAppId, remoteAppControlCallback, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   /* Start the service */
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Service started
- The application has launched successfully
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::launchAppControl">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::launchAppControl"></a><code><b><span class="methodName">launchAppControl</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends an app control to launch an application on the remote device.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl, optional <a href="application.html#ApplicationId">ApplicationId</a>? appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method sends an app control to the remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected with
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method
-and started with <a href="convergence.html#RemoteAppControlService::start">start()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">appControl</span>:
- The app control data.
-                </li>
-          <li class="param">
-<span class="name">appId</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The target app id.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-          <li class="param">
-<span class="name">replyCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke when the application gets back result from the remote service.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is not started yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-var requestAppControl = new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/view',
-                                                     null, 'image/jpeg', null,
-                                                     [new tizen.ApplicationControlData('images', [testImgData])]);
-
-function onsuccess()
-{
-   console.log('Launch application control succeed');
-}
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-var remoteAppControlCallback =
-{
-   onsuccess: function(data)
-   {
-      console.log('On remote app control service reply');
-      for(var i = 0; i &lt; data.length; i++)
-      {
-         console.log("key : " + data[i].key + "value : " + data[i].value[0]);
-      }
-   },
-   /* Callee returned failure */
-   onfailure: function()
-   {
-      console.log('The launch application control failed');
-   }
-}
-
-function onstarted(service)
-{
-   console.log('Service started');
-
-   /* Send data to the remote service */
-   service.launchAppControl(requestAppControl, null, onsuccess, onerror, remoteAppControlCallback);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-
-   /* Start the service */
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Service started
- </pre>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="dictionary" id="PayloadString">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadString"></a><h3>2.10. PayloadString</h3>
-<div class="brief">
- The dictionary that specifies a payload string for the
-device-to-device service.
-          </div>
-<pre class="webidl prettyprint">    dictionary PayloadString {
-        DOMString key;
-
-        DOMString value;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-<em>PayloadString</em> is a key-value pair. Both the key and value are strings.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Dictionary members</h4>
-<dl>
-<dt class="member" id="PayloadString::key"><span class="attrName">DOMString key</span></dt>
-<dd>
-<div class="brief">
- The name of the payload string.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-<dt class="member" id="PayloadString::value"><span class="attrName">DOMString value</span></dt>
-<dd>
-<div class="brief">
- The value of the payload string.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="dictionary" id="PayloadRawBytes">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadRawBytes"></a><h3>2.11. PayloadRawBytes</h3>
-<div class="brief">
- The dictionary that specifies a raw bytes payload for the
-device-to-device service.
-          </div>
-<pre class="webidl prettyprint">    dictionary PayloadRawBytes {
-        DOMString key;
-
-        byte[] value;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-<em>PayloadRawBytes</em> is a key-value pair. The key is a string and the value is a byte
-array which is to be delivered to a remote service.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Dictionary members</h4>
-<dl>
-<dt class="member" id="PayloadRawBytes::key"><span class="attrName">DOMString key</span></dt>
-<dd>
-<div class="brief">
- The name of the payload byte array.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-<dt class="member" id="PayloadRawBytes::value"><span class="attrName">byte[] value</span></dt>
-<dd>
-<div class="brief">
- The bytes of the payload byte array.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="ClientInfo">
-<a class="backward-compatibility-anchor" name="::Convergence::ClientInfo"></a><h3>2.12. ClientInfo</h3>
-<div class="brief">
- The interface specifies client information.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ClientInfo {
-        readonly attribute boolean isHost;
-
-        readonly attribute DOMString clientId;
-
-        readonly attribute long connectionTime;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="ClientInfo::isHost">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">boolean </span><span class="name">isHost</span></span><div class="brief">
- The value indicating if the service is local (true) or remote (false).
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ClientInfo::clientId">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DOMString </span><span class="name">clientId</span></span><div class="brief">
- The unique client id.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ClientInfo::connectionTime">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">long </span><span class="name">connectionTime</span></span><div class="brief">
- The connection time in milliseconds.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="DiscoverySuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback"></a><h3>2.13. DiscoverySuccessCallback</h3>
-<div class="brief">
- The <em>DiscoverySuccessCallback</em> interface defines the
-success method for <a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a>.
-          </div>
-<pre class="webidl prettyprint">    [Callback, NoInterfaceObject] interface DiscoverySuccessCallback {
-
-        void onfound(<a href="#Device">Device</a> device);
-
-        void onfinished(<a href="#Device">Device</a>[] foundDevices);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-Specifies the type of function passed to <em>ConvergenceManager.startDiscovery()</em>.
-Called when device providing device-to-device service is discovered nearby.
-          </p>
-          <p>
-A usage example can be found in the
-<a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a> code example.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="DiscoverySuccessCallback::onfound">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback::onfound"></a><code><b><span class="methodName">onfound</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when device is discovered during the discovery
-procedure.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfound(<a href="#Device">Device</a> device);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">device</span>:
- The discovered remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-<dt class="method" id="DiscoverySuccessCallback::onfinished">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback::onfinished"></a><code><b><span class="methodName">onfinished</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the device discovery procedure has finished.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfinished(<a href="#Device">Device</a>[] foundDevices);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">foundDevices</span>:
- Array of devices found in this discovery session.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback"></a><h3>2.14. RemoteAppControlCallback</h3>
-<div class="brief">
- The RemoteAppControlCallback specifies callbacks that are invoked as a reply
-from the requested application control within the application control requester.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlCallback {
-
-        void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-
-        void onfailure();
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#RemoteAppControlService::launchAppControl">launchAppControl()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the received reply from the requested application on the remote device has no errors.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">data</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- An array of ApplicationControlData objects
-                </li>
-        </ul>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlCallback::onfailure">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback::onfailure"></a><code><b><span class="methodName">onfailure</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the received reply from the requested application on the remote device contains any error.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfailure();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="ConnectSuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectSuccessCallback"></a><h3>2.15. ConnectSuccessCallback</h3>
-<div class="brief">
- The <em>ConnectSuccessCallback</em> interface defines the success method
-to be invoked when a service is connected.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ConnectSuccessCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> of AppCommunicationClientService and
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> of RemoteAppControlService methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="ConnectSuccessCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service connection is established.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Service">Service</a> service);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">service</span>:
- The connected service on a remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlStartCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlStartCallback"></a><h3>2.16. RemoteAppControlStartCallback</h3>
-<div class="brief">
- The <em>RemoteAppControlStartCallback</em> interface defines the success method
-to be invoked when a RemoteAppControlService is started.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlStartCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#RemoteAppControlService::start">start()</a> of RemoteAppControlService methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlStartCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlStartCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service connection is established.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Service">Service</a> service);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">service</span>:
- The connected service on a remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationSuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationSuccessCallback"></a><h3>2.17. AppCommunicationSuccessCallback</h3>
-<div class="brief">
- The <em>AppCommunicationSuccessCallback</em> interface defines the success method
-to be invoked when a service operation, such as stop or send is successful.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationSuccessCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::stop">stop()</a> or
-<a href="convergence.html#AppCommunicationService::send">send()</a> methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationSuccessCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service operation is successful.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationStartCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationStartCallback"></a><h3>2.18. AppCommunicationStartCallback</h3>
-<div class="brief">
- The <em>AppCommunicationStartCallback</em> interface defines the success method
-to be invoked when a start service operation is successful.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationStartCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::start">start()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationStartCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationStartCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the start service operation is successful.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">clientInfo</span>:
- The client information.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationClientListCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientListCallback"></a><h3>2.19. AppCommunicationClientListCallback</h3>
-<div class="brief">
- The <em>AppCommunicationClientListCallback</em> interface defines the
-method to be invoked when requested a list of clients, connected to
-the specified channel of the application communication service.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationClientListCallback {
-
-        void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::getClientList">getClientList()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationClientListCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientListCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the list of connected clients is requested.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">clients</span>:
- The list of connected clients.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationListenerCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationListenerCallback"></a><h3>2.20. AppCommunicationListenerCallback</h3>
-<div class="brief">
- The <em>AppCommunicationListenerCallback</em> interface defines the
-method to be invoked when a service notification is received
-from the application communication service.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationListenerCallback {
-
-        void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type can be assigned to the service using the
-<a href="convergence.html#AppCommunicationService::setListener">setListener()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationListenerCallback::onnotify">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationListenerCallback::onnotify"></a><code><b><span class="methodName">onnotify</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service channel notification is received.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">payload</span>:
- The payload containing notification data.
-                </li>
-          <li class="param">
-<span class="name">senderClientId</span>:
- The client id of the sender.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-</div>
-<h2 id="api-features">3. Related Feature</h2>
-<div id="def-api-features" class="def-api-features">
-        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
-                    <div class="def-api-feature">
-<p><div class="description">
-            <p>
-To guarantee that the application runs on a device with Convergence feature,
-declare the following feature requirements in the config file:
-            </p>
-           </div></p>
-<li class="feature">http://tizen.org/feature/convergence.d2d</li>
-</div>
-<p></p>
-                    For more information, see <a href="https://developer.tizen.org/development/training/web-application/understanding-tizen-programming/application-filtering">Application Filtering</a>.
-</div>
-<h2 id="full-webidl">4. Full WebIDL</h2>
-<pre class="webidl prettyprint">module Convergence {
-
-    typedef DOMString DeviceId;
-
-    enum DeviceProfile {"MOBILE", "WEARABLE", "TV"};
-
-    typedef (<a href="#PayloadString">PayloadString</a> or <a href="#PayloadRawBytes">PayloadRawBytes</a>) Payload;
-
-    enum PayloadType{"STRING", "RAW_BYTES"};
-
-    enum ConnectionState{"CONNECTED", "NOT_CONNECTED", "CONNECTING"};
-
-    enum ServiceType{"APP_COMM_CLIENT", "APP_COMM_SERVER", "REMOTE_APP_CONTROL"};
-
-    [Constructor(DOMString uri, DOMString id)]
-    interface ChannelInfo {
-      attribute DOMString uri;
-      attribute DOMString id;
-    };
-
-    [NoInterfaceObject] interface ConvergenceObject {
-        readonly attribute <a href="#ConvergenceManager">ConvergenceManager</a> convergence;
-    };
-
-    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ConvergenceObject">ConvergenceObject</a>;
-
-    [NoInterfaceObject] interface ConvergenceManager {
-
-        void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional unsigned long? timeout) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stopDiscovery() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-    };
-
-    [NoInterfaceObject] interface Device {
-
-        readonly attribute <a href="#DeviceId">DeviceId</a> id;
-
-        readonly attribute DOMString name;
-
-        readonly attribute <a href="#DeviceProfile">DeviceProfile</a> type;
-
-        readonly attribute <a href="#Service">Service</a>[] services;
-    };
-
-    [NoInterfaceObject] interface Service {
-
-        readonly attribute <a href="#ConnectionState">ConnectionState</a> connectionState;
-
-        readonly attribute <a href="#ServiceType">ServiceType</a> type;
-    };
-
-    [NoInterfaceObject] interface AppCommunicationService : <a href="#Service">Service</a> {
-
-        void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#Payload">Payload</a>[] payload,
-            <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)
-            raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void unsetListener();
-    };
-
-    [NoInterfaceObject] interface AppCommunicationClientService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };
-
-
-    [Constructor()]
-    interface AppCommunicationServerService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-    };
-
-    [NoInterfaceObject] interface RemoteAppControlService : <a href="#Service">Service</a> {
-        void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl,
-            optional <a href="application.html#ApplicationId">ApplicationId</a>? appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };
-
-    dictionary PayloadString {
-        DOMString key;
-
-        DOMString value;
-    };
-
-    dictionary PayloadRawBytes {
-        DOMString key;
-
-        byte[] value;
-    };
-
-    [NoInterfaceObject] interface ClientInfo {
-        readonly attribute boolean isHost;
-
-        readonly attribute DOMString clientId;
-
-        readonly attribute long connectionTime;
-    };
-
-    [Callback, NoInterfaceObject] interface DiscoverySuccessCallback {
-
-        void onfound(<a href="#Device">Device</a> device);
-
-        void onfinished(<a href="#Device">Device</a>[] foundDevices);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlCallback {
-
-        void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-
-        void onfailure();
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface ConnectSuccessCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlStartCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationSuccessCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationStartCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationClientListCallback {
-
-        void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationListenerCallback {
-
-        void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-    };
-};</pre>
-</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>
index 22b64cb..862bfd5 100755 (executable)
                 <th style="width:20%">API</th><th>Description</th><th style="width:5%">Version</th></tr>
                 </thead>
                 <tbody>
-                <tr><td>
-                <a href="tizen/convergence.html" data-origin="tizen" data-domain="networking" data-category="core" data-status="D" data-version="">
-                        Convergence</a></td>
-                <td>This API provides interfaces and methods for using Tizen device-to-device convergence services.</td>
-                <td>3.0</td>
-                </tr>
-
                 <tr>
                 <td><a href="tizen/iotcon.html" data-origin="tizen" data-domain="networking" data-category="core" data-status="D" data-version="">
                         Iotcon</a></td>
diff --git a/org.tizen.web.apireference/html/device_api/tv/tizen/convergence.html b/org.tizen.web.apireference/html/device_api/tv/tizen/convergence.html
deleted file mode 100755 (executable)
index 8f81f2e..0000000
+++ /dev/null
@@ -1,4123 +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>Convergence API</title>
-</head>
-<body id="page-content" onload="prettyPrint()">
-<div class="api" id="::Convergence">
-<div class="title"><h1>Convergence API</h1></div>
-<div class="brief">
- The Convergence API defines interfaces and methods
-for using Tizen device-to-device convergence services.
-        </div>
-<div class="description">
-        <p>
-The following functionality is provided:
-        </p>
-        <ul>
-          <li>
-Discovering nearby devices which support device-to-device services          </li>
-          <li>
-Getting device and service information          </li>
-          <li>
-Connecting and disconnecting services          </li>
-          <li>
-Starting and stopping services          </li>
-          <li>
-Sending data to services          </li>
-          <li>
-Listening to notifications from the service          </li>
-        </ul>
-        <p>
-The collection of supported device-to-device services includes:
-        </p>
-        <ul>
-          <li>
-<em>Remote App Control Service</em> - Allows launching an application on a remote device.          </li>
-          <li>
-<em>App Communication Service</em> - Allows transferring data between applications on local and remote devices.
-<br>Note that there are 'client' and 'server' implementations of this service which allows easy set-up and
-convenient handling of the data exchange process on both local and remote devices.
-For better flexibility, the data transfer occurs in named user-defined communication channels.          </li>
-        </ul>
-        <p>
-For more information on the Device-to-device Convergence features,
-see the <a href="https://developer.tizen.org/development/guides/web-application/connectivity-and-wireless/convergence-services">Convergence Services Guide</a>.
-        </p>
-        <p>
-Tizen 3.0 only supports Wi-Fi for Convergence services. More connectivity, such as BT/BLE and Wi-Fi Direct, is to be supported in further versions.
-        </p>
-       </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-        </p>
-<h2>Table of Contents</h2>
-<ul class="toc">
-<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
-<li>
-                    1.1. <a href="#DeviceId">DeviceId</a>
-</li>
-<li>
-                    1.2. <a href="#DeviceProfile">DeviceProfile</a>
-</li>
-<li>
-                    1.3. <a href="#Payload">Payload</a>
-</li>
-<li>
-                    1.4. <a href="#PayloadType">PayloadType</a>
-</li>
-<li>
-                    1.5. <a href="#ConnectionState">ConnectionState</a>
-</li>
-<li>
-                    1.6. <a href="#ServiceType">ServiceType</a>
-</li>
-</ul>
-</li>
-<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
-<li>2.1. <a href="#ChannelInfo">ChannelInfo</a>
-</li>
-<li>2.2. <a href="#ConvergenceObject">ConvergenceObject</a>
-</li>
-<li>2.3. <a href="#ConvergenceManager">ConvergenceManager</a>
-</li>
-<li>2.4. <a href="#Device">Device</a>
-</li>
-<li>2.5. <a href="#Service">Service</a>
-</li>
-<li>2.6. <a href="#AppCommunicationService">AppCommunicationService</a>
-</li>
-<li>2.7. <a href="#AppCommunicationClientService">AppCommunicationClientService</a>
-</li>
-<li>2.8. <a href="#AppCommunicationServerService">AppCommunicationServerService</a>
-</li>
-<li>2.9. <a href="#RemoteAppControlService">RemoteAppControlService</a>
-</li>
-<li>2.10. <a href="#PayloadString">PayloadString</a>
-</li>
-<li>2.11. <a href="#PayloadRawBytes">PayloadRawBytes</a>
-</li>
-<li>2.12. <a href="#ClientInfo">ClientInfo</a>
-</li>
-<li>2.13. <a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a>
-</li>
-<li>2.14. <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>
-</li>
-<li>2.15. <a href="#ConnectSuccessCallback">ConnectSuccessCallback</a>
-</li>
-<li>2.16. <a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a>
-</li>
-<li>2.17. <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>
-</li>
-<li>2.18. <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a>
-</li>
-<li>2.19. <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a>
-</li>
-<li>2.20. <a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a>
-</li>
-</ul>
-</li>
-<li>3. <a href="#api-features">Related Feature</a>
-</li>
-<li>4. <a href="#full-webidl">Full WebIDL</a>
-</li>
-</ul>
-<hr>
-<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="#ChannelInfo">ChannelInfo</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ConvergenceObject">ConvergenceObject</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ConvergenceManager">ConvergenceManager</a></td>
-<td>
-<div>void <a href="#ConvergenceManager::startDiscovery">startDiscovery</a> (<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? timeout)</div>
-<div>void <a href="#ConvergenceManager::stopDiscovery">stopDiscovery</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#Device">Device</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#Service">Service</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationService">AppCommunicationService</a></td>
-<td>
-<div>void <a href="#AppCommunicationService::start">start</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::getClientList">getClientList</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::send">send</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::stop">stop</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::setListener">setListener</a> (<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)</div>
-<div>void <a href="#AppCommunicationService::unsetListener">unsetListener</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationClientService">AppCommunicationClientService</a></td>
-<td>
-<div>void <a href="#AppCommunicationClientService::connect">connect</a> (<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationClientService::disconnect">disconnect</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationServerService">AppCommunicationServerService</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlService">RemoteAppControlService</a></td>
-<td>
-<div>void <a href="#RemoteAppControlService::start">start</a> (<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::stop">stop</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::connect">connect</a> (<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::disconnect">disconnect</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::launch">launch</a> (<a href="application.html#ApplicationId">ApplicationId</a> appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::launchAppControl">launchAppControl</a> (<a href="application.html#ApplicationControl">ApplicationControl</a> appControl, optional <a href="application.html#ApplicationId">ApplicationId</a>? appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#PayloadString">PayloadString</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#PayloadRawBytes">PayloadRawBytes</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ClientInfo">ClientInfo</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a></td>
-<td>
-<div>void <a href="#DiscoverySuccessCallback::onfound">onfound</a> (<a href="#Device">Device</a> device)</div>
-<div>void <a href="#DiscoverySuccessCallback::onfinished">onfinished</a> (<a href="#Device">Device</a>[] foundDevices)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlCallback">RemoteAppControlCallback</a></td>
-<td>
-<div>void <a href="#RemoteAppControlCallback::onsuccess">onsuccess</a> (optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data)</div>
-<div>void <a href="#RemoteAppControlCallback::onfailure">onfailure</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#ConnectSuccessCallback">ConnectSuccessCallback</a></td>
-<td><div>void <a href="#ConnectSuccessCallback::onsuccess">onsuccess</a> (<a href="#Service">Service</a> service)</div></td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a></td>
-<td><div>void <a href="#RemoteAppControlStartCallback::onsuccess">onsuccess</a> (<a href="#Service">Service</a> service)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a></td>
-<td><div>void <a href="#AppCommunicationSuccessCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a></td>
-<td><div>void <a href="#AppCommunicationStartCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a></td>
-<td><div>void <a href="#AppCommunicationClientListCallback::onsuccess">onsuccess</a> (<a href="#ClientInfo">ClientInfo</a>[] clients)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a></td>
-<td><div>void <a href="#AppCommunicationListenerCallback::onnotify">onnotify</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId)</div></td>
-</tr>
-</tbody>
-</table>
-<div class="typedefs" id="typedefs-section">
-<h2>1. Type Definitions</h2>
-<div class="typedef" id="DeviceId">
-<a class="backward-compatibility-anchor" name="::Convergence::DeviceId"></a><h3>1.1. DeviceId</h3>
-<div class="brief">
- The type of the remote device identifier.
-          </div>
-<pre class="webidl prettyprint">    typedef DOMString DeviceId;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="enum" id="DeviceProfile">
-<a class="backward-compatibility-anchor" name="::Convergence::DeviceProfile"></a><h3>1.2. DeviceProfile</h3>
-<div class="brief">
- Enumeration of the remote device profile.
-          </div>
-<pre class="webidl prettyprint">    enum DeviceProfile {"MOBILE", "WEARABLE", "TV"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="typedef" id="Payload">
-<a class="backward-compatibility-anchor" name="::Convergence::Payload"></a><h3>1.3. Payload</h3>
-<div class="brief">
- The type of payload item. An item is a key-value pair. The value may be either a string or an array of raw bytes.
-          </div>
-<pre class="webidl prettyprint">    typedef (<a href="#PayloadString">PayloadString</a> or <a href="#PayloadRawBytes">PayloadRawBytes</a>) Payload;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="enum" id="PayloadType">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadType"></a><h3>1.4. PayloadType</h3>
-<div class="brief">
- Enumeration of payload types.
-          </div>
-<pre class="webidl prettyprint">    enum PayloadType{"STRING", "RAW_BYTES"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-STRING - The payload key-value value is a string.            </li>
-            <li>
-RAW_BYTES - The payload key-value value is a byte array.            </li>
-          </ul>
-         </div>
-</div>
-<div class="enum" id="ConnectionState">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectionState"></a><h3>1.5. ConnectionState</h3>
-<div class="brief">
- Enumeration of service connection states.
-          </div>
-<pre class="webidl prettyprint">    enum ConnectionState{"CONNECTED", "NOT_CONNECTED", "CONNECTING"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-CONNECTED - Connected state.             </li>
-            <li>
-DISCONNECTED - Not connected state.             </li>
-            <li>
-CONNECTING - Connecting state.             </li>
-          </ul>
-         </div>
-</div>
-<div class="enum" id="ServiceType">
-<a class="backward-compatibility-anchor" name="::Convergence::ServiceType"></a><h3>1.6. ServiceType</h3>
-<div class="brief">
- Enumeration of service type.
-          </div>
-<pre class="webidl prettyprint">    enum ServiceType{"APP_COMM_CLIENT", "APP_COMM_SERVER", "REMOTE_APP_CONTROL"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-APP_COMM_CLIENT - Application communication client service.             </li>
-            <li>
-APP_COMM_SERVER - Application communication server service.             </li>
-            <li>
-REMOTE_APP_CONTROL - Remote application control service.             </li>
-          </ul>
-         </div>
-</div>
-</div>
-<div class="interfaces" id="interfaces-section">
-<h2>2. Interfaces</h2>
-<div class="interface" id="ChannelInfo">
-<a class="backward-compatibility-anchor" name="::Convergence::ChannelInfo"></a><h3>2.1. ChannelInfo</h3>
-<div class="brief">
- The channel info interface that specifies the server application which a client application wants to connect with.
-          </div>
-<pre class="webidl prettyprint">    [Constructor(DOMString uri, DOMString id)]
-    interface ChannelInfo {
-      attribute DOMString uri;
-      attribute DOMString id;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The channelinfo is composed of a URI and a channel ID which is used in <a href="convergence.html#AppCommunicationService">App Communication</a> services.
-The channelinfo URI is a URI for an application on the server side.
-The channelinfo ID value is defined by the developer.
-          </p>
-         </div>
-<p><span class="remark"> Remark: </span>
- We assume that the server side app URI is known. For example, either client and server side apps are both developed by the same developer or the server app URI is available from other sources.
-          </p>
-<div class="constructors">
-<h4 id="ChannelInfo::constructor">Constructors</h4>
-<dl>
-<pre class="webidl prettyprint">ChannelInfo(DOMString uri, DOMString id);</pre>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Assume that the "targetApp0.main" application has been installed on remote device */
-var channel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-</pre>
-</div>
-</dl>
-</div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="ChannelInfo::uri">
-<span class="attrName"><span class="type">DOMString </span><span class="name">uri</span></span><div class="brief">
- The uri of the channel.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ChannelInfo::id">
-<span class="attrName"><span class="type">DOMString </span><span class="name">id</span></span><div class="brief">
- The identifier of the channel.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="ConvergenceObject">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceObject"></a><h3>2.2. ConvergenceObject</h3>
-<div class="brief">
- The <em>ConvergenceObject</em> interface defines what is
-instantiated by the <em>Tizen</em> object from the Tizen platform.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ConvergenceObject {
-        readonly attribute <a href="#ConvergenceManager">ConvergenceManager</a> convergence;
-    };</pre>
-<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ConvergenceObject">ConvergenceObject</a>;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The <em>tizen.convergence</em> object allows access to
-Tizen device-to-device convergence API.
-          </p>
-         </div>
-</div>
-<div class="interface" id="ConvergenceManager">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager"></a><h3>2.3. ConvergenceManager</h3>
-<div class="brief">
- The <em>ConvergenceManager</em> interface provides access to the
-<em>convergence</em> object.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ConvergenceManager {
-
-        void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional unsigned long? timeout) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stopDiscovery() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The device-to-device convergence manager allows discovering available
-nearby devices, which support device-to-device services.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="ConvergenceManager::startDiscovery">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager::startDiscovery"></a><code><b><span class="methodName">startDiscovery</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts discovery of nearby devices.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? timeout);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method initiates the device discovery procedure.
-Depending on the progress of this procedure the following methods
-are invoked:
-            </p>
-            <ul>
-              <li>
-<a href="convergence.html#DiscoverySuccessCallback::onfound">onfound()</a> - when a device is found.
-This method is invoked with the device
-information of
-<a href="convergence.html#Device">Device</a> type.
-If no device is found, this method will never be invoked.              </li>
-              <li>
-<a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> - when a discovery procedure is finished.
-This method is invoked
-with the list of discovered device information.              </li>
-            </ul>
-            <p>
-The discovery procedure can be canceled anytime, by calling
-<a href="convergence.html#ConvergenceManager::stopDiscovery">stopDiscovery()</a> in
-the <em>ConvergenceManager</em>.
-<br>Note the <a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> discovery
-callback will be invoked.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The callback to invoke each time the device is
-found. The callback will be invoked also when the discovery
-procedure has finished.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure of device
-discovery.
-                </li>
-          <li class="param">
-<span class="name">timeout</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- Duration of discovery procedure in seconds. If this
-value is omitted or <em>null</em> is passed, the default timeout
-is 5 seconds.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-discovery procedure has started already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Handling device discovery results */
-var discoveryCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      /* Do something with the discovered device */
-      /* If desired device is found, stop discovery with following call */
-      tizen.convergence.stopDiscovery();
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log('Device discovery has finished');
-   }
-};
-
-/* Running device discovery procedure */
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoveryCallback, function(err)
-   {
-      console.log(err.name + ': ' + err.message);
-   }, 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- </pre>
-</div>
-</dd>
-<dt class="method" id="ConvergenceManager::stopDiscovery">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager::stopDiscovery"></a><code><b><span class="methodName">stopDiscovery</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops discovery of nearby devices.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stopDiscovery();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops an ongoing discovery procedure.
-            </p>
-           </div>
-<p><span class="remark"> Remark: </span>
- Device discovery is a heavyweight procedure, so it may be
-useful to stop discovery when the required device is found.
-<br>Note this method triggers the <a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> discovery
-callback.
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a> code example.
-            </p>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
- with error type InvalidStateError, if the
-discovery procedure has not started yet.
-                </p></li></ul>
-</li></ul>
-        </div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="Device">
-<a class="backward-compatibility-anchor" name="::Convergence::Device"></a><h3>2.4. Device</h3>
-<div class="brief">
- The <em>Device</em> interface provides access to the remote
-device's properties.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface Device {
-
-        readonly attribute <a href="#DeviceId">DeviceId</a> id;
-
-        readonly attribute DOMString name;
-
-        readonly attribute <a href="#DeviceProfile">DeviceProfile</a> type;
-
-        readonly attribute <a href="#Service">Service</a>[] services;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers access to remote device information, such as the unique
-identifier, name, profile type and list of provided services.
-          </p>
-          <p>
-<br>Note, device ID and device type are defined in the platform, and the developer cannot change it.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="Device::id">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DeviceId </span><span class="name">id</span></span><div class="brief">
- The unique device ID.
-<br>Note the device ID is a unique identifier string, generated with following rule.
-If the Remote Server is installed on the device (e.g. TV),
-then the device ID is assigned by application communication server service.
-Usually it has a format of service name and version. Otherwise (e.g. mobile or wearable),
-the device ID is device MAC address.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::name">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
- The device name.
-<br>Note device name is one that is set in the Settings app (Settings&gt;About Devices&gt;Device Name).
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::type">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DeviceProfile </span><span class="name">type</span></span><div class="brief">
- The device profile type.
-<br>Note Device type represents the <a href="https://www.tizen.org/about">profile of the device</a>,
-such as “TV”, “Mobile” or “Wearable”.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::services">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">Service[]
-                      </span><span class="name">services</span></span><div class="brief">
- The list of services, available on the device.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="Service">
-<a class="backward-compatibility-anchor" name="::Convergence::Service"></a><h3>2.5. Service</h3>
-<div class="brief">
- The <em>Service</em> interface is a base interface for all
-device-to-device services.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface Service {
-
-        readonly attribute <a href="#ConnectionState">ConnectionState</a> connectionState;
-
-        readonly attribute <a href="#ServiceType">ServiceType</a> type;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface defines common property for all device-to-device services
-          </p>
-         </div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul><li class="attribute" id="Service::connectionState">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">ConnectionState </span><span class="name">connectionState</span></span><div class="brief">
- The service connection state.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Service::type">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">ServiceType </span><span class="name">type</span></span><div class="brief">
- The service type.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="AppCommunicationService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService"></a><h3>2.6. AppCommunicationService</h3>
-<div class="brief">
- The <em>AppCommunicationService</em> interface defines the base interface
-of both application communication
-<a href="convergence.html#AppCommunicationClientService">Client</a> and
-<a href="convergence.html#AppCommunicationServerService">Server</a> services
-and specifies common service features, such as start, stop, send, listener etc.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface AppCommunicationService : <a href="#Service">Service</a> {
-
-        void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#Payload">Payload</a>[] payload,
-            <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)
-            raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void unsetListener();
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-App Communication Service allows transferring data between apps on local and remote devices.
-The App Communication Service relies on a Remote Server. The initialization and execution of a server app
-(the app on the side with the Remote Server, e.g. TV) and a client app (e.g. an app on a mobile or wearable device)
-are slightly different. Furthermore, the client app can remotely launch an app on the server side or connect to an
-already running server app, but the reverse way is impossible. More than one client can be connected to a server app.
-For example, multiple players on mobile devices can connect to a game application on a TV which takes a role of a server.
-Both client and server side apps can send payloads and listen to each other.
-          </p>
-          <p>
-<br>Note there are <a href="convergence.html#AppCommunicationClientService">client</a> and
-<a href="convergence.html#AppCommunicationServerService">server</a> implementations
-of this service for both local and remote devices. For better flexibility, the data transfer occurs in a user-defined
-<a href="convergence.html#ChannelInfo">ChannelInfo</a>.
-          </p>
-          <p>
-These interfaces offer the following service features:
-          </p>
-          <ul>
-            <li>
-Starting and stopping the service            </li>
-            <li>
-Sending payloads to the service            </li>
-            <li>
-Listening to remote service notifications            </li>
-            <li>
-Getting the list of clients that are connected to the service            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationService::start">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::start"></a><code><b><span class="methodName">start</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method starts the channel of the service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidStateError: If the service has already started the channel. Note some services don't require a connection and disconnection procedures              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method for application communication client service, the service must be connected with the
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-<br>Note ChannelInfo in the application communication service specifies a server app which a client wants to connect with.
-ChannelInfo URI is a URI of the server side app, while ChannelInfo ID is a developer-defined value.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(channelinfo, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channelinfo.uri);
-   console.log('channel id: ' + channelinfo.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-/* Create an instance of application communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(channelinfo, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channelinfo.uri);
-   console.log('channel id: ' + channelinfo.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::getClientList">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::getClientList"></a><code><b><span class="methodName">getClientList</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Get the client lists connected to the channel
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected and
-started with
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> and
-<a href="convergence.html#AppCommunicationService::start">start()</a> methods
-correspondingly.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess(clientinfolist)
-{
-   console.log('get client list');
-   for (i in clientinfolist)
-   {
-      console.log('isHost: ' + clientinfolist[i].isHost);
-      console.log('client id: ' + clientinfolist[i].clientId);
-      console.log('connection time: ' + clientinfolist[i].connectionTime);
-   }
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri' + channel.uri);
-   console.log('channel id ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   service.getClientList(requestChannel, onsuccess, onerror);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- get client list
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- isHost: false
- client id: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connection time: 1420163913807
- isHost: false
- client id: c13adb22-5423-22e4-5d8q-adf872d4q889
- connection time: 1420163913125
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess(clientinfolist)
-{
-   console.log('get client list');
-   for (i in clientinfolist)
-   {
-      console.log('isHost: ' + clientinfolist[i].isHost);
-      console.log('client id: ' + clientinfolist[i].clientId);
-      console.log('connection time: ' + clientinfolist[i].connectionTime);
-   }
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri' + channel.uri);
-   console.log('channel id ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   clientService.getClientList(requestChannel, onsuccess, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- get client list
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- isHost: false
- client id: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connection time: 1420163913807
- isHost: false
- client id: c13adb22-5423-22e4-5d8q-adf872d4q889
- connection time: 1420163913125
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::send">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::send"></a><code><b><span class="methodName">send</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends a payload to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#AppCommunicationService::start">start()</a> code example.
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected and
-started with
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> and
-<a href="convergence.html#AppCommunicationService::start">start()</a> methods
-correspondingly.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">payload</span>:
- The payload containing request data.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function sendSuccessCallback(channelinfo)
-{
-   console.log('requestPayload sent');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by Multi Screen server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   /* Send data to the remote service */
-   service.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function sendSuccessCallback(channel)
-{
-   console.log('requestPayload sent');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   /* Send data to the remote service */
-   clientService.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               clientService = device.service[i];
-               clientService.start(requestChannel, onstarted, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::stop">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::stop"></a><code><b><span class="methodName">stop</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops the specified channel of the service.
-<br>Note When all clients have stopped using the service channel, the server side automatically terminates the application.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelInfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel1 = new tizen.ChannelInfo('targetApp0.main', 'chA');
-var requestChannel2 = new tizen.ChannelInfo('targetApp1.main', 'chB');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped(channel)
-{
-   console.log('Channel stopped');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('clienti id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   if (channel id == 'chB')
-   {
-      service.stop(requestChannel2, onstopped);
-   }
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel1, onstarted, onerror);
-service.start(requestChannel2, onstarted, onerror);
-</pre>
-</div>
-
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre>
-Channel started
-channel uri: targetApp0.main
-channel id: chA
-clientinfo
-isHost: true
-clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
-connectionTime: 1420163913035
-Channel started
-channel uri: targetApp1.main
-channel id: chB
-clientinfo
-isHost: true
-clientId: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
-connectionTime: 1420163913807
-Channel stopped
-channel uri: targetApp1.main
-channel id: chB
-</pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel1 = new tizen.ChannelInfo('targetApp0.main', 'chA');
-var requestChannel2 = new tizen.ChannelInfo('targetApp1.main', 'chB');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped(channel)
-{
-   console.log('Channel stopped');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   if (channel id == 'chB')
-   {
-      clientService.stop(requestChannel2, onstopped);
-   }
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- Channel started
- channel uri: targetApp1.main
- channel id: chB
- clientinfo
- isHost: false
- clientId: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connectionTime: 1420163913807
- Channel stopped
- channel uri: targetApp1.main
- channel id: chB
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::setListener">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::setListener"></a><code><b><span class="methodName">setListener</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Registers the service listener.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">listenerCallback</span>:
- The method to invoke when a service
-notification is received.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li></ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onnotify(channel, payload, senderclientid)
-{
-   console.log('On service notification');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   /* clientid of the sender of the payload */
-   console.log('client id of sender: ' + senderclientid);
-   for (i in payload)
-   {
-      console.log('payload: ' + payload[i].key + '-' + payload[i].value);
-   }
-   /* If using unsetListener, unregisters the listener and stops receiving notifications from the service */
-   service.unsetListener();
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by Multi Screen server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-/* Register listener to receive notifications from remote service */
-service.setListener(onnotify);
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- On service notification
- channel uri: targetApp0.main
- channel id: chA
- client id of sender: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- payload: msg-hello
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onnotify(channel, payload, senderclientid)
-{
-   console.log('On service notification');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   /* clientid of the sender of the payload */
-   console.log('client id of sender: ' + senderclientid);
-   for (i in payload)
-   {
-      console.log('payload ' + payload[i].key + ': ' + payload[i].value);
-   }
-   /* If using unsetListener, unregisters the listener and stops receiving notifications from the service */
-   clientService.unsetListener();
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      service.start(requestChannel, onstarted, onerror);
-      /* Register listener to receive notifications from remote service */
-      service.setListener(onnotify);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- On service notification
- channel uri: targetApp0.main
- channel id: chA
- client id of sender: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- payload: msg-hello
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::unsetListener">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::unsetListener"></a><code><b><span class="methodName">unsetListener</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Unregisters the service listener.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void unsetListener();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#AppCommunicationService::setListener">setListener()</a> code example.
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationClientService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService"></a><h3>2.7. AppCommunicationClientService</h3>
-<div class="brief">
- The <em>AppCommunicationClientService</em> interface provides access to
-application communication client service features.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface AppCommunicationClientService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following service features:
-          </p>
-          <ul>
-            <li>
-Connecting and disconnecting the remote service            </li>
-            <li>
-Reading immediate data of the remote service            </li>
-            <li>
-Listening to remote service update notifications            </li>
-            <li>
-Sending data to the remote service            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationClientService::connect">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService::connect"></a><code><b><span class="methodName">connect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Connects to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Makes physical connection such as Wi-Fi or Bluetooth to the
-service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Connecting is only supported for services on devices not connected via WiFi.
-For devices connected via WiFi, <a href="convergence.html#ConnectionState">connectionState</a> will always be <em>"CONNECTED"</em>.
-            </p>
-<p><span class="remark"> Remark: </span>
- App developers do not need to specify the connectivity type
-explicitly. The framework automatically determines which connectivity
-to use in a selected service.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is connected already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-   }
-   else if (service.type === "REMOTE_APP_CONTROL")
-   {
-      console.log('Connected to the remote app control service');
-   }
-   service.disconnect();
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         else if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Connected to the service
- Connected to the remote app control service
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationClientService::disconnect">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService::disconnect"></a><code><b><span class="methodName">disconnect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Disconnects the connected service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Disconnect physical connection with device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Disconnecting is only supported for services on devices not connected via WiFi.
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at <a href="convergence.html#AppCommunicationClientService::connect">connect()</a> code example.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service was not connected yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationServerService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationServerService"></a><h3>2.8. AppCommunicationServerService</h3>
-<div class="brief">
- The <em>AppCommunicationServerService</em> interface provides access to
-application communication server service features.
-          </div>
-<pre class="webidl prettyprint">    [Constructor()]
-    interface AppCommunicationServerService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following service features:
-          </p>
-          <ul>
-            <li>
-Instantiating the service            </li>
-            <li>
-Reading immediate data of the service            </li>
-            <li>
-Listening to service update notifications            </li>
-            <li>
-Sending data for the service            </li>
-          </ul>
-         </div>
-<p class="warning"><b>Warning:</b>
- AppCommunicationServerService API is supported on Tizen 3.0 TV product only.
-          </p>
-<p><span class="remark"> Remark: </span>
- application server service is used without discovery phase.
-The developer should instantiate a standalone service object using
-the constructor.
-          </p>
-
-      <div class="constructors">
-<h4 id="AppCommunicationServerService::constructor">Constructors</h4>
-<dl>
-<pre class="webidl prettyprint">AppCommunicationServerService();</pre>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Create an instance of application communication server service object */
-var service = new tizen.AppCommunicationServerService();
-</pre>
-</div>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlService">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService"></a><h3>2.9. RemoteAppControlService</h3>
-<div class="brief">
- The <em>RemoteAppControlService</em> interface provides access to
-remote application control service features.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface RemoteAppControlService : <a href="#Service">Service</a> {
-        void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl,
-            optional <a href="application.html#ApplicationId">ApplicationId</a>? appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following device-to-device service features:
-          </p>
-          <ul>
-            <li>
-Connecting and disconnecting the service            </li>
-            <li>
-Sending app control data to the service            </li>
-            <li>
-Receiving app control results            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlService::start">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::start"></a><code><b><span class="methodName">start</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts and initiates remote service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method starts the remote app control service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p><span class="remark"> Remark : </span>
- Before using this method for remote application service, the service must be connected with the
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-the service is already started.
-                </p></li>
-<li class="list"><p>
- with error type AbortError, if the
-other error occurs during start.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(service)
-{
-   console.log('Remote app control service started');
-   service.disconnect();
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               device.services[i].start(onstarted, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
-&lt;&lt; Found a device
-   - id: de2bea-ddvia
-   - name : deviceA
-   - type : TV
-   - service amount: 2
-&lt;&lt; Device discovery has finished
-Connected to the remote app control service
-Remote app control service started
-</pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::stop">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::stop"></a><code><b><span class="methodName">stop</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops remote service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops and release internally allocated resources for remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-the service is not started yet.
-                </p></li>
-<li class="list"><p>
- with error type AbortError, if the
-other error occurs during start.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped()
-{
-   console.log('Remote App Control service stopped');
-   /* Disconnect */
-   service.disconnect();
-}
-
-function onstarted(service)
-{
-   console.log('Remote App Control service started');
-   /* Stop the service */
-   service.stop(onstopped, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               device.services[i].start(onstarted, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
-&lt;&lt; Found a device
-   - id: de2bea-ddvia
-   - name : deviceA
-   - type : TV
-   - service amount: 2
-&lt;&lt; Device discovery has finished
-Connected to the remote app control service
-Remote App Control service started
-Remote App Control service stopped
-</pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::connect">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::connect"></a><code><b><span class="methodName">connect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Connects to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Makes physical connection such as Wi-Fi or Bluetooth to remote
-device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Connecting is only supported for services on devices not connected via WiFi.
-For devices connected via WiFi, <a href="convergence.html#ConnectionState">connectionState</a> will always be <em>"CONNECTED"</em>.
-            </p>
-<p><span class="remark"> Remark: </span>
- App developers do not need to specify the connectivity type
-explicitly. Framework automatically determines which connectivity
-to use in a selected service.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is connected already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.disconnect();
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the remote app control service
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::disconnect">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::disconnect"></a><code><b><span class="methodName">disconnect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Disconnects the connected service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Disconnect physical connection with device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Disconnecting is only supported for services on devices not connected via WiFi.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service was not connected yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function ondisconnected()
-{
-   console.log('Disconnected to the service');
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState == "CONNECTED")
-            {
-               device.services[i].disconnect(ondisconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log('Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Disconnected to the service
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::launch">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::launch"></a><code><b><span class="methodName">launch</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends the given application ID to launch an application on the remote device.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method sends an application ID to the remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an
-invalid value              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected
-with
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method
-and started with <a href="convergence.html#RemoteAppControlService::start">start()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">appId</span>:
- The target app id.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is not started yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Assume that the "targetApp0.main" application has been installed on remote device */
-var requestAppId = 'targetApp0.main';
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess()
-{
-   console.log('The application has launched successfully');
-}
-
-function onstarted(service)
-{
-   console.log('Service started');
-
-   /* Launching server app remotely */
-   service.launch(requestAppId, remoteAppControlCallback, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   /* Start the service */
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Service started
- The application has launched successfully
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::launchAppControl">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::launchAppControl"></a><code><b><span class="methodName">launchAppControl</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends an app control to launch an application on the remote device.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl, optional <a href="application.html#ApplicationId">ApplicationId</a>? appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method sends an app control to the remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected with
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method
-and started with <a href="convergence.html#RemoteAppControlService::start">start()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">appControl</span>:
- The app control data.
-                </li>
-          <li class="param">
-<span class="name">appId</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The target app id.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-          <li class="param">
-<span class="name">replyCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke when the application gets back result from the remote service.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is not started yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-var requestAppControl = new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/view',
-                                                     null, 'image/jpeg', null,
-                                                     [new tizen.ApplicationControlData('images', [testImgData])]);
-
-function onsuccess()
-{
-   console.log('Launch application control succeed');
-}
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-var remoteAppControlCallback =
-{
-   onsuccess: function(data)
-   {
-      console.log('On remote app control service reply');
-      for(var i = 0; i &lt; data.length; i++)
-      {
-         console.log("key : " + data[i].key + "value : " + data[i].value[0]);
-      }
-   },
-   /* Callee returned failure */
-   onfailure: function()
-   {
-      console.log('The launch application control failed');
-   }
-}
-
-function onstarted(service)
-{
-   console.log('Service started');
-
-   /* Send data to the remote service */
-   service.launchAppControl(requestAppControl, null, onsuccess, onerror, remoteAppControlCallback);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-
-   /* Start the service */
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Service started
- </pre>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="dictionary" id="PayloadString">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadString"></a><h3>2.10. PayloadString</h3>
-<div class="brief">
- The dictionary that specifies a payload string for the
-device-to-device service.
-          </div>
-<pre class="webidl prettyprint">    dictionary PayloadString {
-        DOMString key;
-
-        DOMString value;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-<em>PayloadString</em> is a key-value pair. Both the key and value are strings.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Dictionary members</h4>
-<dl>
-<dt class="member" id="PayloadString::key"><span class="attrName">DOMString key</span></dt>
-<dd>
-<div class="brief">
- The name of the payload string.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-<dt class="member" id="PayloadString::value"><span class="attrName">DOMString value</span></dt>
-<dd>
-<div class="brief">
- The value of the payload string.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="dictionary" id="PayloadRawBytes">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadRawBytes"></a><h3>2.11. PayloadRawBytes</h3>
-<div class="brief">
- The dictionary that specifies a raw bytes payload for the
-device-to-device service.
-          </div>
-<pre class="webidl prettyprint">    dictionary PayloadRawBytes {
-        DOMString key;
-
-        byte[] value;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-<em>PayloadRawBytes</em> is a key-value pair. The key is a string and the value is a byte
-array which is to be delivered to a remote service.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Dictionary members</h4>
-<dl>
-<dt class="member" id="PayloadRawBytes::key"><span class="attrName">DOMString key</span></dt>
-<dd>
-<div class="brief">
- The name of the payload byte array.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-<dt class="member" id="PayloadRawBytes::value"><span class="attrName">byte[] value</span></dt>
-<dd>
-<div class="brief">
- The bytes of the payload byte array.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="ClientInfo">
-<a class="backward-compatibility-anchor" name="::Convergence::ClientInfo"></a><h3>2.12. ClientInfo</h3>
-<div class="brief">
- The interface specifies client information.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ClientInfo {
-        readonly attribute boolean isHost;
-
-        readonly attribute DOMString clientId;
-
-        readonly attribute long connectionTime;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="ClientInfo::isHost">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">boolean </span><span class="name">isHost</span></span><div class="brief">
- The value indicating if the service is local (true) or remote (false).
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ClientInfo::clientId">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DOMString </span><span class="name">clientId</span></span><div class="brief">
- The unique client id.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ClientInfo::connectionTime">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">long </span><span class="name">connectionTime</span></span><div class="brief">
- The connection time in milliseconds.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="DiscoverySuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback"></a><h3>2.13. DiscoverySuccessCallback</h3>
-<div class="brief">
- The <em>DiscoverySuccessCallback</em> interface defines the
-success method for <a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a>.
-          </div>
-<pre class="webidl prettyprint">    [Callback, NoInterfaceObject] interface DiscoverySuccessCallback {
-
-        void onfound(<a href="#Device">Device</a> device);
-
-        void onfinished(<a href="#Device">Device</a>[] foundDevices);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-Specifies the type of function passed to <em>ConvergenceManager.startDiscovery()</em>.
-Called when device providing device-to-device service is discovered nearby.
-          </p>
-          <p>
-A usage example can be found in the
-<a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a> code example.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="DiscoverySuccessCallback::onfound">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback::onfound"></a><code><b><span class="methodName">onfound</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when device is discovered during the discovery
-procedure.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfound(<a href="#Device">Device</a> device);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">device</span>:
- The discovered remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-<dt class="method" id="DiscoverySuccessCallback::onfinished">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback::onfinished"></a><code><b><span class="methodName">onfinished</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the device discovery procedure has finished.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfinished(<a href="#Device">Device</a>[] foundDevices);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">foundDevices</span>:
- Array of devices found in this discovery session.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback"></a><h3>2.14. RemoteAppControlCallback</h3>
-<div class="brief">
- The RemoteAppControlCallback specifies callbacks that are invoked as a reply
-from the requested application control within the application control requester.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlCallback {
-
-        void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-
-        void onfailure();
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#RemoteAppControlService::launchAppControl">launchAppControl()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the received reply from the requested application on the remote device has no errors.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">data</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- An array of ApplicationControlData objects
-                </li>
-        </ul>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlCallback::onfailure">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback::onfailure"></a><code><b><span class="methodName">onfailure</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the received reply from the requested application on the remote device contains any error.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfailure();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="ConnectSuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectSuccessCallback"></a><h3>2.15. ConnectSuccessCallback</h3>
-<div class="brief">
- The <em>ConnectSuccessCallback</em> interface defines the success method
-to be invoked when a service is connected.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ConnectSuccessCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> of AppCommunicationClientService and
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> of RemoteAppControlService methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="ConnectSuccessCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service connection is established.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Service">Service</a> service);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">service</span>:
- The connected service on a remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlStartCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlStartCallback"></a><h3>2.16. RemoteAppControlStartCallback</h3>
-<div class="brief">
- The <em>RemoteAppControlStartCallback</em> interface defines the success method
-to be invoked when a RemoteAppControlService is started.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlStartCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#RemoteAppControlService::start">start()</a> of RemoteAppControlService methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlStartCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlStartCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service connection is established.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Service">Service</a> service);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">service</span>:
- The connected service on a remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationSuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationSuccessCallback"></a><h3>2.17. AppCommunicationSuccessCallback</h3>
-<div class="brief">
- The <em>AppCommunicationSuccessCallback</em> interface defines the success method
-to be invoked when a service operation, such as stop or send is successful.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationSuccessCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::stop">stop()</a> or
-<a href="convergence.html#AppCommunicationService::send">send()</a> methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationSuccessCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service operation is successful.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationStartCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationStartCallback"></a><h3>2.18. AppCommunicationStartCallback</h3>
-<div class="brief">
- The <em>AppCommunicationStartCallback</em> interface defines the success method
-to be invoked when a start service operation is successful.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationStartCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::start">start()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationStartCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationStartCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the start service operation is successful.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">clientInfo</span>:
- The client information.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationClientListCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientListCallback"></a><h3>2.19. AppCommunicationClientListCallback</h3>
-<div class="brief">
- The <em>AppCommunicationClientListCallback</em> interface defines the
-method to be invoked when requested a list of clients, connected to
-the specified channel of the application communication service.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationClientListCallback {
-
-        void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::getClientList">getClientList()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationClientListCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientListCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the list of connected clients is requested.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">clients</span>:
- The list of connected clients.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationListenerCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationListenerCallback"></a><h3>2.20. AppCommunicationListenerCallback</h3>
-<div class="brief">
- The <em>AppCommunicationListenerCallback</em> interface defines the
-method to be invoked when a service notification is received
-from the application communication service.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationListenerCallback {
-
-        void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type can be assigned to the service using the
-<a href="convergence.html#AppCommunicationService::setListener">setListener()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationListenerCallback::onnotify">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationListenerCallback::onnotify"></a><code><b><span class="methodName">onnotify</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service channel notification is received.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">payload</span>:
- The payload containing notification data.
-                </li>
-          <li class="param">
-<span class="name">senderClientId</span>:
- The client id of the sender.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-</div>
-<h2 id="api-features">3. Related Feature</h2>
-<div id="def-api-features" class="def-api-features">
-        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
-                    <div class="def-api-feature">
-<p><div class="description">
-            <p>
-To guarantee that the application runs on a device with Convergence feature,
-declare the following feature requirements in the config file:
-            </p>
-           </div></p>
-<li class="feature">http://tizen.org/feature/convergence.d2d</li>
-</div>
-<p></p>
-                    For more information, see <a href="https://developer.tizen.org/development/training/web-application/understanding-tizen-programming/application-filtering">Application Filtering</a>.
-</div>
-<h2 id="full-webidl">4. Full WebIDL</h2>
-<pre class="webidl prettyprint">module Convergence {
-
-    typedef DOMString DeviceId;
-
-    enum DeviceProfile {"MOBILE", "WEARABLE", "TV"};
-
-    typedef (<a href="#PayloadString">PayloadString</a> or <a href="#PayloadRawBytes">PayloadRawBytes</a>) Payload;
-
-    enum PayloadType{"STRING", "RAW_BYTES"};
-
-    enum ConnectionState{"CONNECTED", "NOT_CONNECTED", "CONNECTING"};
-
-    enum ServiceType{"APP_COMM_CLIENT", "APP_COMM_SERVER", "REMOTE_APP_CONTROL"};
-
-    [Constructor(DOMString uri, DOMString id)]
-    interface ChannelInfo {
-      attribute DOMString uri;
-      attribute DOMString id;
-    };
-
-    [NoInterfaceObject] interface ConvergenceObject {
-        readonly attribute <a href="#ConvergenceManager">ConvergenceManager</a> convergence;
-    };
-
-    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ConvergenceObject">ConvergenceObject</a>;
-
-    [NoInterfaceObject] interface ConvergenceManager {
-
-        void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional unsigned long? timeout) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stopDiscovery() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-    };
-
-    [NoInterfaceObject] interface Device {
-
-        readonly attribute <a href="#DeviceId">DeviceId</a> id;
-
-        readonly attribute DOMString name;
-
-        readonly attribute <a href="#DeviceProfile">DeviceProfile</a> type;
-
-        readonly attribute <a href="#Service">Service</a>[] services;
-    };
-
-    [NoInterfaceObject] interface Service {
-
-        readonly attribute <a href="#ConnectionState">ConnectionState</a> connectionState;
-
-        readonly attribute <a href="#ServiceType">ServiceType</a> type;
-    };
-
-    [NoInterfaceObject] interface AppCommunicationService : <a href="#Service">Service</a> {
-
-        void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#Payload">Payload</a>[] payload,
-            <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)
-            raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void unsetListener();
-    };
-
-    [NoInterfaceObject] interface AppCommunicationClientService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };
-
-
-    [Constructor()]
-    interface AppCommunicationServerService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-    };
-
-    [NoInterfaceObject] interface RemoteAppControlService : <a href="#Service">Service</a> {
-        void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl,
-            optional <a href="application.html#ApplicationId">ApplicationId</a>? appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };
-
-    dictionary PayloadString {
-        DOMString key;
-
-        DOMString value;
-    };
-
-    dictionary PayloadRawBytes {
-        DOMString key;
-
-        byte[] value;
-    };
-
-    [NoInterfaceObject] interface ClientInfo {
-        readonly attribute boolean isHost;
-
-        readonly attribute DOMString clientId;
-
-        readonly attribute long connectionTime;
-    };
-
-    [Callback, NoInterfaceObject] interface DiscoverySuccessCallback {
-
-        void onfound(<a href="#Device">Device</a> device);
-
-        void onfinished(<a href="#Device">Device</a>[] foundDevices);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlCallback {
-
-        void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-
-        void onfailure();
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface ConnectSuccessCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlStartCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationSuccessCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationStartCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationClientListCallback {
-
-        void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationListenerCallback {
-
-        void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-    };
-};</pre>
-</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>
index 232fb93..caa1dd1 100644 (file)
                 <td>Optional</td>
                 <td>No</td>
 
-                </tr><tr><td>
-                <a href="tizen/convergence.html" data-origin="tizen" data-domain="networking" data-category="core" data-status="D" data-version="">
-                        Convergence</a></td>
-                <td>This API provides interfaces and methods for using Tizen device-to-device convergence services.</td>
-                <td>3.0</td>
-                <td>Optional</td>
-                <td>No</td>
-
                 </tr><tr><td><a href="tizen/iotcon.html" data-origin="tizen" data-domain="networking" data-category="core" data-status="D" data-version="">
                         Iotcon</a></td>
                 <td>This API provides functions for IoT (Internet of Things) connectivity.</td>
diff --git a/org.tizen.web.apireference/html/device_api/wearable/tizen/convergence.html b/org.tizen.web.apireference/html/device_api/wearable/tizen/convergence.html
deleted file mode 100755 (executable)
index b1ccb39..0000000
+++ /dev/null
@@ -1,4124 +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>Convergence API</title>
-</head>
-<body id="page-content" onload="prettyPrint()">
-<div class="api" id="::Convergence">
-<div class="supported-platforms"><img class="wearable-mandatory emulator" title="Mandatory, Supported by Tizen Wearable emulator" src="wearable_s_w.png"></div>
-<div class="title"><h1>Convergence API</h1></div>
-<div class="brief">
- The Convergence API defines interfaces and methods
-for using Tizen device-to-device convergence services.
-        </div>
-<div class="description">
-        <p>
-The following functionality is provided:
-        </p>
-        <ul>
-          <li>
-Discovering nearby devices which support device-to-device services          </li>
-          <li>
-Getting device and service information          </li>
-          <li>
-Connecting and disconnecting services          </li>
-          <li>
-Starting and stopping services          </li>
-          <li>
-Sending data to services          </li>
-          <li>
-Listening to notifications from the service          </li>
-        </ul>
-        <p>
-The collection of supported device-to-device services includes:
-        </p>
-        <ul>
-          <li>
-<em>Remote App Control Service</em> - Allows launching an application on a remote device.          </li>
-          <li>
-<em>App Communication Service</em> - Allows transferring data between applications on local and remote devices.
-<br>Note that there are 'client' and 'server' implementations of this service which allows easy set-up and
-convenient handling of the data exchange process on both local and remote devices.
-For better flexibility, the data transfer occurs in named user-defined communication channels.          </li>
-        </ul>
-        <p>
-For more information on the Device-to-device Convergence features,
-see the <a href="https://developer.tizen.org/development/guides/web-application/connectivity-and-wireless/convergence-services">Convergence Services Guide</a>.
-        </p>
-        <p>
-Tizen 3.0 only supports Wi-Fi for Convergence services. More connectivity, such as BT/BLE and Wi-Fi Direct, is to be supported in further versions.
-        </p>
-       </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-        </p>
-<h2>Table of Contents</h2>
-<ul class="toc">
-<li>1. <a href="#typedefs-section">Type Definitions</a><ul class="toc">
-<li>
-                    1.1. <a href="#DeviceId">DeviceId</a>
-</li>
-<li>
-                    1.2. <a href="#DeviceProfile">DeviceProfile</a>
-</li>
-<li>
-                    1.3. <a href="#Payload">Payload</a>
-</li>
-<li>
-                    1.4. <a href="#PayloadType">PayloadType</a>
-</li>
-<li>
-                    1.5. <a href="#ConnectionState">ConnectionState</a>
-</li>
-<li>
-                    1.6. <a href="#ServiceType">ServiceType</a>
-</li>
-</ul>
-</li>
-<li>2. <a href="#interfaces-section">Interfaces</a><ul class="toc">
-<li>2.1. <a href="#ChannelInfo">ChannelInfo</a>
-</li>
-<li>2.2. <a href="#ConvergenceObject">ConvergenceObject</a>
-</li>
-<li>2.3. <a href="#ConvergenceManager">ConvergenceManager</a>
-</li>
-<li>2.4. <a href="#Device">Device</a>
-</li>
-<li>2.5. <a href="#Service">Service</a>
-</li>
-<li>2.6. <a href="#AppCommunicationService">AppCommunicationService</a>
-</li>
-<li>2.7. <a href="#AppCommunicationClientService">AppCommunicationClientService</a>
-</li>
-<li>2.8. <a href="#AppCommunicationServerService">AppCommunicationServerService</a>
-</li>
-<li>2.9. <a href="#RemoteAppControlService">RemoteAppControlService</a>
-</li>
-<li>2.10. <a href="#PayloadString">PayloadString</a>
-</li>
-<li>2.11. <a href="#PayloadRawBytes">PayloadRawBytes</a>
-</li>
-<li>2.12. <a href="#ClientInfo">ClientInfo</a>
-</li>
-<li>2.13. <a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a>
-</li>
-<li>2.14. <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>
-</li>
-<li>2.15. <a href="#ConnectSuccessCallback">ConnectSuccessCallback</a>
-</li>
-<li>2.16. <a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a>
-</li>
-<li>2.17. <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>
-</li>
-<li>2.18. <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a>
-</li>
-<li>2.19. <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a>
-</li>
-<li>2.20. <a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a>
-</li>
-</ul>
-</li>
-<li>3. <a href="#api-features">Related Feature</a>
-</li>
-<li>4. <a href="#full-webidl">Full WebIDL</a>
-</li>
-</ul>
-<hr>
-<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="#ChannelInfo">ChannelInfo</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ConvergenceObject">ConvergenceObject</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ConvergenceManager">ConvergenceManager</a></td>
-<td>
-<div>void <a href="#ConvergenceManager::startDiscovery">startDiscovery</a> (<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? timeout)</div>
-<div>void <a href="#ConvergenceManager::stopDiscovery">stopDiscovery</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#Device">Device</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#Service">Service</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationService">AppCommunicationService</a></td>
-<td>
-<div>void <a href="#AppCommunicationService::start">start</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::getClientList">getClientList</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::send">send</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::stop">stop</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationService::setListener">setListener</a> (<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)</div>
-<div>void <a href="#AppCommunicationService::unsetListener">unsetListener</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationClientService">AppCommunicationClientService</a></td>
-<td>
-<div>void <a href="#AppCommunicationClientService::connect">connect</a> (<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#AppCommunicationClientService::disconnect">disconnect</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationServerService">AppCommunicationServerService</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlService">RemoteAppControlService</a></td>
-<td>
-<div>void <a href="#RemoteAppControlService::start">start</a> (<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::stop">stop</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::connect">connect</a> (<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::disconnect">disconnect</a> (optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::launch">launch</a> (<a href="application.html#ApplicationId">ApplicationId</a> appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback)</div>
-<div>void <a href="#RemoteAppControlService::launchAppControl">launchAppControl</a> (<a href="application.html#ApplicationControl">ApplicationControl</a> appControl, optional <a href="application.html#ApplicationId">ApplicationId</a>? appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#PayloadString">PayloadString</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#PayloadRawBytes">PayloadRawBytes</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#ClientInfo">ClientInfo</a></td>
-<td></td>
-</tr>
-<tr>
-<td><a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a></td>
-<td>
-<div>void <a href="#DiscoverySuccessCallback::onfound">onfound</a> (<a href="#Device">Device</a> device)</div>
-<div>void <a href="#DiscoverySuccessCallback::onfinished">onfinished</a> (<a href="#Device">Device</a>[] foundDevices)</div>
-</td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlCallback">RemoteAppControlCallback</a></td>
-<td>
-<div>void <a href="#RemoteAppControlCallback::onsuccess">onsuccess</a> (optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data)</div>
-<div>void <a href="#RemoteAppControlCallback::onfailure">onfailure</a> ()</div>
-</td>
-</tr>
-<tr>
-<td><a href="#ConnectSuccessCallback">ConnectSuccessCallback</a></td>
-<td><div>void <a href="#ConnectSuccessCallback::onsuccess">onsuccess</a> (<a href="#Service">Service</a> service)</div></td>
-</tr>
-<tr>
-<td><a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a></td>
-<td><div>void <a href="#RemoteAppControlStartCallback::onsuccess">onsuccess</a> (<a href="#Service">Service</a> service)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a></td>
-<td><div>void <a href="#AppCommunicationSuccessCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a></td>
-<td><div>void <a href="#AppCommunicationStartCallback::onsuccess">onsuccess</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a></td>
-<td><div>void <a href="#AppCommunicationClientListCallback::onsuccess">onsuccess</a> (<a href="#ClientInfo">ClientInfo</a>[] clients)</div></td>
-</tr>
-<tr>
-<td><a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a></td>
-<td><div>void <a href="#AppCommunicationListenerCallback::onnotify">onnotify</a> (<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId)</div></td>
-</tr>
-</tbody>
-</table>
-<div class="typedefs" id="typedefs-section">
-<h2>1. Type Definitions</h2>
-<div class="typedef" id="DeviceId">
-<a class="backward-compatibility-anchor" name="::Convergence::DeviceId"></a><h3>1.1. DeviceId</h3>
-<div class="brief">
- The type of the remote device identifier.
-          </div>
-<pre class="webidl prettyprint">    typedef DOMString DeviceId;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="enum" id="DeviceProfile">
-<a class="backward-compatibility-anchor" name="::Convergence::DeviceProfile"></a><h3>1.2. DeviceProfile</h3>
-<div class="brief">
- Enumeration of the remote device profile.
-          </div>
-<pre class="webidl prettyprint">    enum DeviceProfile {"MOBILE", "WEARABLE", "TV"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="typedef" id="Payload">
-<a class="backward-compatibility-anchor" name="::Convergence::Payload"></a><h3>1.3. Payload</h3>
-<div class="brief">
- The type of payload item. An item is a key-value pair. The value may be either a string or an array of raw bytes.
-          </div>
-<pre class="webidl prettyprint">    typedef (<a href="#PayloadString">PayloadString</a> or <a href="#PayloadRawBytes">PayloadRawBytes</a>) Payload;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-</div>
-<div class="enum" id="PayloadType">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadType"></a><h3>1.4. PayloadType</h3>
-<div class="brief">
- Enumeration of payload types.
-          </div>
-<pre class="webidl prettyprint">    enum PayloadType{"STRING", "RAW_BYTES"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-STRING - The payload key-value value is a string.            </li>
-            <li>
-RAW_BYTES - The payload key-value value is a byte array.            </li>
-          </ul>
-         </div>
-</div>
-<div class="enum" id="ConnectionState">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectionState"></a><h3>1.5. ConnectionState</h3>
-<div class="brief">
- Enumeration of service connection states.
-          </div>
-<pre class="webidl prettyprint">    enum ConnectionState{"CONNECTED", "NOT_CONNECTED", "CONNECTING"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-CONNECTED - Connected state.             </li>
-            <li>
-DISCONNECTED - Not connected state.             </li>
-            <li>
-CONNECTING - Connecting state.             </li>
-          </ul>
-         </div>
-</div>
-<div class="enum" id="ServiceType">
-<a class="backward-compatibility-anchor" name="::Convergence::ServiceType"></a><h3>1.6. ServiceType</h3>
-<div class="brief">
- Enumeration of service type.
-          </div>
-<pre class="webidl prettyprint">    enum ServiceType{"APP_COMM_CLIENT", "APP_COMM_SERVER", "REMOTE_APP_CONTROL"};</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The following values are supported:
-          </p>
-          <ul>
-            <li>
-APP_COMM_CLIENT - Application communication client service.             </li>
-            <li>
-APP_COMM_SERVER - Application communication server service.             </li>
-            <li>
-REMOTE_APP_CONTROL - Remote application control service.             </li>
-          </ul>
-         </div>
-</div>
-</div>
-<div class="interfaces" id="interfaces-section">
-<h2>2. Interfaces</h2>
-<div class="interface" id="ChannelInfo">
-<a class="backward-compatibility-anchor" name="::Convergence::ChannelInfo"></a><h3>2.1. ChannelInfo</h3>
-<div class="brief">
- The channel info interface that specifies the server application which a client application wants to connect with.
-          </div>
-<pre class="webidl prettyprint">    [Constructor(DOMString uri, DOMString id)]
-    interface ChannelInfo {
-      attribute DOMString uri;
-      attribute DOMString id;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The channelinfo is composed of a URI and a channel ID which is used in <a href="convergence.html#AppCommunicationService">App Communication</a> services.
-The channelinfo URI is a URI for an application on the server side.
-The channelinfo ID value is defined by the developer.
-          </p>
-         </div>
-<p><span class="remark"> Remark: </span>
- We assume that the server side app URI is known. For example, either client and server side apps are both developed by the same developer or the server app URI is available from other sources.
-          </p>
-<div class="constructors">
-<h4 id="ChannelInfo::constructor">Constructors</h4>
-<dl>
-<pre class="webidl prettyprint">ChannelInfo(DOMString uri, DOMString id);</pre>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Assume that the "targetApp0.main" application has been installed on remote device */
-var channel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-</pre>
-</div>
-</dl>
-</div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="ChannelInfo::uri">
-<span class="attrName"><span class="type">DOMString </span><span class="name">uri</span></span><div class="brief">
- The uri of the channel.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ChannelInfo::id">
-<span class="attrName"><span class="type">DOMString </span><span class="name">id</span></span><div class="brief">
- The identifier of the channel.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="ConvergenceObject">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceObject"></a><h3>2.2. ConvergenceObject</h3>
-<div class="brief">
- The <em>ConvergenceObject</em> interface defines what is
-instantiated by the <em>Tizen</em> object from the Tizen platform.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ConvergenceObject {
-        readonly attribute <a href="#ConvergenceManager">ConvergenceManager</a> convergence;
-    };</pre>
-<pre class="webidl prettyprint">    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ConvergenceObject">ConvergenceObject</a>;</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The <em>tizen.convergence</em> object allows access to
-Tizen device-to-device convergence API.
-          </p>
-         </div>
-</div>
-<div class="interface" id="ConvergenceManager">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager"></a><h3>2.3. ConvergenceManager</h3>
-<div class="brief">
- The <em>ConvergenceManager</em> interface provides access to the
-<em>convergence</em> object.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ConvergenceManager {
-
-        void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional unsigned long? timeout) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stopDiscovery() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The device-to-device convergence manager allows discovering available
-nearby devices, which support device-to-device services.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="ConvergenceManager::startDiscovery">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager::startDiscovery"></a><code><b><span class="methodName">startDiscovery</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts discovery of nearby devices.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional unsigned long? timeout);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method initiates the device discovery procedure.
-Depending on the progress of this procedure the following methods
-are invoked:
-            </p>
-            <ul>
-              <li>
-<a href="convergence.html#DiscoverySuccessCallback::onfound">onfound()</a> - when a device is found.
-This method is invoked with the device
-information of
-<a href="convergence.html#Device">Device</a> type.
-If no device is found, this method will never be invoked.              </li>
-              <li>
-<a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> - when a discovery procedure is finished.
-This method is invoked
-with the list of discovered device information.              </li>
-            </ul>
-            <p>
-The discovery procedure can be canceled anytime, by calling
-<a href="convergence.html#ConvergenceManager::stopDiscovery">stopDiscovery()</a> in
-the <em>ConvergenceManager</em>.
-<br>Note the <a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> discovery
-callback will be invoked.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The callback to invoke each time the device is
-found. The callback will be invoked also when the discovery
-procedure has finished.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure of device
-discovery.
-                </li>
-          <li class="param">
-<span class="name">timeout</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- Duration of discovery procedure in seconds. If this
-value is omitted or <em>null</em> is passed, the default timeout
-is 5 seconds.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-discovery procedure has started already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Handling device discovery results */
-var discoveryCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      /* Do something with the discovered device */
-      /* If desired device is found, stop discovery with following call */
-      tizen.convergence.stopDiscovery();
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log('Device discovery has finished');
-   }
-};
-
-/* Running device discovery procedure */
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoveryCallback, function(err)
-   {
-      console.log(err.name + ': ' + err.message);
-   }, 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- </pre>
-</div>
-</dd>
-<dt class="method" id="ConvergenceManager::stopDiscovery">
-<a class="backward-compatibility-anchor" name="::Convergence::ConvergenceManager::stopDiscovery"></a><code><b><span class="methodName">stopDiscovery</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops discovery of nearby devices.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stopDiscovery();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops an ongoing discovery procedure.
-            </p>
-           </div>
-<p><span class="remark"> Remark: </span>
- Device discovery is a heavyweight procedure, so it may be
-useful to stop discovery when the required device is found.
-<br>Note this method triggers the <a href="convergence.html#DiscoverySuccessCallback::onfinished">onfinished()</a> discovery
-callback.
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a> code example.
-            </p>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
- with error type InvalidStateError, if the
-discovery procedure has not started yet.
-                </p></li></ul>
-</li></ul>
-        </div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="Device">
-<a class="backward-compatibility-anchor" name="::Convergence::Device"></a><h3>2.4. Device</h3>
-<div class="brief">
- The <em>Device</em> interface provides access to the remote
-device's properties.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface Device {
-
-        readonly attribute <a href="#DeviceId">DeviceId</a> id;
-
-        readonly attribute DOMString name;
-
-        readonly attribute <a href="#DeviceProfile">DeviceProfile</a> type;
-
-        readonly attribute <a href="#Service">Service</a>[] services;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers access to remote device information, such as the unique
-identifier, name, profile type and list of provided services.
-          </p>
-          <p>
-<br>Note, device ID and device type are defined in the platform, and the developer cannot change it.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="Device::id">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DeviceId </span><span class="name">id</span></span><div class="brief">
- The unique device ID.
-<br>Note the device ID is a unique identifier string, generated with following rule.
-If the Remote Server is installed on the device (e.g. TV),
-then the device ID is assigned by application communication server service.
-Usually it has a format of service name and version. Otherwise (e.g. mobile or wearable),
-the device ID is device MAC address.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::name">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DOMString </span><span class="name">name</span></span><div class="brief">
- The device name.
-<br>Note device name is one that is set in the Settings app (Settings&gt;About Devices&gt;Device Name).
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::type">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DeviceProfile </span><span class="name">type</span></span><div class="brief">
- The device profile type.
-<br>Note Device type represents the <a href="https://www.tizen.org/about">profile of the device</a>,
-such as “TV”, “Mobile” or “Wearable”.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Device::services">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">Service[]
-                      </span><span class="name">services</span></span><div class="brief">
- The list of services, available on the device.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="Service">
-<a class="backward-compatibility-anchor" name="::Convergence::Service"></a><h3>2.5. Service</h3>
-<div class="brief">
- The <em>Service</em> interface is a base interface for all
-device-to-device services.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface Service {
-
-        readonly attribute <a href="#ConnectionState">ConnectionState</a> connectionState;
-
-        readonly attribute <a href="#ServiceType">ServiceType</a> type;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface defines common property for all device-to-device services
-          </p>
-         </div>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul><li class="attribute" id="Service::connectionState">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">ConnectionState </span><span class="name">connectionState</span></span><div class="brief">
- The service connection state.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="Service::type">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">ServiceType </span><span class="name">type</span></span><div class="brief">
- The service type.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="AppCommunicationService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService"></a><h3>2.6. AppCommunicationService</h3>
-<div class="brief">
- The <em>AppCommunicationService</em> interface defines the base interface
-of both application communication
-<a href="convergence.html#AppCommunicationClientService">Client</a> and
-<a href="convergence.html#AppCommunicationServerService">Server</a> services
-and specifies common service features, such as start, stop, send, listener etc.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface AppCommunicationService : <a href="#Service">Service</a> {
-
-        void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#Payload">Payload</a>[] payload,
-            <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)
-            raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void unsetListener();
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-App Communication Service allows transferring data between apps on local and remote devices.
-The App Communication Service relies on a Remote Server. The initialization and execution of a server app
-(the app on the side with the Remote Server, e.g. TV) and a client app (e.g. an app on a mobile or wearable device)
-are slightly different. Furthermore, the client app can remotely launch an app on the server side or connect to an
-already running server app, but the reverse way is impossible. More than one client can be connected to a server app.
-For example, multiple players on mobile devices can connect to a game application on a TV which takes a role of a server.
-Both client and server side apps can send payloads and listen to each other.
-          </p>
-          <p>
-<br>Note there are <a href="convergence.html#AppCommunicationClientService">client</a> and
-<a href="convergence.html#AppCommunicationServerService">server</a> implementations
-of this service for both local and remote devices. For better flexibility, the data transfer occurs in a user-defined
-<a href="convergence.html#ChannelInfo">ChannelInfo</a>.
-          </p>
-          <p>
-These interfaces offer the following service features:
-          </p>
-          <ul>
-            <li>
-Starting and stopping the service            </li>
-            <li>
-Sending payloads to the service            </li>
-            <li>
-Listening to remote service notifications            </li>
-            <li>
-Getting the list of clients that are connected to the service            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationService::start">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::start"></a><code><b><span class="methodName">start</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method starts the channel of the service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidStateError: If the service has already started the channel. Note some services don't require a connection and disconnection procedures              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method for application communication client service, the service must be connected with the
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-<br>Note ChannelInfo in the application communication service specifies a server app which a client wants to connect with.
-ChannelInfo URI is a URI of the server side app, while ChannelInfo ID is a developer-defined value.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(channelinfo, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channelinfo.uri);
-   console.log('channel id: ' + channelinfo.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-/* Create an instance of application communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(channelinfo, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channelinfo.uri);
-   console.log('channel id: ' + channelinfo.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::getClientList">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::getClientList"></a><code><b><span class="methodName">getClientList</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Get the client lists connected to the channel
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected and
-started with
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> and
-<a href="convergence.html#AppCommunicationService::start">start()</a> methods
-correspondingly.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess(clientinfolist)
-{
-   console.log('get client list');
-   for (i in clientinfolist)
-   {
-      console.log('isHost: ' + clientinfolist[i].isHost);
-      console.log('client id: ' + clientinfolist[i].clientId);
-      console.log('connection time: ' + clientinfolist[i].connectionTime);
-   }
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri' + channel.uri);
-   console.log('channel id ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   service.getClientList(requestChannel, onsuccess, onerror);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- get client list
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- isHost: false
- client id: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connection time: 1420163913807
- isHost: false
- client id: c13adb22-5423-22e4-5d8q-adf872d4q889
- connection time: 1420163913125
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess(clientinfolist)
-{
-   console.log('get client list');
-   for (i in clientinfolist)
-   {
-      console.log('isHost: ' + clientinfolist[i].isHost);
-      console.log('client id: ' + clientinfolist[i].clientId);
-      console.log('connection time: ' + clientinfolist[i].connectionTime);
-   }
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri' + channel.uri);
-   console.log('channel id ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   clientService.getClientList(requestChannel, onsuccess, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- get client list
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- isHost: false
- client id: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connection time: 1420163913807
- isHost: false
- client id: c13adb22-5423-22e4-5d8q-adf872d4q889
- connection time: 1420163913125
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::send">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::send"></a><code><b><span class="methodName">send</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends a payload to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#AppCommunicationService::start">start()</a> code example.
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected and
-started with
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> and
-<a href="convergence.html#AppCommunicationService::start">start()</a> methods
-correspondingly.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelinfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">payload</span>:
- The payload containing request data.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function sendSuccessCallback(channelinfo)
-{
-   console.log('requestPayload sent');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by Multi Screen server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   /* Send data to the remote service */
-   service.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.Channel('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function sendSuccessCallback(channel)
-{
-   console.log('requestPayload sent');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   /* Send data to the remote service */
-   clientService.send(channel, requestPayload, sendSuccessCallback, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               clientService = device.service[i];
-               clientService.start(requestChannel, onstarted, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::stop">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::stop"></a><code><b><span class="methodName">stop</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops the specified channel of the service.
-<br>Note When all clients have stopped using the service channel, the server side automatically terminates the application.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an invalid value              </li>
-              <li>
- InvalidStateError: If the service has not started the channel              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channelInfo of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel1 = new tizen.ChannelInfo('targetApp0.main', 'chA');
-var requestChannel2 = new tizen.ChannelInfo('targetApp1.main', 'chB');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped(channel)
-{
-   console.log('Channel stopped');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('clienti id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   if (channel id == 'chB')
-   {
-      service.stop(requestChannel2, onstopped);
-   }
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-service.start(requestChannel1, onstarted, onerror);
-service.start(requestChannel2, onstarted, onerror);
-</pre>
-</div>
-
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre>
-Channel started
-channel uri: targetApp0.main
-channel id: chA
-clientinfo
-isHost: true
-clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
-connectionTime: 1420163913035
-Channel started
-channel uri: targetApp1.main
-channel id: chB
-clientinfo
-isHost: true
-clientId: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
-connectionTime: 1420163913807
-Channel stopped
-channel uri: targetApp1.main
-channel id: chB
-</pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel1 = new tizen.ChannelInfo('targetApp0.main', 'chA');
-var requestChannel2 = new tizen.ChannelInfo('targetApp1.main', 'chB');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped(channel)
-{
-   console.log('Channel stopped');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-   if (channel id == 'chB')
-   {
-      clientService.stop(requestChannel2, onstopped);
-   }
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      clientService = service;
-      service.start(requestChannel, onstarted, onerror);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- requestPayload sent
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- Channel started
- channel uri: targetApp1.main
- channel id: chB
- clientinfo
- isHost: false
- clientId: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- connectionTime: 1420163913807
- Channel stopped
- channel uri: targetApp1.main
- channel id: chB
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::setListener">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::setListener"></a><code><b><span class="methodName">setListener</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Registers the service listener.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">listenerCallback</span>:
- The method to invoke when a service
-notification is received.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul><li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li></ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication server service */
-
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onnotify(channel, payload, senderclientid)
-{
-   console.log('On service notification');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   /* clientid of the sender of the payload */
-   console.log('client id of sender: ' + senderclientid);
-   for (i in payload)
-   {
-      console.log('payload: ' + payload[i].key + '-' + payload[i].value);
-   }
-   /* If using unsetListener, unregisters the listener and stops receiving notifications from the service */
-   service.unsetListener();
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by Multi Screen server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-/* Create an instance of app communication server service object */
-var service = new tizen.AppCommunicationServerService();
-/* Register listener to receive notifications from remote service */
-service.setListener(onnotify);
-service.start(requestChannel, onstarted, onerror);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: true
- client id: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connection time: 1420163913035
- On service notification
- channel uri: targetApp0.main
- channel id: chA
- client id of sender: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- payload: msg-hello
- </pre>
-</div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* App communication client service */
-
-var clientService;
-var requestChannel = new tizen.ChannelInfo('targetApp0.main', 'chA');
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onnotify(channel, payload, senderclientid)
-{
-   console.log('On service notification');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   /* clientid of the sender of the payload */
-   console.log('client id of sender: ' + senderclientid);
-   for (i in payload)
-   {
-      console.log('payload ' + payload[i].key + ': ' + payload[i].value);
-   }
-   /* If using unsetListener, unregisters the listener and stops receiving notifications from the service */
-   clientService.unsetListener();
-}
-
-function onstarted(channel, clientinfo)
-{
-   console.log('Channel started');
-   console.log('channel uri: ' + channel.uri);
-   console.log('channel id: ' + channel.id);
-   console.log('clientinfo');
-   console.log('isHost: ' + clientinfo.isHost);
-   /* Remote DeviceId generated by remote server */
-   console.log('client id: ' + clientinfo.clientId);
-   console.log('connection time: ' + clientinfo.connectionTime);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-      service.start(requestChannel, onstarted, onerror);
-      /* Register listener to receive notifications from remote service */
-      service.setListener(onnotify);
-   }
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 1
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Channel started
- channel uri: targetApp0.main
- channel id: chA
- clientinfo
- isHost: false
- clientId: 2c9f9510-48c2-11e6-b620-abffc41c391f
- connectionTime: 1420163913035
- On service notification
- channel uri: targetApp0.main
- channel id: chA
- client id of sender: d6ca19f0-9222-11e4-b829-67c2b8c2d9bc
- payload: msg-hello
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationService::unsetListener">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationService::unsetListener"></a><code><b><span class="methodName">unsetListener</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Unregisters the service listener.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void unsetListener();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at
-<a href="convergence.html#AppCommunicationService::setListener">setListener()</a> code example.
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationClientService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService"></a><h3>2.7. AppCommunicationClientService</h3>
-<div class="brief">
- The <em>AppCommunicationClientService</em> interface provides access to
-application communication client service features.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface AppCommunicationClientService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following service features:
-          </p>
-          <ul>
-            <li>
-Connecting and disconnecting the remote service            </li>
-            <li>
-Reading immediate data of the remote service            </li>
-            <li>
-Listening to remote service update notifications            </li>
-            <li>
-Sending data to the remote service            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationClientService::connect">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService::connect"></a><code><b><span class="methodName">connect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Connects to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Makes physical connection such as Wi-Fi or Bluetooth to the
-service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Connecting is only supported for services on devices not connected via WiFi.
-For devices connected via WiFi, <a href="convergence.html#ConnectionState">connectionState</a> will always be <em>"CONNECTED"</em>.
-            </p>
-<p><span class="remark"> Remark: </span>
- App developers do not need to specify the connectivity type
-explicitly. The framework automatically determines which connectivity
-to use in a selected service.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is connected already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   if (service.type === "APP_COMM_CLIENT")
-   {
-      console.log('Connected to the app communication client service');
-   }
-   else if (service.type === "REMOTE_APP_CONTROL")
-   {
-      console.log('Connected to the remote app control service');
-   }
-   service.disconnect();
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "APP_COMM_CLIENT")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         else if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Connected to the app communication client service
- Connected to the service
- Connected to the remote app control service
- </pre>
-</div>
-</dd>
-<dt class="method" id="AppCommunicationClientService::disconnect">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientService::disconnect"></a><code><b><span class="methodName">disconnect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Disconnects the connected service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Disconnect physical connection with device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Disconnecting is only supported for services on devices not connected via WiFi.
-            </p>
-<p><span class="remark"> Remark: </span>
- Example of using can be found at <a href="convergence.html#AppCommunicationClientService::connect">connect()</a> code example.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service was not connected yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationServerService">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationServerService"></a><h3>2.8. AppCommunicationServerService</h3>
-<div class="brief">
- The <em>AppCommunicationServerService</em> interface provides access to
-application communication server service features.
-          </div>
-<pre class="webidl prettyprint">    [Constructor()]
-    interface AppCommunicationServerService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following service features:
-          </p>
-          <ul>
-            <li>
-Instantiating the service            </li>
-            <li>
-Reading immediate data of the service            </li>
-            <li>
-Listening to service update notifications            </li>
-            <li>
-Sending data for the service            </li>
-          </ul>
-         </div>
-<p class="warning"><b>Warning:</b>
- AppCommunicationServerService API is supported on Tizen 3.0 TV product only.
-          </p>
-<p><span class="remark"> Remark: </span>
- application server service is used without discovery phase.
-The developer should instantiate a standalone service object using
-the constructor.
-          </p>
-
-      <div class="constructors">
-<h4 id="AppCommunicationServerService::constructor">Constructors</h4>
-<dl>
-<pre class="webidl prettyprint">AppCommunicationServerService();</pre>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Create an instance of application communication server service object */
-var service = new tizen.AppCommunicationServerService();
-</pre>
-</div>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlService">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService"></a><h3>2.9. RemoteAppControlService</h3>
-<div class="brief">
- The <em>RemoteAppControlService</em> interface provides access to
-remote application control service features.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface RemoteAppControlService : <a href="#Service">Service</a> {
-        void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl,
-            optional <a href="application.html#ApplicationId">ApplicationId</a>? appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-This interface offers following device-to-device service features:
-          </p>
-          <ul>
-            <li>
-Connecting and disconnecting the service            </li>
-            <li>
-Sending app control data to the service            </li>
-            <li>
-Receiving app control results            </li>
-          </ul>
-         </div>
-
-      <div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlService::start">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::start"></a><code><b><span class="methodName">start</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Starts and initiates remote service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method starts the remote app control service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p><span class="remark"> Remark : </span>
- Before using this method for remote application service, the service must be connected with the
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-the service is already started.
-                </p></li>
-<li class="list"><p>
- with error type AbortError, if the
-other error occurs during start.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstarted(service)
-{
-   console.log('Remote app control service started');
-   service.disconnect();
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               device.services[i].start(onstarted, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
-&lt;&lt; Found a device
-   - id: de2bea-ddvia
-   - name : deviceA
-   - type : TV
-   - service amount: 2
-&lt;&lt; Device discovery has finished
-Connected to the remote app control service
-Remote app control service started
-</pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::stop">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::stop"></a><code><b><span class="methodName">stop</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Stops remote service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method stops and release internally allocated resources for remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-the service is not started yet.
-                </p></li>
-<li class="list"><p>
- with error type AbortError, if the
-other error occurs during start.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onstopped()
-{
-   console.log('Remote App Control service stopped');
-   /* Disconnect */
-   service.disconnect();
-}
-
-function onstarted(service)
-{
-   console.log('Remote App Control service started');
-   /* Stop the service */
-   service.stop(onstopped, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            else
-            {
-               device.services[i].start(onstarted, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
-&lt;&lt; Found a device
-   - id: de2bea-ddvia
-   - name : deviceA
-   - type : TV
-   - service amount: 2
-&lt;&lt; Device discovery has finished
-Connected to the remote app control service
-Remote App Control service started
-Remote App Control service stopped
-</pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::connect">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::connect"></a><code><b><span class="methodName">connect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Connects to the service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Makes physical connection such as Wi-Fi or Bluetooth to remote
-device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Connecting is only supported for services on devices not connected via WiFi.
-For devices connected via WiFi, <a href="convergence.html#ConnectionState">connectionState</a> will always be <em>"CONNECTED"</em>.
-            </p>
-<p><span class="remark"> Remark: </span>
- App developers do not need to specify the connectivity type
-explicitly. Framework automatically determines which connectivity
-to use in a selected service.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is connected already.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the remote app control service');
-   service.disconnect();
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the remote app control service
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::disconnect">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::disconnect"></a><code><b><span class="methodName">disconnect</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Disconnects the connected service.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-Disconnect physical connection with device-to-device service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth
-            </p>
-<p class="warning"><b>Warning:</b>
- Disconnecting is only supported for services on devices not connected via WiFi.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service was not connected yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function ondisconnected()
-{
-   console.log('Disconnected to the service');
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log('Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState == "CONNECTED")
-            {
-               device.services[i].disconnect(ondisconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log('Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Disconnected to the service
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::launch">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::launch"></a><code><b><span class="methodName">launch</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends the given application ID to launch an application on the remote device.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method sends an application ID to the remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-              <li>
- InvalidValuesError: If any of the input parameters contain an
-invalid value              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected
-with
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method
-and started with <a href="convergence.html#RemoteAppControlService::start">start()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">appId</span>:
- The target app id.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is not started yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-/* Assume that the "targetApp0.main" application has been installed on remote device */
-var requestAppId = 'targetApp0.main';
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-function onsuccess()
-{
-   console.log('The application has launched successfully');
-}
-
-function onstarted(service)
-{
-   console.log('Service started');
-
-   /* Launching server app remotely */
-   service.launch(requestAppId, remoteAppControlCallback, onerror);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-   /* Start the service */
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-            tizen.convergence.stopDiscovery();
-         }
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Service started
- The application has launched successfully
- </pre>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlService::launchAppControl">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlService::launchAppControl"></a><code><b><span class="methodName">launchAppControl</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Sends an app control to launch an application on the remote device.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl, optional <a href="application.html#ApplicationId">ApplicationId</a>? appId, optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback, optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback, optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="description">
-            <p>
-This method sends an app control to the remote service.
-            </p>
-           </div>
-<div class="description">
-            <p>
-The ErrorCallback is launched with these error types:
-            </p>
-            <ul>
-              <li>
- AbortError: If any system error occurred              </li>
-            </ul>
-           </div>
-<p><span class="privilegelevel">
-            Privilege level: </span>
- public
-            </p>
-<p><span class="privilege">
-            Privilege: </span>
- http://tizen.org/privilege/internet <br>http://tizen.org/privilege/bluetooth <br>http://tizen.org/privilege/d2d.datasharing
-            </p>
-<p><span class="remark"> Remark: </span>
- Before using this method, the service must be connected with
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> method
-and started with <a href="convergence.html#RemoteAppControlService::start">start()</a> method.
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">appControl</span>:
- The app control data.
-                </li>
-          <li class="param">
-<span class="name">appId</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The target app id.
-                </li>
-          <li class="param">
-<span class="name">successCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on success.
-                </li>
-          <li class="param">
-<span class="name">errorCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke on failure.
-                </li>
-          <li class="param">
-<span class="name">replyCallback</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- The method to invoke when the application gets back result from the remote service.
-                </li>
-        </ul>
-</div>
-<div class="exceptionlist">
-<p><span class="except">Exceptions:</span></p>
-          <ul class="exception"><li>WebAPIException<ul>
-<li class="list"><p>
- with error type TypeMismatchError, if any
-input parameter is not compatible with the expected type for that
-parameter.
-                </p></li>
-<li class="list"><p>
- with error type SecurityError, if the
-application does not have the privilege to call this method.
-                </p></li>
-<li class="list"><p>
- with error type InvalidStateError, if the
-service is not started yet.
-                </p></li>
-</ul>
-</li></ul>
-        </div>
-<div class="example">
-<span class="example"><p>Code example:</p></span><pre name="code" class="examplecode prettyprint">
-var requestAppControl = new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/view',
-                                                     null, 'image/jpeg', null,
-                                                     [new tizen.ApplicationControlData('images', [testImgData])]);
-
-function onsuccess()
-{
-   console.log('Launch application control succeed');
-}
-
-function onerror(err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-
-var remoteAppControlCallback =
-{
-   onsuccess: function(data)
-   {
-      console.log('On remote app control service reply');
-      for(var i = 0; i &lt; data.length; i++)
-      {
-         console.log("key : " + data[i].key + "value : " + data[i].value[0]);
-      }
-   },
-   /* Callee returned failure */
-   onfailure: function()
-   {
-      console.log('The launch application control failed');
-   }
-}
-
-function onstarted(service)
-{
-   console.log('Service started');
-
-   /* Send data to the remote service */
-   service.launchAppControl(requestAppControl, null, onsuccess, onerror, remoteAppControlCallback);
-}
-
-function onconnected(service)
-{
-   console.log('Connected to the service');
-
-   /* Start the service */
-   service.start(onstarted, onerror);
-}
-
-var discoverySuccessCallback =
-{
-   onfound: function(device)
-   {
-      console.log(' Found a device');
-      console.log(" - id: " + device.id);
-      console.log(" - name: " + device.name);
-      console.log(" - type: " + device.type);
-      console.log(" - service amount: " + device.services.length);
-      for (i in device.services)
-      {
-         if (device.services[i].type === "REMOTE_APP_CONTROL")
-         {
-            if (device.services[i].connectionState != "CONNECTED")
-            {
-               device.services[i].connect(onconnected, onerror);
-            }
-         }
-         tizen.convergence.stopDiscovery();
-      }
-   },
-
-   onfinished: function(foundDevices)
-   {
-      console.log(' Device discovery has finished');
-      console.log(" - devices found: " + foundDevices.length);
-   }
-};
-
-try
-{
-   console.log('&gt;&gt; STARTING DEVICE DISCOVERY');
-   tizen.convergence.startDiscovery(discoverySuccessCallback, onerror, 60 * 60);
-}
-catch (err)
-{
-   console.log(err.name + ': ' + err.message);
-}
-</pre>
-</div>
-<div class="output">
-<span class="title"><p>Output example:</p></span><pre> &gt;&gt; STARTING DEVICE DISCOVERY
- &lt;&lt; Found a device
-  - id: de2bea-ddvia
-  - name: deviceA
-  - type: TV
-  - service amount: 2
- &lt;&lt; Device discovery has finished
- Connected to the service
- Service started
- </pre>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="dictionary" id="PayloadString">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadString"></a><h3>2.10. PayloadString</h3>
-<div class="brief">
- The dictionary that specifies a payload string for the
-device-to-device service.
-          </div>
-<pre class="webidl prettyprint">    dictionary PayloadString {
-        DOMString key;
-
-        DOMString value;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-<em>PayloadString</em> is a key-value pair. Both the key and value are strings.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Dictionary members</h4>
-<dl>
-<dt class="member" id="PayloadString::key"><span class="attrName">DOMString key</span></dt>
-<dd>
-<div class="brief">
- The name of the payload string.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-<dt class="member" id="PayloadString::value"><span class="attrName">DOMString value</span></dt>
-<dd>
-<div class="brief">
- The value of the payload string.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="dictionary" id="PayloadRawBytes">
-<a class="backward-compatibility-anchor" name="::Convergence::PayloadRawBytes"></a><h3>2.11. PayloadRawBytes</h3>
-<div class="brief">
- The dictionary that specifies a raw bytes payload for the
-device-to-device service.
-          </div>
-<pre class="webidl prettyprint">    dictionary PayloadRawBytes {
-        DOMString key;
-
-        byte[] value;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-<em>PayloadRawBytes</em> is a key-value pair. The key is a string and the value is a byte
-array which is to be delivered to a remote service.
-          </p>
-         </div>
-<div class="attributes">
-<h4>Dictionary members</h4>
-<dl>
-<dt class="member" id="PayloadRawBytes::key"><span class="attrName">DOMString key</span></dt>
-<dd>
-<div class="brief">
- The name of the payload byte array.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-<dt class="member" id="PayloadRawBytes::value"><span class="attrName">byte[] value</span></dt>
-<dd>
-<div class="brief">
- The bytes of the payload byte array.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="ClientInfo">
-<a class="backward-compatibility-anchor" name="::Convergence::ClientInfo"></a><h3>2.12. ClientInfo</h3>
-<div class="brief">
- The interface specifies client information.
-          </div>
-<pre class="webidl prettyprint">    [NoInterfaceObject] interface ClientInfo {
-        readonly attribute boolean isHost;
-
-        readonly attribute DOMString clientId;
-
-        readonly attribute long connectionTime;
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="attributes">
-<h4>Attributes</h4>
-<ul>
-<li class="attribute" id="ClientInfo::isHost">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">boolean </span><span class="name">isHost</span></span><div class="brief">
- The value indicating if the service is local (true) or remote (false).
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ClientInfo::clientId">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">DOMString </span><span class="name">clientId</span></span><div class="brief">
- The unique client id.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-<li class="attribute" id="ClientInfo::connectionTime">
-<span class="attrName"><span class="readonly">                readonly
-</span><span class="type">long </span><span class="name">connectionTime</span></span><div class="brief">
- The connection time in milliseconds.
-            </div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</li>
-</ul>
-</div>
-</div>
-<div class="interface" id="DiscoverySuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback"></a><h3>2.13. DiscoverySuccessCallback</h3>
-<div class="brief">
- The <em>DiscoverySuccessCallback</em> interface defines the
-success method for <a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a>.
-          </div>
-<pre class="webidl prettyprint">    [Callback, NoInterfaceObject] interface DiscoverySuccessCallback {
-
-        void onfound(<a href="#Device">Device</a> device);
-
-        void onfinished(<a href="#Device">Device</a>[] foundDevices);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-Specifies the type of function passed to <em>ConvergenceManager.startDiscovery()</em>.
-Called when device providing device-to-device service is discovered nearby.
-          </p>
-          <p>
-A usage example can be found in the
-<a href="convergence.html#ConvergenceManager::startDiscovery">startDiscovery()</a> code example.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="DiscoverySuccessCallback::onfound">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback::onfound"></a><code><b><span class="methodName">onfound</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when device is discovered during the discovery
-procedure.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfound(<a href="#Device">Device</a> device);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">device</span>:
- The discovered remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-<dt class="method" id="DiscoverySuccessCallback::onfinished">
-<a class="backward-compatibility-anchor" name="::Convergence::DiscoverySuccessCallback::onfinished"></a><code><b><span class="methodName">onfinished</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the device discovery procedure has finished.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfinished(<a href="#Device">Device</a>[] foundDevices);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">foundDevices</span>:
- Array of devices found in this discovery session.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback"></a><h3>2.14. RemoteAppControlCallback</h3>
-<div class="brief">
- The RemoteAppControlCallback specifies callbacks that are invoked as a reply
-from the requested application control within the application control requester.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlCallback {
-
-        void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-
-        void onfailure();
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#RemoteAppControlService::launchAppControl">launchAppControl()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the received reply from the requested application on the remote device has no errors.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">data</span><span class="optional"> [optional]</span><span class="optional"> [nullable]</span>:
- An array of ApplicationControlData objects
-                </li>
-        </ul>
-</div>
-</dd>
-<dt class="method" id="RemoteAppControlCallback::onfailure">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlCallback::onfailure"></a><code><b><span class="methodName">onfailure</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the received reply from the requested application on the remote device contains any error.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onfailure();
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="ConnectSuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectSuccessCallback"></a><h3>2.15. ConnectSuccessCallback</h3>
-<div class="brief">
- The <em>ConnectSuccessCallback</em> interface defines the success method
-to be invoked when a service is connected.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface ConnectSuccessCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationClientService::connect">connect()</a> of AppCommunicationClientService and
-<a href="convergence.html#RemoteAppControlService::connect">connect()</a> of RemoteAppControlService methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="ConnectSuccessCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::ConnectSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service connection is established.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Service">Service</a> service);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">service</span>:
- The connected service on a remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="RemoteAppControlStartCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlStartCallback"></a><h3>2.16. RemoteAppControlStartCallback</h3>
-<div class="brief">
- The <em>RemoteAppControlStartCallback</em> interface defines the success method
-to be invoked when a RemoteAppControlService is started.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlStartCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#RemoteAppControlService::start">start()</a> of RemoteAppControlService methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="RemoteAppControlStartCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::RemoteAppControlStartCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service connection is established.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#Service">Service</a> service);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">service</span>:
- The connected service on a remote device.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationSuccessCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationSuccessCallback"></a><h3>2.17. AppCommunicationSuccessCallback</h3>
-<div class="brief">
- The <em>AppCommunicationSuccessCallback</em> interface defines the success method
-to be invoked when a service operation, such as stop or send is successful.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationSuccessCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::stop">stop()</a> or
-<a href="convergence.html#AppCommunicationService::send">send()</a> methods.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationSuccessCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationSuccessCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service operation is successful.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationStartCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationStartCallback"></a><h3>2.18. AppCommunicationStartCallback</h3>
-<div class="brief">
- The <em>AppCommunicationStartCallback</em> interface defines the success method
-to be invoked when a start service operation is successful.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationStartCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::start">start()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationStartCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationStartCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the start service operation is successful.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">clientInfo</span>:
- The client information.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationClientListCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientListCallback"></a><h3>2.19. AppCommunicationClientListCallback</h3>
-<div class="brief">
- The <em>AppCommunicationClientListCallback</em> interface defines the
-method to be invoked when requested a list of clients, connected to
-the specified channel of the application communication service.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationClientListCallback {
-
-        void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type is invoked in
-<a href="convergence.html#AppCommunicationService::getClientList">getClientList()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationClientListCallback::onsuccess">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationClientListCallback::onsuccess"></a><code><b><span class="methodName">onsuccess</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the list of connected clients is requested.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">clients</span>:
- The list of connected clients.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-<div class="interface" id="AppCommunicationListenerCallback">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationListenerCallback"></a><h3>2.20. AppCommunicationListenerCallback</h3>
-<div class="brief">
- The <em>AppCommunicationListenerCallback</em> interface defines the
-method to be invoked when a service notification is received
-from the application communication service.
-          </div>
-<pre class="webidl prettyprint">    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationListenerCallback {
-
-        void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-    };</pre>
-<p><span class="version">
-            Since: </span>
- 3.0
-          </p>
-<div class="description">
-          <p>
-The callback of this type can be assigned to the service using the
-<a href="convergence.html#AppCommunicationService::setListener">setListener()</a> method.
-          </p>
-         </div>
-<div class="methods">
-<h4>Methods</h4>
-<dl>
-<dt class="method" id="AppCommunicationListenerCallback::onnotify">
-<a class="backward-compatibility-anchor" name="::Convergence::AppCommunicationListenerCallback::onnotify"></a><code><b><span class="methodName">onnotify</span></b></code>
-</dt>
-<dd>
-<div class="brief">
- Called when the service channel notification is received.
-            </div>
-<div class="synopsis"><pre class="signature prettyprint">void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-             </pre></div>
-<p><span class="version">
-            Since: </span>
- 3.0
-            </p>
-<div class="parameters">
-<p><span class="param">Parameters:</span></p>
-<ul>
-          <li class="param">
-<span class="name">channelInfo</span>:
- The channel info of the service with specified URI and ID.
-                </li>
-          <li class="param">
-<span class="name">payload</span>:
- The payload containing notification data.
-                </li>
-          <li class="param">
-<span class="name">senderClientId</span>:
- The client id of the sender.
-                </li>
-        </ul>
-</div>
-</dd>
-</dl>
-</div>
-</div>
-</div>
-<h2 id="api-features">3. Related Feature</h2>
-<div id="def-api-features" class="def-api-features">
-        You can check if this API is supported with <em>tizen.systeminfo.getCapability()</em> and decide enable/disable codes that need this API.
-                    <div class="def-api-feature">
-<p><div class="description">
-            <p>
-To guarantee that the application runs on a device with Convergence feature,
-declare the following feature requirements in the config file:
-            </p>
-           </div></p>
-<li class="feature">http://tizen.org/feature/convergence.d2d</li>
-</div>
-<p></p>
-                    For more information, see <a href="https://developer.tizen.org/development/training/web-application/understanding-tizen-programming/application-filtering">Application Filtering</a>.
-</div>
-<h2 id="full-webidl">4. Full WebIDL</h2>
-<pre class="webidl prettyprint">module Convergence {
-
-    typedef DOMString DeviceId;
-
-    enum DeviceProfile {"MOBILE", "WEARABLE", "TV"};
-
-    typedef (<a href="#PayloadString">PayloadString</a> or <a href="#PayloadRawBytes">PayloadRawBytes</a>) Payload;
-
-    enum PayloadType{"STRING", "RAW_BYTES"};
-
-    enum ConnectionState{"CONNECTED", "NOT_CONNECTED", "CONNECTING"};
-
-    enum ServiceType{"APP_COMM_CLIENT", "APP_COMM_SERVER", "REMOTE_APP_CONTROL"};
-
-    [Constructor(DOMString uri, DOMString id)]
-    interface ChannelInfo {
-      attribute DOMString uri;
-      attribute DOMString id;
-    };
-
-    [NoInterfaceObject] interface ConvergenceObject {
-        readonly attribute <a href="#ConvergenceManager">ConvergenceManager</a> convergence;
-    };
-
-    <a href="tizen.html#Tizen">Tizen</a> implements <a href="#ConvergenceObject">ConvergenceObject</a>;
-
-    [NoInterfaceObject] interface ConvergenceManager {
-
-        void startDiscovery(<a href="#DiscoverySuccessCallback">DiscoverySuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional unsigned long? timeout) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stopDiscovery() raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-    };
-
-    [NoInterfaceObject] interface Device {
-
-        readonly attribute <a href="#DeviceId">DeviceId</a> id;
-
-        readonly attribute DOMString name;
-
-        readonly attribute <a href="#DeviceProfile">DeviceProfile</a> type;
-
-        readonly attribute <a href="#Service">Service</a>[] services;
-    };
-
-    [NoInterfaceObject] interface Service {
-
-        readonly attribute <a href="#ConnectionState">ConnectionState</a> connectionState;
-
-        readonly attribute <a href="#ServiceType">ServiceType</a> type;
-    };
-
-    [NoInterfaceObject] interface AppCommunicationService : <a href="#Service">Service</a> {
-
-        void start(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationStartCallback">AppCommunicationStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void getClientList(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#AppCommunicationClientListCallback">AppCommunicationClientListCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void send(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            <a href="#Payload">Payload</a>[] payload,
-            <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(<a href="#ChannelInfo">ChannelInfo</a> channelInfo,
-            optional <a href="#AppCommunicationSuccessCallback">AppCommunicationSuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void setListener(<a href="#AppCommunicationListenerCallback">AppCommunicationListenerCallback</a> listenerCallback)
-            raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void unsetListener();
-    };
-
-    [NoInterfaceObject] interface AppCommunicationClientService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };
-
-
-    [Constructor()]
-    interface AppCommunicationServerService : <a href="#AppCommunicationService">AppCommunicationService</a> {
-    };
-
-    [NoInterfaceObject] interface RemoteAppControlService : <a href="#Service">Service</a> {
-        void start(<a href="#RemoteAppControlStartCallback">RemoteAppControlStartCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void stop(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-                  optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void connect(<a href="#ConnectSuccessCallback">ConnectSuccessCallback</a> successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void disconnect(optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launch(<a href="application.html#ApplicationId">ApplicationId</a> appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-        void launchAppControl(<a href="application.html#ApplicationControl">ApplicationControl</a> appControl,
-            optional <a href="application.html#ApplicationId">ApplicationId</a>? appId,
-            optional <a href="tizen.html#SuccessCallback">SuccessCallback</a>? successCallback,
-            optional <a href="tizen.html#ErrorCallback">ErrorCallback</a>? errorCallback,
-            optional <a href="#RemoteAppControlCallback">RemoteAppControlCallback</a>? replyCallback) raises(<a href="tizen.html#WebAPIException">WebAPIException</a>);
-
-    };
-
-    dictionary PayloadString {
-        DOMString key;
-
-        DOMString value;
-    };
-
-    dictionary PayloadRawBytes {
-        DOMString key;
-
-        byte[] value;
-    };
-
-    [NoInterfaceObject] interface ClientInfo {
-        readonly attribute boolean isHost;
-
-        readonly attribute DOMString clientId;
-
-        readonly attribute long connectionTime;
-    };
-
-    [Callback, NoInterfaceObject] interface DiscoverySuccessCallback {
-
-        void onfound(<a href="#Device">Device</a> device);
-
-        void onfinished(<a href="#Device">Device</a>[] foundDevices);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlCallback {
-
-        void onsuccess(optional <a href="application.html#ApplicationControlData">ApplicationControlData</a>[]? data);
-
-        void onfailure();
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface ConnectSuccessCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface RemoteAppControlStartCallback {
-
-        void onsuccess(<a href="#Service">Service</a> service);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationSuccessCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationStartCallback {
-
-        void onsuccess(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#ClientInfo">ClientInfo</a> clientInfo);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationClientListCallback {
-
-        void onsuccess(<a href="#ClientInfo">ClientInfo</a>[] clients);
-    };
-
-    [Callback=FunctionOnly, NoInterfaceObject] interface AppCommunicationListenerCallback {
-
-        void onnotify(<a href="#ChannelInfo">ChannelInfo</a> channelInfo, <a href="#Payload">Payload</a>[] payload, DOMString senderClientId);
-    };
-};</pre>
-</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>
index 6fa8462..73b601d 100644 (file)
@@ -56,7 +56,6 @@
                                                <li><a href="device_api/mobile/index.html#Network">Network</a>
                                                        <ul>
                                                                <li><a href="device_api/mobile/tizen/bluetooth.html">Bluetooth</a></li>
-                                                               <li><a href="device_api/mobile/tizen/convergence.html">Convergence</a></li>
                                                                <li><a href="device_api/mobile/tizen/iotcon.html">Iotcon</a></li>
                                                                <li><a href="device_api/mobile/tizen/networkbearerselection.html">Network Bearer Selection</a></li>
                                                                <li><a href="device_api/mobile/tizen/nfc.html">NFC</a></li>
                                                <li><a href="device_api/wearable/index.html#Network">Network</a>
                                                        <ul>
                                                                <li><a href="device_api/wearable/tizen/bluetooth.html">Bluetooth</a></li>
-                                                               <li><a href="device_api/wearable/tizen/convergence.html">Convergence</a></li>
                                                                <li><a href="device_api/wearable/tizen/iotcon.html">Iotcon</a></li>
                                                                <li><a href="device_api/wearable/tizen/nfc.html">NFC</a></li>
                                                                <li><a href="device_api/wearable/tizen/se.html">Secure Element</a></li>
                                                </li>
                                                <li><a href="device_api/tv/index.html#Network">Network</a>
                                                        <ul>
-                                                               <li><a href="device_api/tv/tizen/convergence.html">Convergence</a>
                                                                <li><a href="device_api/tv/tizen/iotcon.html">Iotcon</a></li>
                                                        </ul>
                                                </li>
index 1c2d568..10bbb2d 100644 (file)
@@ -46,7 +46,6 @@
 
                                <topic href="html/device_api/mobile/index.html#Network" label="Network">
                                        <topic href="html/device_api/mobile/tizen/bluetooth.html" label="Bluetooth" ></topic>
-                                       <topic href="html/device_api/mobile/tizen/convergence.html" label="Convergence" ></topic>
                                        <topic href="html/device_api/mobile/tizen/iotcon.html" label="Iotcon" ></topic>
                                        <topic href="html/device_api/mobile/tizen/networkbearerselection.html" label="Network Bearer Selection" ></topic>
                                        <topic href="html/device_api/mobile/tizen/nfc.html" label="NFC" ></topic>
 
                                <topic href="html/device_api/wearable/index.html#Network" label="Network">
                                        <topic href="html/device_api/wearable/tizen/bluetooth.html" label="Bluetooth" ></topic>
-                                       <topic href="html/device_api/wearable/tizen/convergence.html" label="Convergence" ></topic>
                                        <topic href="html/device_api/wearable/tizen/iotcon.html" label="Iotcon" ></topic>
                                        <topic href="html/device_api/wearable/tizen/nfc.html" label="NFC" ></topic>
                                        <topic href="html/device_api/wearable/tizen/se.html" label="Secure Element" ></topic>
                                </topic>
 
                                <topic href="html/device_api/tv/index.html#Network" label="Network">
-                                       <topic href="html/device_api/tv/tizen/convergence.html" label="Convergence" ></topic>
                                        <topic href="html/device_api/tv/tizen/iotcon.html" label="Iotcon" ></topic>
                                </topic>