<?xml version="1.0" encoding="ascii"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>paramiko.buffered_pipe.BufferedPipe</title> <link rel="stylesheet" href="epydoc.css" type="text/css" /> <script type="text/javascript" src="epydoc.js"></script> </head> <body bgcolor="white" text="black" link="blue" vlink="#204080" alink="#204080"> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="paramiko-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table width="100%" cellpadding="0" cellspacing="0"> <tr valign="top"> <td width="100%"> <span class="breadcrumbs"> <a href="paramiko-module.html">Package paramiko</a> :: <a href="paramiko.buffered_pipe-module.html" onclick="show_private();">Module buffered_pipe</a> :: Class BufferedPipe </span> </td> <td> <table cellpadding="0" cellspacing="0"> <!-- hide/show private --> <tr><td align="right"><span class="options" >[<a href="frames.html" target="_top">frames</a >] | <a href="paramiko.buffered_pipe.BufferedPipe-class.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== CLASS DESCRIPTION ==================== --> <h1 class="epydoc">Class BufferedPipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe">source code</a></span></p> <pre class="base-tree"> object --+ | <strong class="uidshort">BufferedPipe</strong> </pre> <hr /> <p>A buffer that obeys normal read (with timeout) & close semantics for a file or socket, but is fed data from another thread. This is used by <a href="paramiko.Channel-class.html" class="link">Channel</a>.</p> <!-- ==================== INSTANCE METHODS ==================== --> <a name="section-InstanceMethods"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Instance Methods</span></td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br /> x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__init__">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#set_event" class="summary-sig-name">set_event</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">event</span>)</span><br /> Set an event on this buffer.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.set_event">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#feed" class="summary-sig-name">feed</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">data</span>)</span><br /> Feed new data into this pipe.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.feed">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">bool</span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#read_ready" class="summary-sig-name">read_ready</a>(<span class="summary-sig-arg">self</span>)</span><br /> Returns true if data is buffered and ready to be read from this feeder.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read_ready">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">str</span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">nbytes</span>, <span class="summary-sig-arg">timeout</span>=<span class="summary-sig-default">None</span>)</span><br /> Read data from the pipe.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">str</span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#empty" class="summary-sig-name">empty</a>(<span class="summary-sig-arg">self</span>)</span><br /> Clear out the buffer and return all data that was in it.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.empty">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br /> Close this pipe object.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.close">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type">int</span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#__len__" class="summary-sig-name">__len__</a>(<span class="summary-sig-arg">self</span>)</span><br /> Return the number of bytes buffered.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__len__">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: <code>__delattr__</code>, <code>__getattribute__</code>, <code>__hash__</code>, <code>__new__</code>, <code>__reduce__</code>, <code>__reduce_ex__</code>, <code>__repr__</code>, <code>__setattr__</code>, <code>__str__</code> </p> </td> </tr> </table> <!-- ==================== PROPERTIES ==================== --> <a name="section-Properties"></a> <table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Properties</span></td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: <code>__class__</code> </p> </td> </tr> </table> <!-- ==================== METHOD DETAILS ==================== --> <a name="section-MethodDetails"></a> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr bgcolor="#70b0f0" class="table-header"> <td align="left" colspan="2" class="table-header"> <span class="table-header">Method Details</span></td> </tr> </table> <a name="__init__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>)</span> <br /><em class="fname">(Constructor)</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__init__">source code</a></span> </td> </tr></table> <p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p> <dl class="fields"> <dt>Overrides: object.__init__ <dd><em class="note">(inherited documentation)</em></dd> </dt> </dl> </td></tr></table> </div> <a name="set_event"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">set_event</span>(<span class="sig-arg">self</span>, <span class="sig-arg">event</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.set_event">source code</a></span> </td> </tr></table> <p>Set an event on this buffer. When data is ready to be read (or the buffer has been closed), the event will be set. When no data is ready, the event will be cleared.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>event</code></strong> (Event) - the event to set/clear</li> </ul></dd> </dl> </td></tr></table> </div> <a name="feed"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">feed</span>(<span class="sig-arg">self</span>, <span class="sig-arg">data</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.feed">source code</a></span> </td> </tr></table> <p>Feed new data into this pipe. This method is assumed to be called from a separate thread, so synchronization is done.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>data</code></strong> (str) - the data to add</li> </ul></dd> </dl> </td></tr></table> </div> <a name="read_ready"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">read_ready</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read_ready">source code</a></span> </td> </tr></table> <p>Returns true if data is buffered and ready to be read from this feeder. A <code>False</code> result does not mean that the feeder has closed; it means you may need to wait before more data arrives.</p> <dl class="fields"> <dt>Returns: bool</dt> <dd><code>True</code> if a <a href="paramiko.buffered_pipe.BufferedPipe-class.html#read" class="link">read</a> call would immediately return at least one byte; <code>False</code> otherwise.</dd> </dl> </td></tr></table> </div> <a name="read"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">read</span>(<span class="sig-arg">self</span>, <span class="sig-arg">nbytes</span>, <span class="sig-arg">timeout</span>=<span class="sig-default">None</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read">source code</a></span> </td> </tr></table> <p>Read data from the pipe. The return value is a string representing the data received. The maximum amount of data to be received at once is specified by <code>nbytes</code>. If a string of length zero is returned, the pipe has been closed.</p> <p>The optional <code>timeout</code> argument can be a nonnegative float expressing seconds, or <code>None</code> for no timeout. If a float is given, a <code>PipeTimeout</code> will be raised if the timeout period value has elapsed before any data arrives.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>nbytes</code></strong> (int) - maximum number of bytes to read</li> <li><strong class="pname"><code>timeout</code></strong> (float) - maximum seconds to wait (or <code>None</code>, the default, to wait forever)</li> </ul></dd> <dt>Returns: str</dt> <dd>data</dd> <dt>Raises:</dt> <dd><ul class="nomargin-top"> <li><code><strong class='fraise'><a href="paramiko.buffered_pipe.PipeTimeout-class.html">PipeTimeout</a></strong></code> - if a timeout was specified and no data was ready before that timeout</li> </ul></dd> </dl> </td></tr></table> </div> <a name="empty"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">empty</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.empty">source code</a></span> </td> </tr></table> <p>Clear out the buffer and return all data that was in it.</p> <dl class="fields"> <dt>Returns: str</dt> <dd>any data that was in the buffer prior to clearing it out</dd> </dl> </td></tr></table> </div> <a name="close"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">close</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.close">source code</a></span> </td> </tr></table> <p>Close this pipe object. Future calls to <a href="paramiko.buffered_pipe.BufferedPipe-class.html#read" class="link">read</a> after the buffer has been emptied will return immediately with an empty string.</p> <dl class="fields"> </dl> </td></tr></table> </div> <a name="__len__"></a> <div> <table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white"> <tr><td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr valign="top"><td> <h3 class="epydoc"><span class="sig"><span class="sig-name">__len__</span>(<span class="sig-arg">self</span>)</span> <br /><em class="fname">(Length operator)</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__len__">source code</a></span> </td> </tr></table> <p>Return the number of bytes buffered.</p> <dl class="fields"> <dt>Returns: int</dt> <dd>number of bytes bufferes</dd> </dl> </td></tr></table> </div> <br /> <!-- ==================== NAVIGATION BAR ==================== --> <table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0"> <tr valign="middle"> <!-- Home link --> <th> <a href="paramiko-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </th> <th class="navbar" width="100%"></th> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%%"> <tr> <td align="left" class="footer"> Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:30 2008 </td> <td align="right" class="footer"> <a target="mainFrame" href="http://epydoc.sourceforge.net" >http://epydoc.sourceforge.net</a> </td> </tr> </table> <script type="text/javascript"> <!-- // Private objects are initially displayed (because if // javascript is turned off then we want them to be // visible); but by default, we want to hide them. So hide // them unless we have a cookie that says to show them. checkCookie(); // --> </script> </body> </html>