Sophie

Sophie

distrib > Mandriva > 2011.0 > x86_64 > by-pkgid > e4e5aca55b6d7244e6bae95bf4fde3ca > files > 262

lib64edelib-devel-2.0-1.x86_64.rpm

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>edelib: PtyProcess Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">edelib
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespaceedelib.html">edelib</a>      </li>
      <li class="navelem"><a class="el" href="classedelib_1_1PtyProcess.html">PtyProcess</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">PtyProcess Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="edelib::PtyProcess" -->
<p>Synchronous communication with tty programs.  
 <a href="classedelib_1_1PtyProcess.html#details">More...</a></p>

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

<p><a href="classedelib_1_1PtyProcess-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#aa349f07b744a4707242be7109ef2a337">CheckPidStatus</a> { <b>Error</b> = -1, 
<b>NotExited</b> = -2, 
<b>Killed</b> = -3, 
<b>Crashed</b> = -4
 }</td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#af0580a4ab3b0e733f3b25b79e97bee25">PtyProcess</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a398a21f0eece2c6986a5dc5cc1e0cdd1">~PtyProcess</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a780d2321bb743df44af93531aa5a0101">exec</a> (const char *command, const char **args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#aee1560adef9fff710a2a95f5a3865a85">read_line</a> (bool block=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#aaa82f32deff4c8ab47a9426084bad548">write_line</a> (const char *line, bool addNewline=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a7f74206cf12774353aabe16e993feb94">unread_line</a> (const char *line, bool addNewline=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a00deb56e07c8e0737f1f6ea2a5b65c9c">set_exit_string</a> (char *exit)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a590b23232a75cdc99c3e4903db2316e4">wait_for_child</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a31149cc4b0aade8c64d2d361ac215995">wait_slave</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#abb4d369cb8a3a20c2c6e64e1ca432d6e">enable_local_echo</a> (bool enable=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a481b77fd92402f167470e300b5f17d89">set_terminal</a> (bool terminal)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#aac7908ea5b9126d454e52ecaafdffe34">set_erase</a> (bool erase)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a6b236d5f3e4121ffd986ff9e38082146">set_environment</a> (const char **env)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a3581b2617b6fc0b06322bff239879516">fd</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#aa43ae4647e6ca1a29c455059eb92fe58">pid</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a60bafce4ccd9af1dfc6e128465e06e17">terminate_child</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a40b834230b7bb96378a2ce235c3347fd">wait_ms</a> (int <a class="el" href="classedelib_1_1PtyProcess.html#a3581b2617b6fc0b06322bff239879516">fd</a>, int ms)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#a8d33321905166452bbcc035c160264df">check_pid</a> (pid_t <a class="el" href="classedelib_1_1PtyProcess.html#aa43ae4647e6ca1a29c455059eb92fe58">pid</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classedelib_1_1PtyProcess.html#ad645582855f27814d5a18dc7dab8e1df">check_pid_exited</a> (pid_t <a class="el" href="classedelib_1_1PtyProcess.html#aa43ae4647e6ca1a29c455059eb92fe58">pid</a>)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Synchronous communication with tty programs. </p>
<p><a class="el" href="classedelib_1_1PtyProcess.html" title="Synchronous communication with tty programs.">PtyProcess</a> provides synchronous communication with tty based programs. The communications channel used is a pseudo tty (as opposed to a pipe) This means that programs which require a terminal will work. </p>
</div><hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="aa349f07b744a4707242be7109ef2a337"></a><!-- doxytag: member="edelib::PtyProcess::CheckPidStatus" ref="aa349f07b744a4707242be7109ef2a337" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classedelib_1_1PtyProcess.html#aa349f07b744a4707242be7109ef2a337">CheckPidStatus</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check process exit status for process <code>pid</code>. On error (no child, no exit), return -1. If child <code>pid</code> has exited, return its exit status, (which may be zero). If child <code>has</code> not exited, return -2. </p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="af0580a4ab3b0e733f3b25b79e97bee25"></a><!-- doxytag: member="edelib::PtyProcess::PtyProcess" ref="af0580a4ab3b0e733f3b25b79e97bee25" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classedelib_1_1PtyProcess.html">PtyProcess</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Empty constructor </p>

