Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 727fa15453fcace956b835e2377d4269 > files > 278

player-doc-3.0.2-5.fc14.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html>
<!-- $Id: header.html 8799 2010-06-28 04:12:42Z jpgr87 $ -->

<HEAD>


<meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=utf-8">
<meta name="keywords" content="stage, robot, simulation, player, player/stage">
<link href="doxygen.css" rel="stylesheet" type="text/css">

<style type="text/css">

.floatright { float: right; margin: 0 0 1em 1em; }

body {
  font-family: sans-serif;
  #font-family: Geneva, Verdana, Helvetica, Arial, sans-serif;
  background-color: #FFF;
  color:#000;
}


a:link { 
	color: #A00;
}

a:visited { 
	color: #800;
}

a { text-decoration: none; }
a:hover { text-decoration: underline; }


.timestamp { text-align:right; background-color: #DDD; font-size:75%;}

h1 { 
  font-size:160%; 
}

h2 {
  font-size:110%;
  #color: #FFF;
  #background-color: #666;
  #padding:3px;
}

h3 { text-align:left; }

img {
  border: 0;
}

ul.menu { 
    position:relative;
    left:-2.5em;
    margin-bottom:0px;
    margin-top:0px;
}

ul.menu1 { 
    position:relative;
    left:-2.1em;
    margin-bottom:0px;
    margin-top:0px;
}

li.menu { 
    list-style-type: none;
    position:relative;
    #left:-0.5em;
}


#sidebar { position: absolute; left:0px; padding:2em; top:0em; width:12em;}

#content { position: absolute; left:12em; top:0em; padding-left:3em; padding-right:3em; padding-bottom:2em; margin-top:1em; margin-right:2em; }

div.box { background-color:#EEE; border: 1px solid #000; padding: 0.5ex 0.4em 0.5ex 0.6em; margin:1em;  }
div.title { font-weight:bold; background-color:#eee; margin-bottom:2px;}

div.topbar { position: absolute; top:0px; left:9em; margin:1em; }

</style>

<TITLE>Player Manual</TITLE>

</HEAD>

<body>

<div id="sidebar"> 

<h2 style="text-align:center;">
<a href="index.html">
<img width=140 src="http://playerstage.sourceforge.net/images/player_button_v3.png" alt="Player logo"><br></a>
</h2>



<div class="box">
<div class=title>Player</div>

<ul class=menu>
<li class=menu><a href="index.html">Frontpage</a>
<li class=menu><a href="modules.html">Contents</a>
</ul>
</div>

<div class="box">
<div class=title>User</div>

<ul class=menu>
<li class=menu><a href="install.html">Installation</a>
<li class=menu><a href="start.html">Quick start</a>
<li class=menu><a href="supported_hardware.html">Supported&nbsp;devices</a>
<li class=menu><a href="group__tutorials.html">Tutorials</a>
<li class=menu><a href="group__utils.html">Utilities</a>
<li class=menu><a href="group__clientlibs.html">Client&nbsp;libraries</a>
<li class=menu><a href="http://playerstage.sourceforge.net/wiki/Basic_FAQ">FAQ</a>
<li class=menu><a href="help.html">Help</a>

</ul>
</div>

<div class=box>
<div class="title">Developer</div>
<ul class=menu>
<li class=menu><a href="architecture.html">Architecture</a>
<li class=menu><a href="group__libplayercore.html">libplayercore</a>
<ul class=menu1>
<li class=menu><a href="group__interfaces.html">interfaces</a></li>
</ul>
<li class=menu><a href="group__libplayerdrivers.html">libplayerdrivers</a>
<ul class=menu1>
<li class=menu><a href="group__drivers.html">drivers</a></li>
</ul>
<li class=menu><a href="group__libplayercommon.html">libplayercommon</a>
<li class=menu><a href="group__libplayerutils.html">libplayerutils</a>
<li class=menu><a href="group__libplayersd.html">libplayersd</a>
<li class=menu><a href="group__libplayertcp.html">libplayertcp</a>
<li class=menu><a href="group__libplayerxdr.html">libplayerxdr</a>
<li class=menu><a href="todo.html">TODO</a>
</ul>
</div>

<div class=box>
<!-- <a href="http://sourceforge.net"><img border=0 src="http://sourceforge.net/sflogo.php?group_id=42445&type=1"></a> -->
<div class="title">Online</div>
<a href="http://playerstage.sourceforge.net">Homepage</a><br>
<a href="http://sourceforge.net/project/showfiles.php?group_id=42445">Download</a><br>
<a href="http://sourceforge.net/projects/playerstage">Project</a><br>
<a href="http://sourceforge.net/tracker/?group_id=42445">Bugs</a><br>
<a href="http://sourceforge.net/mail/?group_id=42445">Help</a>
</div>


</div>

<div id="content" >
<!-- Generated by Doxygen 1.7.1 -->
  <div class="navpath">
    <ul>
      <li><b>PlayerCc</b>      </li>
      <li><a class="el" href="classPlayerCc_1_1PlayerClient.html">PlayerCc::PlayerClient</a>      </li>
    </ul>
  </div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<h1>PlayerCc::PlayerClient Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="PlayerCc::PlayerClient" -->
<p>The <a class="el" href="classPlayerCc_1_1PlayerClient.html" title="The PlayerClient is used for communicating with the player server.">PlayerClient</a> is used for communicating with the player server.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="playerclient_8h_source.html">playerclient.h</a>&gt;</code></p>

<p><a href="classPlayerCc_1_1PlayerClient-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65bf837a4604b7c8ab2a0c5bbc165579"></a><!-- doxytag: member="PlayerCc::PlayerClient::PlayerClient" ref="a65bf837a4604b7c8ab2a0c5bbc165579" args="(const std::string aHostname=PLAYER_HOSTNAME, uint32_t aPort=PLAYER_PORTNUM, int transport=PLAYERC_TRANSPORT_TCP)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a65bf837a4604b7c8ab2a0c5bbc165579">PlayerClient</a> (const std::string aHostname=PLAYER_HOSTNAME, uint32_t aPort=PLAYER_PORTNUM, int transport=PLAYERC_TRANSPORT_TCP)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Make a client and connect it as indicated. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86bbe0770de128cb710cb9555438731c"></a><!-- doxytag: member="PlayerCc::PlayerClient::~PlayerClient" ref="a86bbe0770de128cb710cb9555438731c" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a86bbe0770de128cb710cb9555438731c">~PlayerClient</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">destructor <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae680c636ec2b279a2cef636f1e747bd3"></a><!-- doxytag: member="PlayerCc::PlayerClient::Connected" ref="ae680c636ec2b279a2cef636f1e747bd3" args="()" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#ae680c636ec2b279a2cef636f1e747bd3">Connected</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Are we currently connected? <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a771e8571c7b52d84b2bd2f74620609a3"></a><!-- doxytag: member="PlayerCc::PlayerClient::StartThread" ref="a771e8571c7b52d84b2bd2f74620609a3" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a771e8571c7b52d84b2bd2f74620609a3">StartThread</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start the run thread. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a636cef0045e4749472b1b520c7a77960"></a><!-- doxytag: member="PlayerCc::PlayerClient::StopThread" ref="a636cef0045e4749472b1b520c7a77960" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a636cef0045e4749472b1b520c7a77960">StopThread</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop the run thread. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a82b774b1026db32446d5a4a15c7667ab"></a><!-- doxytag: member="PlayerCc::PlayerClient::Run" ref="a82b774b1026db32446d5a4a15c7667ab" args="(uint32_t aTimeout=10)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a82b774b1026db32446d5a4a15c7667ab">Run</a> (uint32_t aTimeout=10)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This starts a blocking loop on <a class="el" href="classPlayerCc_1_1PlayerClient.html#af2fa99e62ceb1113d6891dc36dfceecd">Read()</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6187ca3b3fad11de5232c0773a813c4"></a><!-- doxytag: member="PlayerCc::PlayerClient::Stop" ref="aa6187ca3b3fad11de5232c0773a813c4" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#aa6187ca3b3fad11de5232c0773a813c4">Stop</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stops the <a class="el" href="classPlayerCc_1_1PlayerClient.html#a82b774b1026db32446d5a4a15c7667ab">Run()</a> loop. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a334a031a14543ab968385f97789248bb">Peek</a> (uint32_t timeout=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether there is data waiting on the connection, blocking for up to <code>timeout</code> milliseconds (set to 0 to not block).  <a href="#a334a031a14543ab968385f97789248bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1a28cc46355fc9c56813373a1c2bf89"></a><!-- doxytag: member="PlayerCc::PlayerClient::SetRequestTimeout" ref="ab1a28cc46355fc9c56813373a1c2bf89" args="(uint32_t seconds)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#ab1a28cc46355fc9c56813373a1c2bf89">SetRequestTimeout</a> (uint32_t seconds)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the timeout for client requests. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#ad355a259243d1ad7596366a0313244b0">SetRetryLimit</a> (int limit)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set connection retry limit, which is the number of times that we'll try to reconnect to the server after a socket error.  <a href="#ad355a259243d1ad7596366a0313244b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#abcfae465ada932f0eb6602a182e33fef">GetRetryLimit</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get connection retry limit, which is the number of times that we'll try to reconnect to the server after a socket error.  <a href="#abcfae465ada932f0eb6602a182e33fef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#afa5bddb9335bd4445170b30c0f7d2b54">SetRetryTime</a> (double time)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set connection retry time, which is number of seconds to wait between reconnection attempts.  <a href="#afa5bddb9335bd4445170b30c0f7d2b54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a2e8215dddbfdc8fb6ab1fedb88ceb846">GetRetryTime</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get connection retry time, which is number of seconds to wait between reconnection attempts.  <a href="#a2e8215dddbfdc8fb6ab1fedb88ceb846"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#af2fa99e62ceb1113d6891dc36dfceecd">Read</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A blocking Read.  <a href="#af2fa99e62ceb1113d6891dc36dfceecd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a5950f93871543b416289d66f8eb5b388">ReadIfWaiting</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A nonblocking Read.  <a href="#a5950f93871543b416289d66f8eb5b388"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a55a44a2fe0813776a9f2b011f624dfc0">SetDataMode</a> (uint32_t aMode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set whether the client operates in Push/Pull modes.  <a href="#a55a44a2fe0813776a9f2b011f624dfc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a496845414a96f05d3abb16a3a267b7e2">SetReplaceRule</a> (bool aReplace, int aType=-1, int aSubtype=-1, int aInterf=-1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a replace rule for the clients queue on the server.  <a href="#a496845414a96f05d3abb16a3a267b7e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#ad444618a210e5f9643755b3e69910a59">RequestDeviceList</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the list of available device ids.  <a href="#ad444618a210e5f9643755b3e69910a59"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a673e8915e0297619e03ac419d2fd3806"></a><!-- doxytag: member="PlayerCc::PlayerClient::GetDeviceList" ref="a673e8915e0297619e03ac419d2fd3806" args="()" -->
std::list&lt; <a class="el" href="structplayerc__device__info__t.html">playerc_device_info_t</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>GetDeviceList</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5265fb69d00172a5f20bb072ce48afa"></a><!-- doxytag: member="PlayerCc::PlayerClient::GetHostname" ref="ad5265fb69d00172a5f20bb072ce48afa" args="() const " -->
std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#ad5265fb69d00172a5f20bb072ce48afa">GetHostname</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the hostname. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a10f2601dd8667b8945856a88f32ca1"></a><!-- doxytag: member="PlayerCc::PlayerClient::GetPort" ref="a0a10f2601dd8667b8945856a88f32ca1" args="() const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a0a10f2601dd8667b8945856a88f32ca1">GetPort</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the port. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4bc45f88fd5be092b2b53ab97b908ad8"></a><!-- doxytag: member="PlayerCc::PlayerClient::LookupCode" ref="a4bc45f88fd5be092b2b53ab97b908ad8" args="(std::string aName) const " -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a4bc45f88fd5be092b2b53ab97b908ad8">LookupCode</a> (std::string aName) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the interface code for a given name. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adecfe4c6df1fa0c0f6c458ac94c2e463"></a><!-- doxytag: member="PlayerCc::PlayerClient::LookupName" ref="adecfe4c6df1fa0c0f6c458ac94c2e463" args="(int aCode) const " -->
std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#adecfe4c6df1fa0c0f6c458ac94c2e463">LookupName</a> (int aCode) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the name for a given interface code. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a00a1876c2739ac9f4021d939e7a66a41"></a><!-- doxytag: member="PlayerCc::PlayerClient::GetOverflowCount" ref="a00a1876c2739ac9f4021d939e7a66a41" args="()" -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a00a1876c2739ac9f4021d939e7a66a41">GetOverflowCount</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get count of the number of discarded messages on the server since the last call to this method. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1d2e785237492fa038310251b497ca4e"></a><!-- doxytag: member="PlayerCc::PlayerClient::mMutex" ref="a1d2e785237492fa038310251b497ca4e" args="" -->
<a class="el" href="classboost_1_1mutex.html">mutex_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPlayerCc_1_1PlayerClient.html#a1d2e785237492fa038310251b497ca4e">mMutex</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A mutex for handling synchronization. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a5656f72371d521857cf36258d98ef2"></a><!-- doxytag: member="PlayerCc::PlayerClient::thread_t" ref="a4a5656f72371d521857cf36258d98ef2" args="" -->
typedef <a class="el" href="classboost_1_1thread.html">boost::thread</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>thread_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dec8fccb06cd8c4200f010424bc7137"></a><!-- doxytag: member="PlayerCc::PlayerClient::mutex_t" ref="a5dec8fccb06cd8c4200f010424bc7137" args="" -->
typedef <a class="el" href="classboost_1_1mutex.html">boost::mutex</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>mutex_t</b></td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aced61e9e2c2b7071395c60bd9cc7d0df"></a><!-- doxytag: member="PlayerCc::PlayerClient::Connect" ref="aced61e9e2c2b7071395c60bd9cc7d0df" args="(const std::string aHostname, uint32_t aPort)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>Connect</b> (const std::string aHostname, uint32_t aPort)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e48a322cbf8f8118b0fa46f8d097667"></a><!-- doxytag: member="PlayerCc::PlayerClient::Disconnect" ref="a0e48a322cbf8f8118b0fa46f8d097667" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>Disconnect</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94af139d59b3e6783acd1814746a5bb2"></a><!-- doxytag: member="PlayerCc::PlayerClient::RunThread" ref="a94af139d59b3e6783acd1814746a5bb2" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>RunThread</b> ()</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0764be32b63ba8f01303415dc8d02280"></a><!-- doxytag: member="PlayerCc::PlayerClient::mProxyList" ref="a0764be32b63ba8f01303415dc8d02280" args="" -->
std::list<br class="typebreak"/>
&lt; <a class="el" href="classPlayerCc_1_1ClientProxy.html">PlayerCc::ClientProxy</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>mProxyList</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d7ff83017bbbd19d0662c805b21f89c"></a><!-- doxytag: member="PlayerCc::PlayerClient::mDeviceList" ref="a4d7ff83017bbbd19d0662c805b21f89c" args="" -->
std::list&lt; <a class="el" href="structplayerc__device__info__t.html">playerc_device_info_t</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>mDeviceList</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad51220a28ff8f6b4f29e54a611e6e07e"></a><!-- doxytag: member="PlayerCc::PlayerClient::mClient" ref="ad51220a28ff8f6b4f29e54a611e6e07e" args="" -->
<a class="el" href="struct__playerc__client__t.html">playerc_client_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mClient</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56225805703330457c4e4d5ef0493d63"></a><!-- doxytag: member="PlayerCc::PlayerClient::mHostname" ref="a56225805703330457c4e4d5ef0493d63" args="" -->
std::string&nbsp;</td><td class="memItemRight" valign="bottom"><b>mHostname</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac56ebfe680e07646e3d6dd46b3071c9d"></a><!-- doxytag: member="PlayerCc::PlayerClient::mPort" ref="ac56ebfe680e07646e3d6dd46b3071c9d" args="" -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>mPort</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ba957b620dc9cfcb24fba4fc4cf87f1"></a><!-- doxytag: member="PlayerCc::PlayerClient::mTransport" ref="a6ba957b620dc9cfcb24fba4fc4cf87f1" args="" -->
unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><b>mTransport</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea6a4f8bdf22886eaef9bd657e8c2ef8"></a><!-- doxytag: member="PlayerCc::PlayerClient::mIsStop" ref="aea6a4f8bdf22886eaef9bd657e8c2ef8" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>mIsStop</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe7cb872515e8ecd0bf3509b25206317"></a><!-- doxytag: member="PlayerCc::PlayerClient::mThread" ref="afe7cb872515e8ecd0bf3509b25206317" args="" -->
<a class="el" href="classboost_1_1thread.html">thread_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>mThread</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>The <a class="el" href="classPlayerCc_1_1PlayerClient.html" title="The PlayerClient is used for communicating with the player server.">PlayerClient</a> is used for communicating with the player server. </p>
<p>One <a class="el" href="classPlayerCc_1_1PlayerClient.html" title="The PlayerClient is used for communicating with the player server.">PlayerClient</a> object is used to control each connection to a Player server. Contained within this object are methods for changing the connection parameters and obtaining access to devices.</p>
<p>Since the threading functionality of the <a class="el" href="classPlayerCc_1_1PlayerClient.html" title="The PlayerClient is used for communicating with the player server.">PlayerClient</a> is built on Boost, these options are conditionally available based on the Boost threading library being present on the system. The <a class="el" href="classPlayerCc_1_1PlayerClient.html#a771e8571c7b52d84b2bd2f74620609a3" title="Start the run thread.">StartThread()</a> and <a class="el" href="classPlayerCc_1_1PlayerClient.html#a636cef0045e4749472b1b520c7a77960" title="Stop the run thread.">StopThread()</a> are the only functions conditionally available based on this. </p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="abcfae465ada932f0eb6602a182e33fef"></a><!-- doxytag: member="PlayerCc::PlayerClient::GetRetryLimit" ref="abcfae465ada932f0eb6602a182e33fef" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int PlayerCc::PlayerClient::GetRetryLimit </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get connection retry limit, which is the number of times that we'll try to reconnect to the server after a socket error. </p>

</div>
</div>
<a class="anchor" id="a2e8215dddbfdc8fb6ab1fedb88ceb846"></a><!-- doxytag: member="PlayerCc::PlayerClient::GetRetryTime" ref="a2e8215dddbfdc8fb6ab1fedb88ceb846" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double PlayerCc::PlayerClient::GetRetryTime </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get connection retry time, which is number of seconds to wait between reconnection attempts. </p>

</div>
</div>
<a class="anchor" id="a334a031a14543ab968385f97789248bb"></a><!-- doxytag: member="PlayerCc::PlayerClient::Peek" ref="a334a031a14543ab968385f97789248bb" args="(uint32_t timeout=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool PlayerCc::PlayerClient::Peek </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>timeout</em> = <code>0</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check whether there is data waiting on the connection, blocking for up to <code>timeout</code> milliseconds (set to 0 to not block). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>false if there is no data waiting</li>
<li>true if there is data waiting </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="af2fa99e62ceb1113d6891dc36dfceecd"></a><!-- doxytag: member="PlayerCc::PlayerClient::Read" ref="af2fa99e62ceb1113d6891dc36dfceecd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::Read </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A blocking Read. </p>
<p>Use this method to read data from the server, blocking until at least one message is received. Use <a class="el" href="classPlayerCc_1_1PlayerClient.html#a334a031a14543ab968385f97789248bb">PlayerClient::Peek()</a> to check whether any data is currently waiting. In pull mode, this will block until all data waiting on the server has been received, ensuring as up to date data as possible. </p>

</div>
</div>
<a class="anchor" id="a5950f93871543b416289d66f8eb5b388"></a><!-- doxytag: member="PlayerCc::PlayerClient::ReadIfWaiting" ref="a5950f93871543b416289d66f8eb5b388" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::ReadIfWaiting </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A nonblocking Read. </p>
<p>Use this method if you want to read in a nonblocking manner. This is the equivalent of checking if Peek is true and then reading </p>

</div>
</div>
<a class="anchor" id="ad444618a210e5f9643755b3e69910a59"></a><!-- doxytag: member="PlayerCc::PlayerClient::RequestDeviceList" ref="ad444618a210e5f9643755b3e69910a59" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::RequestDeviceList </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the list of available device ids. </p>
<p>The data is written into the proxy structure rather than retured to the caller. </p>

</div>
</div>
<a class="anchor" id="a55a44a2fe0813776a9f2b011f624dfc0"></a><!-- doxytag: member="PlayerCc::PlayerClient::SetDataMode" ref="a55a44a2fe0813776a9f2b011f624dfc0" args="(uint32_t aMode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::SetDataMode </td>
          <td>(</td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>aMode</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set whether the client operates in Push/Pull modes. </p>
<p>You can toggle the mode in which the server sends data to your client with this method. The <code>mode</code> should be one of</p>
<ul>
<li><a class="el" href="group__interface__player.html#ga873facd47a9efaa244a411efedb659c9">PLAYER_DATAMODE_PUSH</a> (all data)</li>
<li><a class="el" href="group__interface__player.html#ga32e47dfa038a268985593fc0bb9cd19b">PLAYER_DATAMODE_PULL</a> (data on demand) When in pull mode, it is highly recommended that a replace rule is set for data packets to prevent the server message queue becoming flooded. For a more detailed description of data modes, see <a class="el" href="group__libplayerc__datamodes.html">Client Data Modes</a>.</li>
</ul>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>throws</em>&nbsp;</td><td><a class="el" href="classPlayerCc_1_1PlayerError.html" title="The C++ exception class.">PlayerError</a> if unsuccessfull </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a496845414a96f05d3abb16a3a267b7e2"></a><!-- doxytag: member="PlayerCc::PlayerClient::SetReplaceRule" ref="a496845414a96f05d3abb16a3a267b7e2" args="(bool aReplace, int aType=&#45;1, int aSubtype=&#45;1, int aInterf=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::SetReplaceRule </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>aReplace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>aType</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>aSubtype</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>aInterf</em> = <code>-1</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a replace rule for the clients queue on the server. </p>
<p>If a rule with the same pattern already exists, it will be replaced with the new rule (i.e., its setting to replace will be updated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>aReplace</em>&nbsp;</td><td>Should we replace these messages? true/false </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aType</em>&nbsp;</td><td>type of message to set replace rule for (-1 for wildcard). See <a class="el" href="group__message__types.html">Message types</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aSubtype</em>&nbsp;</td><td>message subtype to set replace rule for (-1 for wildcard). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aInterf</em>&nbsp;</td><td>Interface to set replace rule for (-1 for wildcard). This can be used to set the replace rule for all members of a certain interface type. See <a class="el" href="group__interfaces.html">Interface specifications</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>throws</em>&nbsp;</td><td><a class="el" href="classPlayerCc_1_1PlayerError.html" title="The C++ exception class.">PlayerError</a> if unsuccessfull</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classPlayerCc_1_1ClientProxy.html#a58d315e428437eb8eebdbd93f1f0e78d" title="Set a replace rule for this proxy on the server.">ClientProxy::SetReplaceRule</a>, <a class="el" href="classPlayerCc_1_1PlayerClient.html#a55a44a2fe0813776a9f2b011f624dfc0" title="Set whether the client operates in Push/Pull modes.">PlayerClient::SetDataMode</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ad355a259243d1ad7596366a0313244b0"></a><!-- doxytag: member="PlayerCc::PlayerClient::SetRetryLimit" ref="ad355a259243d1ad7596366a0313244b0" args="(int limit)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::SetRetryLimit </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>limit</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set connection retry limit, which is the number of times that we'll try to reconnect to the server after a socket error. </p>
<p>Set to -1 for inifinite retry. </p>

<p>References <a class="el" href="group__playerc__client.html#ga3025a79ece2a7c6608eab9de3f08c195">playerc_client_set_retry_limit()</a>.</p>

</div>
</div>
<a class="anchor" id="afa5bddb9335bd4445170b30c0f7d2b54"></a><!-- doxytag: member="PlayerCc::PlayerClient::SetRetryTime" ref="afa5bddb9335bd4445170b30c0f7d2b54" args="(double time)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PlayerCc::PlayerClient::SetRetryTime </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>time</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set connection retry time, which is number of seconds to wait between reconnection attempts. </p>

<p>References <a class="el" href="group__playerc__client.html#gaebdce291cd7c283d6f48943c265ec320">playerc_client_set_retry_time()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="playerclient_8h_source.html">playerclient.h</a></li>
</ul>
</div>
<!-- render the modification time of the source file -->


<div class="timestamp">
<hr>

<table style="width:100%;">
<tr>
<td style="text-align:left;">
Last updated 12 September 2005 21:38:45
<!--
<td style="text-align:right;">
<a href="http://validator.w3.org/check/referer"><img style="vertical-align:middle;border:0;width:88px;height:31px"
          src="http://www.w3.org/Icons/valid-html401"
          alt="Valid HTML 4.01!"></a>

 <a href="http://jigsaw.w3.org/css-validator/">
  <img style="vertical-align:middle;border:0;width:88px;height:31px"
       src="http://jigsaw.w3.org/css-validator/images/vcss"
       alt="Valid CSS!">
 </a>
-->
</tr>
</table>
</div>


</tr>
</table>

</BODY>
</HTML>