Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/class_c_thread_server.html
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 13 Aug 2010 16:47:46 +0100
changeset 14 578be2adaf3e
parent 6 43e37759235e
permissions -rw-r--r--
Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582

<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>TB9.2 Example Applications: CThreadServer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2 -->
<div class="contents">
<h1>CThreadServer Class Reference</h1><!-- doxytag: class="CThreadServer" --><!-- doxytag: inherits="CServer2" -->
<p>Inherits CServer2.</p>

<p><a href="class_c_thread_server-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#afb6315c557a5690492f0441ae493b512">TDriverState</a> { <br/>
&nbsp;&nbsp;<b>EStateUnknown</b>, 
<b>EDriverLoaded</b>, 
<b>ELogicalChannelOpened</b>, 
<b>ESendingData</b>, 
<br/>
&nbsp;&nbsp;<b>ELogicalChannelClosed</b>, 
<b>EDriverUnloaded</b>
<br/>
 }</td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#aadfbd81c8ebdf682c5ea26e837024f39">~CThreadServer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">CSession2 *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#a30edb9952525008bc2f994aa8e1c2542">NewSessionL</a> (const TVersion &amp;aVersion, const RMessage2 &amp;aMessage) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#ae8800ec9ca3333ebffdbc790b38b218e">IncrementRefCount</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#add52c0ec21335f60489aa9a2478c11ab">DecrementRefCount</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TInt&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#ab276a628b73ccf6b080c3e5f69a9cbba">LoadDevice</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TInt&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#a5fff82f416011501a5d3e5040a24d515">UnloadDevice</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TInt&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#a50d46df581a8dd334babd2441bd21154">OpenLogicalChannel</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#abebdf4dc3dbbe186b9bf20ea3d16681f">CloseLogicalChannel</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TInt&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#a5d9fd415bca412e6f73b8c80cdf60f29">SendDataToDevice</a> (TRequestStatus &amp;aStatus, const TDesC8 &amp;aData)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#afa4844b8aec06286cc5a29d11f12ae47">CancelSendData</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#a631c9159f8d0d91fc3136f1012663851">UpdateDriverState</a> (<a class="el" href="class_c_thread_server.html#afb6315c557a5690492f0441ae493b512">TDriverState</a> aState)</td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static IMPORT_C TInt&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#acdab1f08c0f860dd83ccacbf26eeaced">StartThread</a> (TAny *aPointer)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_thread_server.html#a7c41592480f2c412599c332f52a61347">NewLC</a> ()</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Server interface for thread server. </p>

<p>Definition at line <a class="el" href="threadserver_8h_source.html#l00031">31</a> of file <a class="el" href="threadserver_8h_source.html">threadserver.h</a>.</p>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="afb6315c557a5690492f0441ae493b512"></a><!-- doxytag: member="CThreadServer::TDriverState" ref="afb6315c557a5690492f0441ae493b512" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="class_c_thread_server.html#afb6315c557a5690492f0441ae493b512">CThreadServer::TDriverState</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Enumeration of the driver states. </p>