</div>
</div>
<a class="anchor" id="a398a21f0eece2c6986a5dc5cc1e0cdd1"></a><!-- doxytag: member="edelib::PtyProcess::~PtyProcess" ref="a398a21f0eece2c6986a5dc5cc1e0cdd1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classedelib_1_1PtyProcess.html">PtyProcess</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Clears data </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8d33321905166452bbcc035c160264df"></a><!-- doxytag: member="edelib::PtyProcess::check_pid" ref="a8d33321905166452bbcc035c160264df" args="(pid_t pid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool <a class="el" href="classedelib_1_1PtyProcess.html#a8d33321905166452bbcc035c160264df">check_pid</a> </td>
          <td>(</td>
          <td class="paramtype">pid_t&#160;</td>
          <td class="paramname"><em>pid</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Basic check for the existence of <code>pid</code>. Returns true iff <code>pid</code> is an extant process, (one you could kill - see man kill(2) for signal 0). </p>

</div>
</div>
<a class="anchor" id="ad645582855f27814d5a18dc7dab8e1df"></a><!-- doxytag: member="edelib::PtyProcess::check_pid_exited" ref="ad645582855f27814d5a18dc7dab8e1df" args="(pid_t pid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int <a class="el" href="classedelib_1_1PtyProcess.html#ad645582855f27814d5a18dc7dab8e1df">check_pid_exited</a> </td>
          <td>(</td>
          <td class="paramtype">pid_t&#160;</td>
          <td class="paramname"><em>pid</em></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check process exit status for process <code>pid</code>. On error (no child, no exit), return Error (-1). If child <code>pid</code> has exited, return its exit status, (which may be zero). If child <code>has</code> not exited, return NotExited (-2). </p>

</div>
</div>
<a class="anchor" id="abb4d369cb8a3a20c2c6e64e1ca432d6e"></a><!-- doxytag: member="edelib::PtyProcess::enable_local_echo" ref="abb4d369cb8a3a20c2c6e64e1ca432d6e" args="(bool enable=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1PtyProcess.html#abb4d369cb8a3a20c2c6e64e1ca432d6e">enable_local_echo</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Enables/disables local echo on the pseudo tty. </p>

</div>
</div>
<a class="anchor" id="a780d2321bb743df44af93531aa5a0101"></a><!-- doxytag: member="edelib::PtyProcess::exec" ref="a780d2321bb743df44af93531aa5a0101" args="(const char *command, const char **args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1PtyProcess.html#a780d2321bb743df44af93531aa5a0101">exec</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>command</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Forks off and execute a command. The command's standard in and output are connected to the pseudo tty. They are accessible with readLine and writeLine. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">command</td><td>The command to execute. </td></tr>
    <tr><td class="paramname">args</td><td>The arguments to the command. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3581b2617b6fc0b06322bff239879516"></a><!-- doxytag: member="edelib::PtyProcess::fd" ref="a3581b2617b6fc0b06322bff239879516" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1PtyProcess.html#a3581b2617b6fc0b06322bff239879516">fd</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the filedescriptor of the process </p>

</div>
</div>
<a class="anchor" id="aa43ae4647e6ca1a29c455059eb92fe58"></a><!-- doxytag: member="edelib::PtyProcess::pid" ref="aa43ae4647e6ca1a29c455059eb92fe58" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1PtyProcess.html#aa43ae4647e6ca1a29c455059eb92fe58">pid</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the pid of the process </p>

</div>
</div>
<a class="anchor" id="aee1560adef9fff710a2a95f5a3865a85"></a><!-- doxytag: member="edelib::PtyProcess::read_line" ref="aee1560adef9fff710a2a95f5a3865a85" args="(bool block=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="classedelib_1_1PtyProcess.html#aee1560adef9fff710a2a95f5a3865a85">read_line</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>block</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reads a line from the program's standard out. Depending on the <em>block</em> parameter, this call blocks until a single, full line is read. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">block</td><td>Block until a full line is read? </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The output string. </dd></dl>

</div>
</div>
<a class="anchor" id="a6b236d5f3e4121ffd986ff9e38082146"></a><!-- doxytag: member="edelib::PtyProcess::set_environment" ref="a6b236d5f3e4121ffd986ff9e38082146" args="(const char **env)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#a6b236d5f3e4121ffd986ff9e38082146">set_environment</a> </td>
          <td>(</td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>env</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set additinal environment variables </p>

</div>
</div>
<a class="anchor" id="aac7908ea5b9126d454e52ecaafdffe34"></a><!-- doxytag: member="edelib::PtyProcess::set_erase" ref="aac7908ea5b9126d454e52ecaafdffe34" args="(bool erase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#aac7908ea5b9126d454e52ecaafdffe34">set_erase</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>erase</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Overwrites the password as soon as it is used. Relevant only to some subclasses </p>

</div>
</div>
<a class="anchor" id="a00deb56e07c8e0737f1f6ea2a5b65c9c"></a><!-- doxytag: member="edelib::PtyProcess::set_exit_string" ref="a00deb56e07c8e0737f1f6ea2a5b65c9c" args="(char *exit)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#a00deb56e07c8e0737f1f6ea2a5b65c9c">set_exit_string</a> </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>exit</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the exit string. If a line of program output matches this, waitForChild() will terminate the program and return. </p>

</div>
</div>
<a class="anchor" id="a481b77fd92402f167470e300b5f17d89"></a><!-- doxytag: member="edelib::PtyProcess::set_terminal" ref="a481b77fd92402f167470e300b5f17d89" args="(bool terminal)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#a481b77fd92402f167470e300b5f17d89">set_terminal</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>terminal</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Enables/disables terminal output. Relevant only to some subclasses </p>

</div>
</div>
<a class="anchor" id="a60bafce4ccd9af1dfc6e128465e06e17"></a><!-- doxytag: member="edelib::PtyProcess::terminate_child" ref="a60bafce4ccd9af1dfc6e128465e06e17" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#a60bafce4ccd9af1dfc6e128465e06e17">terminate_child</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Terminate the child process if still running </p>

</div>
</div>
<a class="anchor" id="a7f74206cf12774353aabe16e993feb94"></a><!-- doxytag: member="edelib::PtyProcess::unread_line" ref="a7f74206cf12774353aabe16e993feb94" args="(const char *line, bool addNewline=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#a7f74206cf12774353aabe16e993feb94">unread_line</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>addNewline</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Puts back a line of input. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">line</td><td>The line to put back. </td></tr>
    <tr><td class="paramname">addNewline</td><td>Adds a '<br/>
' to the line. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a590b23232a75cdc99c3e4903db2316e4"></a><!-- doxytag: member="edelib::PtyProcess::wait_for_child" ref="a590b23232a75cdc99c3e4903db2316e4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1PtyProcess.html#a590b23232a75cdc99c3e4903db2316e4">wait_for_child</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Waits for the child to exit </p>

</div>
</div>
<a class="anchor" id="a40b834230b7bb96378a2ce235c3347fd"></a><!-- doxytag: member="edelib::PtyProcess::wait_ms" ref="a40b834230b7bb96378a2ce235c3347fd" args="(int fd, int ms)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int <a class="el" href="classedelib_1_1PtyProcess.html#a40b834230b7bb96378a2ce235c3347fd">wait_ms</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Wait <code>ms</code> miliseconds (ie. 1/10th of a second is 100ms), using <code>fd</code> as a filedescriptor to wait on. Returns select(2)'s result, which is -1 on error, 0 on timeout, or positive if there is data on one of the selected fd's.</p>
<p><code>ms</code> must be in the range 0..999 (ie. the maximum wait duration is 999ms, almost one second). </p>

</div>
</div>
<a class="anchor" id="a31149cc4b0aade8c64d2d361ac215995"></a><!-- doxytag: member="edelib::PtyProcess::wait_slave" ref="a31149cc4b0aade8c64d2d361ac215995" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classedelib_1_1PtyProcess.html#a31149cc4b0aade8c64d2d361ac215995">wait_slave</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Waits until the pty has cleared the ECHO flag. This is useful when programs write a password prompt before they disable ECHO. Disabling it might flush any input that was written. </p>

</div>
</div>
<a class="anchor" id="aaa82f32deff4c8ab47a9426084bad548"></a><!-- doxytag: member="edelib::PtyProcess::write_line" ref="aaa82f32deff4c8ab47a9426084bad548" args="(const char *line, bool addNewline=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classedelib_1_1PtyProcess.html#aaa82f32deff4c8ab47a9426084bad548">write_line</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>addNewline</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Writes a line of text to the program's standard in. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">line</td><td>The text to write. </td></tr>
    <tr><td class="paramname">addNewline</td><td>Adds a '<br/>
' to the line. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>edelib/<a class="el" href="PtyProcess_8h_source.html">PtyProcess.h</a></li>
</ul>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 5 2012 17:49:03 for edelib by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>