blob: 64a6c50be0d62cf0da91c852cd546d62ffcb9d93 [file] [log] [blame]
<!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>activemq-cpp-3.4.0: decaf::io::FilterInputStream Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">activemq-cpp-3.4.0</div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</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>Data&#160;Structures</span></a></li>
<li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('classdecaf_1_1io_1_1_filter_input_stream.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> </div>
<div class="headertitle">
<h1>decaf::io::FilterInputStream Class Reference</h1> </div>
</div>
<div class="contents">
<!-- doxytag: class="decaf::io::FilterInputStream" --><!-- doxytag: inherits="decaf::io::InputStream" -->
<p>A <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html" title="A FilterInputStream contains some other input stream, which it uses as its basic source of data...">FilterInputStream</a> contains some other input stream, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_filter_input_stream_8h_source.html">src/main/decaf/io/FilterInputStream.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for decaf::io::FilterInputStream:</div>
<div class="dyncontent">
<div class="center"><img src="classdecaf_1_1io_1_1_filter_input_stream__inherit__graph.png" border="0" usemap="#decaf_1_1io_1_1_filter_input_stream_inherit__map" alt="Inheritance graph"/></div>
<map name="decaf_1_1io_1_1_filter_input_stream_inherit__map" id="decaf_1_1io_1_1_filter_input_stream_inherit__map">
<area shape="rect" id="node9" href="classactivemq_1_1io_1_1_logging_input_stream.html" title="activemq::io::LoggingInputStream" alt="" coords="832,5,1085,35"/><area shape="rect" id="node11" href="classdecaf_1_1io_1_1_buffered_input_stream.html" title="A wrapper around another input stream that performs a buffered read, where it reads more data than it..." alt="" coords="841,59,1076,88"/><area shape="rect" id="node13" href="classdecaf_1_1io_1_1_data_input_stream.html" title="A data input stream lets an application read primitive Java data types from an underlying input strea..." alt="" coords="853,112,1064,141"/><area shape="rect" id="node15" href="classdecaf_1_1io_1_1_pushback_input_stream.html" title="A PushbackInputStream adds functionality to another input stream, namely the ability to &quot;push ba..." alt="" coords="840,165,1077,195"/><area shape="rect" id="node17" href="classdecaf_1_1util_1_1zip_1_1_checked_input_stream.html" title="An implementation of a FilterInputStream that will maintain a Checksum of the bytes read..." alt="" coords="821,219,1096,248"/><area shape="rect" id="node19" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html" title="A FilterInputStream that decompresses data read from the wrapped InputStream instance." alt="" coords="827,272,1091,301"/><area shape="rect" id="node2" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea..." alt="" coords="339,139,515,168"/><area shape="rect" id="node4" href="classdecaf_1_1io_1_1_closeable.html" title="Interface for a class that implements the close method." alt="" coords="71,112,225,141"/><area shape="rect" id="node6" href="classdecaf_1_1util_1_1concurrent_1_1_synchronizable.html" title="The interface for all synchronizable objects (that is, objects that can be locked and unlocked)..." alt="" coords="5,165,291,195"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<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">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#ab901def0822fb3fbec1e582fdbd557f9">FilterInputStream</a> (<a class="el" href="classdecaf_1_1io_1_1_input_stream.html">InputStream</a> *<a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a7f3bf93d01a14b8a0ae20f77e91c9a1a">inputStream</a>, bool <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a347c29a6e05c78777466ffe323872f89">own</a>=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor to create a wrapped <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a>. <a href="#ab901def0822fb3fbec1e582fdbd557f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#ac6a28400030139258dc9166402b90bc6">~FilterInputStream</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a0f755e6f29a0bf09f6c36f9cbd901a05">available</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the number of bytes available.The default implementation of this methods returns 0. Classes that override this method may return the total number of bytes that are currently available for reading and others may simply return a value of one indicating that there is some data avaiable. The caller should view the result of this method as an absolute.The default implementation of this method returns zero.<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes available on this input stream.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs.</td></tr>
</table>
</dd>
</dl>
<a href="#a0f755e6f29a0bf09f6c36f9cbd901a05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a86fff21a2592c4b0e8654075b535a553">close</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a> freeing any resources that might have been acquired during the lifetime of this stream.The default implementation of this method does nothing.<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs while closing the <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a>.</td></tr>
</table>
</dd>
</dl>
<a href="#a86fff21a2592c4b0e8654075b535a553"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual long long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a19d847009df788eb53c1d9dea7cbe0df">skip</a> (long long num)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Skips over and discards n bytes of data from this input stream.The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0. This may result from any of a number of conditions; reaching end of file before n bytes have been skipped is only one possibility. The actual number of bytes skipped is returned.The skip method of <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a> creates a byte array and then repeatedly reads into it until num bytes have been read or the end of the stream has been reached. Subclasses are encouraged to provide a more efficient implementation of this method.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">num</td><td>The number of bytes to skip.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>total bytes skipped</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs. </td></tr>
<tr><td class="paramname">UnsupportedOperationException</td><td>if the concrete stream class does not support skipping bytes.</td></tr>
</table>
</dd>
</dl>
<a href="#a19d847009df788eb53c1d9dea7cbe0df"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a669f86fa8c0da1f446b6f7ebb36110e0">mark</a> (int readLimit)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the current position in the stream A subsequent call to the reset method repositions this stream at the last marked position so that subsequent reads re-read the same bytes.If a stream instance reports that marks are supported then the stream will ensure that the same bytes can be read again after the reset method is called so long the readLimit is not reached.Calling mark on a closed stream instance should have no effect.The default implementation of this method does nothing.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">readLimit</td><td>The max bytes read before marked position is invalid.</td></tr>
</table>
</dd>
</dl>
<a href="#a669f86fa8c0da1f446b6f7ebb36110e0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a26b2960b011babbb14e532b580bc5bfb">reset</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Repositions this stream to the position at the time the mark method was last called on this input stream.If the method markSupported returns true, then: * If the method mark has not been called since the stream was created, or the number of bytes read from the stream since mark was last called is larger than the argument to mark at that last call, then an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a> might be thrown. * If such an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a> is not thrown, then the stream is reset to a state such that all the bytes read since the most recent call to mark (or since the start of the file, if mark has not been called) will be resupplied to subsequent callers of the read method, followed by any bytes that otherwise would have been the next input data as of the time of the call to reset.If the method markSupported returns false, then: * The call to reset may throw an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a>. * If an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a> is not thrown, then the stream is reset to a fixed state that depends on the particular type of the input stream and how it was created. The bytes that will be supplied to subsequent callers of the read method depend on the particular type of the input stream.The default implementation of this method throws an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a>.<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs.</td></tr>
</table>
</dd>
</dl>
<a href="#a26b2960b011babbb14e532b580bc5bfb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a41d5a8addb10ec53949813e57d27fb1b">markSupported</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines if this input stream supports the mark and reset methods.Whether or not mark and reset are supported is an invariant property of a particular input stream instance.The default implementation of this method returns false.<dl class="return"><dt><b>Returns:</b></dt><dd>true if this stream instance supports marks</dd></dl>
<a href="#a41d5a8addb10ec53949813e57d27fb1b"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#ab0514878c052c3b4b08954e6736a4173">doReadByte</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a17fd025ad90b2d4f729a605062493893">doReadArray</a> (unsigned char *buffer, int size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a6d58708d0bd13acb46fa4884a0afabf3">doReadArrayBounded</a> (unsigned char *buffer, int size, int offset, int length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a15729a850d992566f47f25b7c35a6ba4">isClosed</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdecaf_1_1io_1_1_input_stream.html">InputStream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a7f3bf93d01a14b8a0ae20f77e91c9a1a">inputStream</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a347c29a6e05c78777466ffe323872f89">own</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">volatile bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a6673f4dad9f288782c3a3e3252626566">closed</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html" title="A FilterInputStream contains some other input stream, which it uses as its basic source of data...">FilterInputStream</a> contains some other input stream, which it uses as its basic source of data, possibly transforming the data along the way or providing additional functionality. </p>
<p>The class <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html" title="A FilterInputStream contains some other input stream, which it uses as its basic source of data...">FilterInputStream</a> itself simply overrides all methods of <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a> with versions that pass all requests to the contained input stream. Subclasses of <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html" title="A FilterInputStream contains some other input stream, which it uses as its basic source of data...">FilterInputStream</a> may further override some of these methods and may also provide additional methods and fields. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ab901def0822fb3fbec1e582fdbd557f9"></a><!-- doxytag: member="decaf::io::FilterInputStream::FilterInputStream" ref="ab901def0822fb3fbec1e582fdbd557f9" args="(InputStream *inputStream, bool own=false)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">decaf::io::FilterInputStream::FilterInputStream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdecaf_1_1io_1_1_input_stream.html">InputStream</a> *&#160;</td>
<td class="paramname"><em>inputStream</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>own</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constructor to create a wrapped <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">inputStream</td><td>The stream to wrap and filter. </td></tr>
<tr><td class="paramname">own</td><td>Indicates if we own the stream object, defaults to false. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ac6a28400030139258dc9166402b90bc6"></a><!-- doxytag: member="decaf::io::FilterInputStream::~FilterInputStream" ref="ac6a28400030139258dc9166402b90bc6" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual decaf::io::FilterInputStream::~FilterInputStream </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a0f755e6f29a0bf09f6c36f9cbd901a05"></a><!-- doxytag: member="decaf::io::FilterInputStream::available" ref="a0f755e6f29a0bf09f6c36f9cbd901a05" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual int decaf::io::FilterInputStream::available </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Indicates the number of bytes available.The default implementation of this methods returns 0. Classes that override this method may return the total number of bytes that are currently available for reading and others may simply return a value of one indicating that there is some data avaiable. The caller should view the result of this method as an absolute.The default implementation of this method returns zero.<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes available on this input stream.</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#abd58067dcb828eae1b1c71550481011b">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#ad3d7ca8ea6a074a2cdf4e0d56b17bee6">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#a718a36cfaba533a0468eaa134187a6cc">decaf::io::PushbackInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#a98ebc398888a57c05bd1c52f415d7a33">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a86fff21a2592c4b0e8654075b535a553"></a><!-- doxytag: member="decaf::io::FilterInputStream::close" ref="a86fff21a2592c4b0e8654075b535a553" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void decaf::io::FilterInputStream::close </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Closes the <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a> freeing any resources that might have been acquired during the lifetime of this stream.The default implementation of this method does nothing.<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs while closing the <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a>.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a668416594975ab3b84e28450832fd1aa">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#a4a9588a35d044983916fc4b8871dfed1">decaf::io::BufferedInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#a5ccc3334d7fec6890b2507f2783ca069">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a17fd025ad90b2d4f729a605062493893"></a><!-- doxytag: member="decaf::io::FilterInputStream::doReadArray" ref="a17fd025ad90b2d4f729a605062493893" args="(unsigned char *buffer, int size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual int decaf::io::FilterInputStream::doReadArray </td>
<td>(</td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a3200d99c001f9f7116d94392deaed591">decaf::io::InputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a6d58708d0bd13acb46fa4884a0afabf3"></a><!-- doxytag: member="decaf::io::FilterInputStream::doReadArrayBounded" ref="a6d58708d0bd13acb46fa4884a0afabf3" args="(unsigned char *buffer, int size, int offset, int length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual int decaf::io::FilterInputStream::doReadArrayBounded </td>
<td>(</td>
<td class="paramtype">unsigned char *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a2a7ec663798f4bf9f29b031a11ae7513">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classactivemq_1_1io_1_1_logging_input_stream.html#a6ee7383d3918d4a5cc42e930331f3dc6">activemq::io::LoggingInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#a37f483a36a400bc8394d44e425ccf6ef">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#ab447bd803236c45e3bd9ead8edc8baa7">decaf::io::PushbackInputStream</a>, <a class="el" href="classdecaf_1_1util_1_1zip_1_1_checked_input_stream.html#ac9f6b159d903ee9360fb7f435d667427">decaf::util::zip::CheckedInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#a4527c3bb4d5532aa7c9b413131bb1cf9">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="ab0514878c052c3b4b08954e6736a4173"></a><!-- doxytag: member="decaf::io::FilterInputStream::doReadByte" ref="ab0514878c052c3b4b08954e6736a4173" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual int decaf::io::FilterInputStream::doReadByte </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Implements <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a6ffe401a9e727d9b15fbefa543a02c06">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classactivemq_1_1io_1_1_logging_input_stream.html#a3e2bf01b49735c8e50daa7fa9904d80e">activemq::io::LoggingInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#ae8190ca60e98e7ed848f682b472127f6">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#a80e2754c1b93abb9395c44ea5f3f475e">decaf::io::PushbackInputStream</a>, <a class="el" href="classdecaf_1_1util_1_1zip_1_1_checked_input_stream.html#a1248acc86ebef61745f467469e440d8b">decaf::util::zip::CheckedInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#a61fed11c09600bca777cecf51efafc2b">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a15729a850d992566f47f25b7c35a6ba4"></a><!-- doxytag: member="decaf::io::FilterInputStream::isClosed" ref="a15729a850d992566f47f25b7c35a6ba4" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual bool decaf::io::FilterInputStream::isClosed </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>true if this stream has been closed. </dd></dl>
</div>
</div>
<a class="anchor" id="a669f86fa8c0da1f446b6f7ebb36110e0"></a><!-- doxytag: member="decaf::io::FilterInputStream::mark" ref="a669f86fa8c0da1f446b6f7ebb36110e0" args="(int readLimit)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void decaf::io::FilterInputStream::mark </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>readLimit</em></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Marks the current position in the stream A subsequent call to the reset method repositions this stream at the last marked position so that subsequent reads re-read the same bytes.If a stream instance reports that marks are supported then the stream will ensure that the same bytes can be read again after the reset method is called so long the readLimit is not reached.Calling mark on a closed stream instance should have no effect.The default implementation of this method does nothing.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">readLimit</td><td>The max bytes read before marked position is invalid.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a4364fea883a343596df37e992e9f7977">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#aa31afad836438926a153590157696115">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#ae27c520cef2e1e9c283172de24d73895">decaf::io::PushbackInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#aa3d00a554c5fff4805be07c8d50cf3d6">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a41d5a8addb10ec53949813e57d27fb1b"></a><!-- doxytag: member="decaf::io::FilterInputStream::markSupported" ref="a41d5a8addb10ec53949813e57d27fb1b" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual bool decaf::io::FilterInputStream::markSupported </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const<code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Determines if this input stream supports the mark and reset methods.Whether or not mark and reset are supported is an invariant property of a particular input stream instance.The default implementation of this method returns false.<dl class="return"><dt><b>Returns:</b></dt><dd>true if this stream instance supports marks</dd></dl>
</p>
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a04e316403bac2ae826cb5d387bb4b6bf">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#a18cb7cb05e599f47a719e75d95a46f73">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#a32302aef0482f65559cbdc8f2e465e3d">decaf::io::PushbackInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#a5eca95e1b22556ac68ed7fb2f7f3f811">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a26b2960b011babbb14e532b580bc5bfb"></a><!-- doxytag: member="decaf::io::FilterInputStream::reset" ref="a26b2960b011babbb14e532b580bc5bfb" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void decaf::io::FilterInputStream::reset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Repositions this stream to the position at the time the mark method was last called on this input stream.If the method markSupported returns true, then: * If the method mark has not been called since the stream was created, or the number of bytes read from the stream since mark was last called is larger than the argument to mark at that last call, then an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a> might be thrown. * If such an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a> is not thrown, then the stream is reset to a state such that all the bytes read since the most recent call to mark (or since the start of the file, if mark has not been called) will be resupplied to subsequent callers of the read method, followed by any bytes that otherwise would have been the next input data as of the time of the call to reset.If the method markSupported returns false, then: * The call to reset may throw an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a>. * If an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a> is not thrown, then the stream is reset to a fixed state that depends on the particular type of the input stream and how it was created. The bytes that will be supplied to subsequent callers of the read method depend on the particular type of the input stream.The default implementation of this method throws an <a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a>.<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a9aac83307fee664c0faa397d2a9a835a">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#ac403e88b060a105acd8dd1c52473585b">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#a62f7b0c6d3b160b0f3eea24ba95a8126">decaf::io::PushbackInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#a79c9bffe9dbf065e96d774820d1a348e">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<a class="anchor" id="a19d847009df788eb53c1d9dea7cbe0df"></a><!-- doxytag: member="decaf::io::FilterInputStream::skip" ref="a19d847009df788eb53c1d9dea7cbe0df" args="(long long num)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual long long decaf::io::FilterInputStream::skip </td>
<td>(</td>
<td class="paramtype">long long&#160;</td>
<td class="paramname"><em>num</em></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Skips over and discards n bytes of data from this input stream.The skip method may, for a variety of reasons, end up skipping over some smaller number of bytes, possibly 0. This may result from any of a number of conditions; reaching end of file before n bytes have been skipped is only one possibility. The actual number of bytes skipped is returned.The skip method of <a class="el" href="classdecaf_1_1io_1_1_input_stream.html" title="A base class that must be implemented by all classes wishing to provide a class that reads in a strea...">InputStream</a> creates a byte array and then repeatedly reads into it until num bytes have been read or the end of the stream has been reached. Subclasses are encouraged to provide a more efficient implementation of this method.<dl><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">num</td><td>The number of bytes to skip.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>total bytes skipped</dd></dl>
<dl><dt><b>Exceptions:</b></dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classdecaf_1_1io_1_1_i_o_exception.html">IOException</a></td><td>if an I/O error occurs. </td></tr>
<tr><td class="paramname">UnsupportedOperationException</td><td>if the concrete stream class does not support skipping bytes.</td></tr>
</table>
</dd>
</dl>
</p>
<p>Reimplemented from <a class="el" href="classdecaf_1_1io_1_1_input_stream.html#a4e9ec7e4e17195eb2f2d0326f07152bd">decaf::io::InputStream</a>.</p>
<p>Reimplemented in <a class="el" href="classdecaf_1_1io_1_1_buffered_input_stream.html#a7294c56d2164da76df46668bc74681d9">decaf::io::BufferedInputStream</a>, <a class="el" href="classdecaf_1_1io_1_1_pushback_input_stream.html#ad9ea3573fa4c51ce2bfa2f1e713afd91">decaf::io::PushbackInputStream</a>, <a class="el" href="classdecaf_1_1util_1_1zip_1_1_checked_input_stream.html#ac381cf3ce7737a9946c5efc4f3165bb3">decaf::util::zip::CheckedInputStream</a>, and <a class="el" href="classdecaf_1_1util_1_1zip_1_1_inflater_input_stream.html#add21d387d1b17bcfd9cbd642e2f56095">decaf::util::zip::InflaterInputStream</a>.</p>
</div>
</div>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a6673f4dad9f288782c3a3e3252626566"></a><!-- doxytag: member="decaf::io::FilterInputStream::closed" ref="a6673f4dad9f288782c3a3e3252626566" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">volatile bool <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a6673f4dad9f288782c3a3e3252626566">decaf::io::FilterInputStream::closed</a><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a7f3bf93d01a14b8a0ae20f77e91c9a1a"></a><!-- doxytag: member="decaf::io::FilterInputStream::inputStream" ref="a7f3bf93d01a14b8a0ae20f77e91c9a1a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdecaf_1_1io_1_1_input_stream.html">InputStream</a>* <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a7f3bf93d01a14b8a0ae20f77e91c9a1a">decaf::io::FilterInputStream::inputStream</a><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<a class="anchor" id="a347c29a6e05c78777466ffe323872f89"></a><!-- doxytag: member="decaf::io::FilterInputStream::own" ref="a347c29a6e05c78777466ffe323872f89" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html#a347c29a6e05c78777466ffe323872f89">decaf::io::FilterInputStream::own</a><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/main/decaf/io/<a class="el" href="_filter_input_stream_8h_source.html">FilterInputStream.h</a></li>
</ul>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacedecaf.html">decaf</a> </li>
<li class="navelem"><a class="el" href="namespacedecaf_1_1io.html">io</a> </li>
<li class="navelem"><a class="el" href="classdecaf_1_1io_1_1_filter_input_stream.html">FilterInputStream</a> </li>
<li class="footer">Generated on Mon Apr 25 2011 for activemq-cpp-3.4.0 by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
</ul>
</div>
</body>
</html>