<p>Definition at line <a class="el" href="threadserver_8h_source.html#l00037">37</a> of file <a class="el" href="threadserver_8h_source.html">threadserver.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aadfbd81c8ebdf682c5ea26e837024f39"></a><!-- doxytag: member="CThreadServer::~CThreadServer" ref="aadfbd81c8ebdf682c5ea26e837024f39" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CThreadServer::~CThreadServer </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destructor. The device driver will be unloaded when the server destructor is called.</p>
<p>Destructor </p>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00050">50</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="acdab1f08c0f860dd83ccacbf26eeaced"></a><!-- doxytag: member="CThreadServer::StartThread" ref="acdab1f08c0f860dd83ccacbf26eeaced" args="(TAny *aPointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EXPORT_C TInt CThreadServer::StartThread </td>
          <td>(</td>
          <td class="paramtype">TAny *&nbsp;</td>
          <td class="paramname"> <em>aPointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Thread entry function.</p>
<p>Thread entry-point function. The ThreadServerStart object is passed as the thread parameter </p>

<p>Definition at line <a class="el" href="threadserverstart_8cpp_source.html#l00024">24</a> of file <a class="el" href="threadserverstart_8cpp_source.html">threadserverstart.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a7c41592480f2c412599c332f52a61347"></a><!-- doxytag: member="CThreadServer::NewLC" ref="a7c41592480f2c412599c332f52a61347" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CThreadServer::NewLC </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>First and second phase constructor.</p>
<p>Starts two phase construction </p>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00027">27</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a30edb9952525008bc2f994aa8e1c2542"></a><!-- doxytag: member="CThreadServer::NewSessionL" ref="a30edb9952525008bc2f994aa8e1c2542" args="(const TVersion &amp;aVersion, const RMessage2 &amp;aMessage) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CSession2 * CThreadServer::NewSessionL </td>
          <td>(</td>
          <td class="paramtype">const TVersion &amp;&nbsp;</td>
          <td class="paramname"> <em>aVersion</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RMessage2 &amp;&nbsp;</td>
          <td class="paramname"> <em>aMessage</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Create a server-side session object. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>CServer2::NewSessionL().</dd></dl>
<p>Create a new server-side session </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>aVersion</em>&nbsp;</td><td>Version argument </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aMessage</em>&nbsp;</td><td>The message to process </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Instance of server side client session. </dd></dl>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00066">66</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ae8800ec9ca3333ebffdbc790b38b218e"></a><!-- doxytag: member="CThreadServer::IncrementRefCount" ref="ae8800ec9ca3333ebffdbc790b38b218e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CThreadServer::IncrementRefCount </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Increase reference count and cancel shutdown timer. This function is called when a new session is created.</p>
<p>Increment the count of the number of clients connected </p>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00081">81</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="add52c0ec21335f60489aa9a2478c11ab"></a><!-- doxytag: member="CThreadServer::DecrementRefCount" ref="add52c0ec21335f60489aa9a2478c11ab" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CThreadServer::DecrementRefCount </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Decrease reference count and start shutdown timer. This function is called when a session is destroyed.</p>
<p>Decrement the count of the number of clients connected </p>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00089">89</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="ab276a628b73ccf6b080c3e5f69a9cbba"></a><!-- doxytag: member="CThreadServer::LoadDevice" ref="ab276a628b73ccf6b080c3e5f69a9cbba" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TInt CThreadServer::LoadDevice </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Load device, including sample PDD and LDD.</p>
<p>Load both LDD and PDD </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>KErrNone or standard error code. </dd></dl>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00117">117</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a5fff82f416011501a5d3e5040a24d515"></a><!-- doxytag: member="CThreadServer::UnloadDevice" ref="a5fff82f416011501a5d3e5040a24d515" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TInt CThreadServer::UnloadDevice </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Unload device, including sample LDD and PDD.</p>
<p>Unload both LDD and PDD </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>KErrNone or standard error code. </dd></dl>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00138">138</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a50d46df581a8dd334babd2441bd21154"></a><!-- doxytag: member="CThreadServer::OpenLogicalChannel" ref="a50d46df581a8dd334babd2441bd21154" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TInt CThreadServer::OpenLogicalChannel </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Open device logical channel.</p>
<p>Open LDD </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>KErrNone or standard error code. </dd></dl>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00164">164</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="abebdf4dc3dbbe186b9bf20ea3d16681f"></a><!-- doxytag: member="CThreadServer::CloseLogicalChannel" ref="abebdf4dc3dbbe186b9bf20ea3d16681f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CThreadServer::CloseLogicalChannel </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Close device logical channel.</p>
<p>Close LDD </p>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00178">178</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a5d9fd415bca412e6f73b8c80cdf60f29"></a><!-- doxytag: member="CThreadServer::SendDataToDevice" ref="a5d9fd415bca412e6f73b8c80cdf60f29" args="(TRequestStatus &amp;aStatus, const TDesC8 &amp;aData)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TInt CThreadServer::SendDataToDevice </td>
          <td>(</td>
          <td class="paramtype">TRequestStatus &amp;&nbsp;</td>
          <td class="paramname"> <em>aStatus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const TDesC8 &amp;&nbsp;</td>
          <td class="paramname"> <em>aData</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send data to device. It is an asynchronous request.</p>
<p>Send data to LDD device </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>aStatus</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aData</em>&nbsp;</td><td>Data to be sent </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>KErrNone or standard error code. </dd></dl>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00192">192</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="afa4844b8aec06286cc5a29d11f12ae47"></a><!-- doxytag: member="CThreadServer::CancelSendData" ref="afa4844b8aec06286cc5a29d11f12ae47" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CThreadServer::CancelSendData </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Cancel send data operation to device driver.</p>
<p>Cancel sending data </p>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00209">209</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a631c9159f8d0d91fc3136f1012663851"></a><!-- doxytag: member="CThreadServer::UpdateDriverState" ref="a631c9159f8d0d91fc3136f1012663851" args="(TDriverState aState)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CThreadServer::UpdateDriverState </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_c_thread_server.html#afb6315c557a5690492f0441ae493b512">TDriverState</a>&nbsp;</td>
          <td class="paramname"> <em>aState</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Update device state.</p>
<p>Update the states of the driver </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>aState</em>&nbsp;</td><td>State of the driver to be updated </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="threadserver_8cpp_source.html#l00218">218</a> of file <a class="el" href="threadserver_8cpp_source.html">threadserver.cpp</a>.</p>

</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
</body>
</html>