Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 23e07fd43e778a61ff4b78161a3e2389 > files > 769

cryptopp-doc-5.6.1-5.fc14.noarch.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"/>
<title>Crypto++: HashFilter Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<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">Crypto++</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>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="classes.html"><span>Class&#160;Index</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>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-static-methods">Static Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">HashFilter Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="HashFilter" --><!-- doxytag: inherits="Bufferless&lt; Filter &gt;,FilterPutSpaceHelper" -->
<p><a class="el" href="class_filter.html" title="provides an implementation of BufferedTransformation&#39;s attachment interface">Filter</a> Wrapper for <a class="el" href="class_hash_transformation.html" title="interface for hash functions and data processing part of MACs">HashTransformation</a>.  
 <a href="class_hash_filter.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="filters_8h_source.html">filters.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for HashFilter:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_hash_filter.png" usemap="#HashFilter_map" alt=""/>
  <map id="HashFilter_map" name="HashFilter_map">
<area href="class_bufferless.html" alt="Bufferless&lt; Filter &gt;" shape="rect" coords="155,224,300,248"/>
<area href="struct_filter_put_space_helper.html" alt="FilterPutSpaceHelper" shape="rect" coords="310,224,455,248"/>
<area href="class_filter.html" title="provides an implementation of BufferedTransformation&#39;s attachment interface" alt="Filter" shape="rect" coords="155,168,300,192"/>
<area href="class_buffered_transformation.html" title="interface for buffered transformations" alt="BufferedTransformation" shape="rect" coords="77,112,222,136"/>
<area href="class_not_copyable.html" alt="NotCopyable" shape="rect" coords="232,112,377,136"/>
<area href="class_algorithm.html" title="interface for all crypto algorithms" alt="Algorithm" shape="rect" coords="0,56,145,80"/>
<area href="class_waitable.html" title="interface for objects that you can wait for" alt="Waitable" shape="rect" coords="155,56,300,80"/>
<area href="class_clonable.html" title="interface for cloning objects, this is not implemented by most classes yet" alt="Clonable" shape="rect" coords="0,0,145,24"/>
</map>
 </div></div>

<p><a href="class_hash_filter-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="a58b9949a468e798cc97d7b4c59a9d8c2"></a><!-- doxytag: member="HashFilter::HashFilter" ref="a58b9949a468e798cc97d7b4c59a9d8c2" args="(HashTransformation &amp;hm, BufferedTransformation *attachment=NULL, bool putMessage=false, int truncatedDigestSize=&#45;1, const std::string &amp;messagePutChannel=DEFAULT_CHANNEL, const std::string &amp;hashPutChannel=DEFAULT_CHANNEL)" -->
&#160;</td><td class="memItemRight" valign="bottom"><b>HashFilter</b> (<a class="el" href="class_hash_transformation.html">HashTransformation</a> &amp;hm, <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *attachment=NULL, bool putMessage=false, int truncatedDigestSize=-1, const std::string &amp;messagePutChannel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>, const std::string &amp;hashPutChannel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac832515bc9e530470065c162d7bc7e9a"></a><!-- doxytag: member="HashFilter::AlgorithmName" ref="ac832515bc9e530470065c162d7bc7e9a" args="() const " -->
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_hash_filter.html#ac832515bc9e530470065c162d7bc7e9a">AlgorithmName</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns name of this algorithm, not universally implemented yet <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a950c5cc22d2aa101e731401b10ff2be4"></a><!-- doxytag: member="HashFilter::IsolatedInitialize" ref="a950c5cc22d2aa101e731401b10ff2be4" args="(const NameValuePairs &amp;parameters)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>IsolatedInitialize</b> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_hash_filter.html#a297dcb6efcd23ad55d90136ccc18c73b">Put2</a> (const byte *begin, size_t length, int messageEnd, bool blocking)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input multiple bytes for blocking or non-blocking processing  <a href="#a297dcb6efcd23ad55d90136ccc18c73b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">byte *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_hash_filter.html#a5c2f3a90ced66c835969ce1aa235b63e">CreatePutSpace</a> (size_t &amp;size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">request space which can be written into by the caller, and then used as input to <a class="el" href="class_buffered_transformation.html#ae70658b0d271f8e114ac6c3cc9774ede" title="input a byte for processing">Put()</a>  <a href="#a5c2f3a90ced66c835969ce1aa235b63e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a872a67af13d0291373a381f41cd6ad2f"></a><!-- doxytag: member="HashFilter::IsolatedFlush" ref="a872a67af13d0291373a381f41cd6ad2f" args="(bool hardFlush, bool blocking)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsolatedFlush</b> (bool hardFlush, bool blocking)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#a6e7251247b5c2cc3b0c15e861cc88e16">Attachable</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns whether this object allows attachment  <a href="#a6e7251247b5c2cc3b0c15e861cc88e16"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8fc888888b2dad88bf64fc703044a93"></a><!-- doxytag: member="HashFilter::AttachedTransformation" ref="ac8fc888888b2dad88bf64fc703044a93" args="()" -->
<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#ac8fc888888b2dad88bf64fc703044a93">AttachedTransformation</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the object immediately attached to this object or NULL for no attachment <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d888003a5af6c51ef2c80b2f11d6b72"></a><!-- doxytag: member="HashFilter::AttachedTransformation" ref="a0d888003a5af6c51ef2c80b2f11d6b72" args="() const " -->
const <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>AttachedTransformation</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93817876b45172108fe0342de6442f75"></a><!-- doxytag: member="HashFilter::Detach" ref="a93817876b45172108fe0342de6442f75" args="(BufferedTransformation *newAttachment=NULL)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#a93817876b45172108fe0342de6442f75">Detach</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *newAttachment=NULL)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">delete the current attachment chain and replace it with newAttachment <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab24c6c52bb6185c25ee6efcced36dbd0"></a><!-- doxytag: member="HashFilter::TransferTo2" ref="ab24c6c52bb6185c25ee6efcced36dbd0" args="(BufferedTransformation &amp;target, lword &amp;transferBytes, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#ab24c6c52bb6185c25ee6efcced36dbd0">TransferTo2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, lword &amp;transferBytes, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">upon return, byteCount contains number of bytes that have finished being transfered, and returns the number of bytes left in the current transfer block <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0bbd9fb0969f6f48b8462d8529889aa"></a><!-- doxytag: member="HashFilter::CopyRangeTo2" ref="ac0bbd9fb0969f6f48b8462d8529889aa" args="(BufferedTransformation &amp;target, lword &amp;begin, lword end=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true) const " -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#ac0bbd9fb0969f6f48b8462d8529889aa">CopyRangeTo2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, lword &amp;begin, lword end=LWORD_MAX, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>, bool blocking=true) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">upon return, begin contains the start position of data yet to be finished copying, and returns the number of bytes left in the current transfer block <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c011bdc71755b373292e7a722e9e332"></a><!-- doxytag: member="HashFilter::Initialize" ref="a0c011bdc71755b373292e7a722e9e332" args="(const NameValuePairs &amp;parameters=g_nullNameValuePairs, int propagation=&#45;1)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#a0c011bdc71755b373292e7a722e9e332">Initialize</a> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=<a class="el" href="cryptlib_8h.html#aa9048ef24353685fd0dcc4180c6884c2">g_nullNameValuePairs</a>, int propagation=-1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize or reinitialize this object <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#ad845deb5113d2bd04d109c05abfd3098">Flush</a> (bool hardFlush, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">flush buffered input and/or output  <a href="#ad845deb5113d2bd04d109c05abfd3098"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_filter.html#aa42c62587dda61266ac8195d9c9edb47">MessageSeriesEnd</a> (int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">mark end of a series of messages  <a href="#aa42c62587dda61266ac8195d9c9edb47"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25686ebe4c3ba26e7eeaae1dcd4d4215"></a><!-- doxytag: member="HashFilter::Ref" ref="a25686ebe4c3ba26e7eeaae1dcd4d4215" args="()" -->
<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a25686ebe4c3ba26e7eeaae1dcd4d4215">Ref</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">return a reference to this object, useful for passing a temporary object to a function that takes a non-const reference <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24b43349a71e1f98508eeb10b31a0a62"></a><!-- doxytag: member="HashFilter::Clone" ref="a24b43349a71e1f98508eeb10b31a0a62" args="() const " -->
virtual <a class="el" href="class_clonable.html">Clonable</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#a24b43349a71e1f98508eeb10b31a0a62">Clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">this is not implemented by most classes yet <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_waitable.html#aded81bbe562f61932306a64e6122a6ca">Wait</a> (unsigned long milliseconds, <a class="el" href="class_call_stack.html">CallStack</a> const &amp;callStack)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">wait on this object  <a href="#aded81bbe562f61932306a64e6122a6ca"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">INPUT</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae70658b0d271f8e114ac6c3cc9774ede"></a><!-- doxytag: member="HashFilter::Put" ref="ae70658b0d271f8e114ac6c3cc9774ede" args="(byte inByte, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#ae70658b0d271f8e114ac6c3cc9774ede">Put</a> (byte inByte, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input a byte for processing <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a44e935e60d3877975a7c82c6353d65c9"></a><!-- doxytag: member="HashFilter::Put" ref="a44e935e60d3877975a7c82c6353d65c9" args="(const byte *inString, size_t length, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a44e935e60d3877975a7c82c6353d65c9">Put</a> (const byte *inString, size_t length, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input multiple bytes <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92c60616792d7bce5cd41eaffbd1c3cc"></a><!-- doxytag: member="HashFilter::PutWord16" ref="a92c60616792d7bce5cd41eaffbd1c3cc" args="(word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a92c60616792d7bce5cd41eaffbd1c3cc">PutWord16</a> (word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input a 16-bit word <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affcc574867d51528afe3c96721ded075"></a><!-- doxytag: member="HashFilter::PutWord32" ref="affcc574867d51528afe3c96721ded075" args="(word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#affcc574867d51528afe3c96721ded075">PutWord32</a> (word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input a 32-bit word <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad130a75276220463bd261b3904576385"></a><!-- doxytag: member="HashFilter::CanModifyInput" ref="ad130a75276220463bd261b3904576385" args="() const " -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>CanModifyInput</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae15df84a7b67c25dfe2ce0ef5a74123c"></a><!-- doxytag: member="HashFilter::PutModifiable" ref="ae15df84a7b67c25dfe2ce0ef5a74123c" args="(byte *inString, size_t length, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#ae15df84a7b67c25dfe2ce0ef5a74123c">PutModifiable</a> (byte *inString, size_t length, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input multiple bytes that may be modified by callee <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20ae0ef2e4ff338b43849e541e9b940f"></a><!-- doxytag: member="HashFilter::MessageEnd" ref="a20ae0ef2e4ff338b43849e541e9b940f" args="(int propagation=&#45;1, bool blocking=true)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>MessageEnd</b> (int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa10b7e626f5af900a4d12f6e5d125891"></a><!-- doxytag: member="HashFilter::PutMessageEnd" ref="aa10b7e626f5af900a4d12f6e5d125891" args="(const byte *inString, size_t length, int propagation=&#45;1, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>PutMessageEnd</b> (const byte *inString, size_t length, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a770bf11f26d4dec66423a7dc2d36843d">PutModifiable2</a> (byte *inString, size_t length, int messageEnd, bool blocking)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">input multiple bytes that may be modified by callee for blocking or non-blocking processing  <a href="#a770bf11f26d4dec66423a7dc2d36843d"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">WAITING</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99cd939cda477af4d8e09bf15c692dc2"></a><!-- doxytag: member="HashFilter::GetMaxWaitObjectCount" ref="a99cd939cda477af4d8e09bf15c692dc2" args="() const " -->
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a99cd939cda477af4d8e09bf15c692dc2">GetMaxWaitObjectCount</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of wait objects that this object can return <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a127ccd1793fdda6548cd1295f848d0f7">GetWaitObjects</a> (<a class="el" href="class_wait_object_container.html">WaitObjectContainer</a> &amp;container, <a class="el" href="class_call_stack.html">CallStack</a> const &amp;callStack)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">put wait objects into container  <a href="#a127ccd1793fdda6548cd1295f848d0f7"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">SIGNALS</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf09f0cd6dbd022539a9ac5c316d4984"></a><!-- doxytag: member="HashFilter::IsolatedMessageSeriesEnd" ref="aaf09f0cd6dbd022539a9ac5c316d4984" args="(bool blocking)" -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>IsolatedMessageSeriesEnd</b> (bool blocking)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#ae77dc2fddb3ff142effb00eff3217581">SetAutoSignalPropagation</a> (int propagation)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">set propagation of automatically generated and transferred signals  <a href="#ae77dc2fddb3ff142effb00eff3217581"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7367757722f390fae20607afe0f916c5"></a><!-- doxytag: member="HashFilter::GetAutoSignalPropagation" ref="a7367757722f390fae20607afe0f916c5" args="() const " -->
virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>GetAutoSignalPropagation</b> () const </td></tr>
<tr><td colspan="2"><div class="groupHeader">RETRIEVAL OF ONE MESSAGE</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual lword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a6ec48acd2d2bda08baa4baa1c9a8a99c">MaxRetrievable</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns number of bytes that is currently ready for retrieval  <a href="#a6ec48acd2d2bda08baa4baa1c9a8a99c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5ee1b2a57700142f9c51e5a94703fc2"></a><!-- doxytag: member="HashFilter::AnyRetrievable" ref="ad5ee1b2a57700142f9c51e5a94703fc2" args="() const " -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#ad5ee1b2a57700142f9c51e5a94703fc2">AnyRetrievable</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns whether any bytes are currently ready for retrieval <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e1ad913c8fe697d269f408a7d5928fc"></a><!-- doxytag: member="HashFilter::Get" ref="a9e1ad913c8fe697d269f408a7d5928fc" args="(byte &amp;outByte)" -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a9e1ad913c8fe697d269f408a7d5928fc">Get</a> (byte &amp;outByte)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">try to retrieve a single byte <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0a6f18a871720453e1791c64f0461a9f"></a><!-- doxytag: member="HashFilter::Get" ref="a0a6f18a871720453e1791c64f0461a9f" args="(byte *outString, size_t getMax)" -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a0a6f18a871720453e1791c64f0461a9f">Get</a> (byte *outString, size_t getMax)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">try to retrieve multiple bytes <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fa048faf8c043ad57ae0a8911070090"></a><!-- doxytag: member="HashFilter::Peek" ref="a5fa048faf8c043ad57ae0a8911070090" args="(byte &amp;outByte) const " -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a5fa048faf8c043ad57ae0a8911070090">Peek</a> (byte &amp;outByte) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">peek at the next byte without removing it from the output buffer <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacdeedab8dc8557d17b12b67a9ff94dc"></a><!-- doxytag: member="HashFilter::Peek" ref="aacdeedab8dc8557d17b12b67a9ff94dc" args="(byte *outString, size_t peekMax) const " -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#aacdeedab8dc8557d17b12b67a9ff94dc">Peek</a> (byte *outString, size_t peekMax) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">peek at multiple bytes without removing them from the output buffer <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ac50bcb2d279c3c6aef6858dab3eeb7"></a><!-- doxytag: member="HashFilter::GetWord16" ref="a1ac50bcb2d279c3c6aef6858dab3eeb7" args="(word16 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a1ac50bcb2d279c3c6aef6858dab3eeb7">GetWord16</a> (word16 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">try to retrieve a 16-bit word <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69c064d931db3a8631c1138827d67e2f"></a><!-- doxytag: member="HashFilter::GetWord32" ref="a69c064d931db3a8631c1138827d67e2f" args="(word32 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a69c064d931db3a8631c1138827d67e2f">GetWord32</a> (word32 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">try to retrieve a 32-bit word <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a452057f0d887ba0f2b6ec5373e290e91"></a><!-- doxytag: member="HashFilter::PeekWord16" ref="a452057f0d887ba0f2b6ec5373e290e91" args="(word16 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER) const " -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a452057f0d887ba0f2b6ec5373e290e91">PeekWord16</a> (word16 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">try to peek at a 16-bit word <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee19b1f5f0df32de2f33bf6bded3bae6"></a><!-- doxytag: member="HashFilter::PeekWord32" ref="aee19b1f5f0df32de2f33bf6bded3bae6" args="(word32 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER) const " -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#aee19b1f5f0df32de2f33bf6bded3bae6">PeekWord32</a> (word32 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">try to peek at a 32-bit word <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac31ac5d2da7897fb097086496b85e6f5"></a><!-- doxytag: member="HashFilter::TransferTo" ref="ac31ac5d2da7897fb097086496b85e6f5" args="(BufferedTransformation &amp;target, lword transferMax=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
lword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#ac31ac5d2da7897fb097086496b85e6f5">TransferTo</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, lword transferMax=LWORD_MAX, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">move transferMax bytes of the buffered output to target as input <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c25529ded99db20ad35ccef3f7234e6"></a><!-- doxytag: member="HashFilter::Skip" ref="a0c25529ded99db20ad35ccef3f7234e6" args="(lword skipMax=LWORD_MAX)" -->
virtual lword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a0c25529ded99db20ad35ccef3f7234e6">Skip</a> (lword skipMax=LWORD_MAX)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">discard skipMax bytes from the output buffer <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5253b8693ac9932f3862b71c9960903c"></a><!-- doxytag: member="HashFilter::CopyTo" ref="a5253b8693ac9932f3862b71c9960903c" args="(BufferedTransformation &amp;target, lword copyMax=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
lword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a5253b8693ac9932f3862b71c9960903c">CopyTo</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, lword copyMax=LWORD_MAX, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">copy copyMax bytes of the buffered output to target as input <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1483b2879a70d26d0de568dd6081bb7b"></a><!-- doxytag: member="HashFilter::CopyRangeTo" ref="a1483b2879a70d26d0de568dd6081bb7b" args="(BufferedTransformation &amp;target, lword position, lword copyMax=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
lword&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a1483b2879a70d26d0de568dd6081bb7b">CopyRangeTo</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, lword position, lword copyMax=LWORD_MAX, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">copy copyMax bytes of the buffered output, starting at position (relative to current position), to target as input <br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">RETRIEVAL OF MULTIPLE MESSAGES</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae793ba515457e3918f4c7afef905416a"></a><!-- doxytag: member="HashFilter::TotalBytesRetrievable" ref="ae793ba515457e3918f4c7afef905416a" args="() const " -->
virtual lword&#160;</td><td class="memItemRight" valign="bottom"><b>TotalBytesRetrievable</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a318ef5010ac587977656dae56dfc5085"></a><!-- doxytag: member="HashFilter::NumberOfMessages" ref="a318ef5010ac587977656dae56dfc5085" args="() const " -->
virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a318ef5010ac587977656dae56dfc5085">NumberOfMessages</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">number of times MessageEnd() has been received minus messages retrieved or skipped <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a76b40ce3c88455c69f06234d609a0e4c"></a><!-- doxytag: member="HashFilter::AnyMessages" ref="a76b40ce3c88455c69f06234d609a0e4c" args="() const " -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a76b40ce3c88455c69f06234d609a0e4c">AnyMessages</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns true if <a class="el" href="class_buffered_transformation.html#a318ef5010ac587977656dae56dfc5085" title="number of times MessageEnd() has been received minus messages retrieved or skipped">NumberOfMessages()</a> &gt; 0 <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a8dc8562950fd563f7c62d1f1e5ec6b1e">GetNextMessage</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">start retrieving the next message  <a href="#a8dc8562950fd563f7c62d1f1e5ec6b1e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace560f14489f478bb4cd17c41905774e"></a><!-- doxytag: member="HashFilter::SkipMessages" ref="ace560f14489f478bb4cd17c41905774e" args="(unsigned int count=UINT_MAX)" -->
virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#ace560f14489f478bb4cd17c41905774e">SkipMessages</a> (unsigned int count=UINT_MAX)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">skip count number of messages <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0446d21781676a6f9c64d0b7a727d314"></a><!-- doxytag: member="HashFilter::TransferMessagesTo" ref="a0446d21781676a6f9c64d0b7a727d314" args="(BufferedTransformation &amp;target, unsigned int count=UINT_MAX, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>TransferMessagesTo</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, unsigned int count=UINT_MAX, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae09d3275076fa88f22670afd806205bb"></a><!-- doxytag: member="HashFilter::CopyMessagesTo" ref="ae09d3275076fa88f22670afd806205bb" args="(BufferedTransformation &amp;target, unsigned int count=UINT_MAX, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>CopyMessagesTo</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, unsigned int count=UINT_MAX, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaae2c7846a506939b40c2c8b708af1d4"></a><!-- doxytag: member="HashFilter::SkipAll" ref="aaae2c7846a506939b40c2c8b708af1d4" args="()" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>SkipAll</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a84c3629cdd9be90695c9701c1b8e24a2"></a><!-- doxytag: member="HashFilter::TransferAllTo" ref="a84c3629cdd9be90695c9701c1b8e24a2" args="(BufferedTransformation &amp;target, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>TransferAllTo</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af055ed9f3d096c9ab627973240608b3c"></a><!-- doxytag: member="HashFilter::CopyAllTo" ref="af055ed9f3d096c9ab627973240608b3c" args="(BufferedTransformation &amp;target, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>CopyAllTo</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb36a158b63cfd54acbada1a3699598c"></a><!-- doxytag: member="HashFilter::GetNextMessageSeries" ref="aeb36a158b63cfd54acbada1a3699598c" args="()" -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>GetNextMessageSeries</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50e09cbbc84c5c1e098c79ca88c42158"></a><!-- doxytag: member="HashFilter::NumberOfMessagesInThisSeries" ref="a50e09cbbc84c5c1e098c79ca88c42158" args="() const " -->
virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>NumberOfMessagesInThisSeries</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37e7c54c2be0451f4a8d395c228b1061"></a><!-- doxytag: member="HashFilter::NumberOfMessageSeries" ref="a37e7c54c2be0451f4a8d395c228b1061" args="() const " -->
virtual unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>NumberOfMessageSeries</b> () const </td></tr>
<tr><td colspan="2"><div class="groupHeader">NON-BLOCKING TRANSFER OF OUTPUT</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a70058989762156c376d7ffa5cb303e"></a><!-- doxytag: member="HashFilter::TransferMessagesTo2" ref="a1a70058989762156c376d7ffa5cb303e" args="(BufferedTransformation &amp;target, unsigned int &amp;messageCount, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a1a70058989762156c376d7ffa5cb303e">TransferMessagesTo2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, unsigned int &amp;messageCount, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">upon return, messageCount contains number of messages that have finished being transfered, and returns the number of bytes left in the current transfer block <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e47718aa65674256e1b069ec8e706b7"></a><!-- doxytag: member="HashFilter::TransferAllTo2" ref="a3e47718aa65674256e1b069ec8e706b7" args="(BufferedTransformation &amp;target, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a3e47718aa65674256e1b069ec8e706b7">TransferAllTo2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the number of bytes left in the current transfer block <br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">CHANNELS</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97a60b54fafdb3df59e1457ef629fc5f"></a><!-- doxytag: member="HashFilter::ChannelPut" ref="a97a60b54fafdb3df59e1457ef629fc5f" args="(const std::string &amp;channel, byte inByte, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPut</b> (const std::string &amp;channel, byte inByte, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b7fcb31b4cb09d38242354fcbc4b45c"></a><!-- doxytag: member="HashFilter::ChannelPut" ref="a5b7fcb31b4cb09d38242354fcbc4b45c" args="(const std::string &amp;channel, const byte *inString, size_t length, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPut</b> (const std::string &amp;channel, const byte *inString, size_t length, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3dc27692b14108ed057beb4db67fed2f"></a><!-- doxytag: member="HashFilter::ChannelPutModifiable" ref="a3dc27692b14108ed057beb4db67fed2f" args="(const std::string &amp;channel, byte *inString, size_t length, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPutModifiable</b> (const std::string &amp;channel, byte *inString, size_t length, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1bca66c16e0e52793059b41353964bd"></a><!-- doxytag: member="HashFilter::ChannelPutWord16" ref="aa1bca66c16e0e52793059b41353964bd" args="(const std::string &amp;channel, word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPutWord16</b> (const std::string &amp;channel, word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb06216012d6c40609db092952afcf3f"></a><!-- doxytag: member="HashFilter::ChannelPutWord32" ref="acb06216012d6c40609db092952afcf3f" args="(const std::string &amp;channel, word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPutWord32</b> (const std::string &amp;channel, word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0b37b299c5835083e58b205f9cc25cc"></a><!-- doxytag: member="HashFilter::ChannelMessageEnd" ref="ae0b37b299c5835083e58b205f9cc25cc" args="(const std::string &amp;channel, int propagation=&#45;1, bool blocking=true)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelMessageEnd</b> (const std::string &amp;channel, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3e9efe4c59093c330d287140fcfbdd9"></a><!-- doxytag: member="HashFilter::ChannelPutMessageEnd" ref="ad3e9efe4c59093c330d287140fcfbdd9" args="(const std::string &amp;channel, const byte *inString, size_t length, int propagation=&#45;1, bool blocking=true)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPutMessageEnd</b> (const std::string &amp;channel, const byte *inString, size_t length, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a877494d8de597af935cb770034f7f170"></a><!-- doxytag: member="HashFilter::ChannelCreatePutSpace" ref="a877494d8de597af935cb770034f7f170" args="(const std::string &amp;channel, size_t &amp;size)" -->
virtual byte *&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelCreatePutSpace</b> (const std::string &amp;channel, size_t &amp;size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a825c38044d268f6d561cb7f849e04b13"></a><!-- doxytag: member="HashFilter::ChannelPut2" ref="a825c38044d268f6d561cb7f849e04b13" args="(const std::string &amp;channel, const byte *begin, size_t length, int messageEnd, bool blocking)" -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPut2</b> (const std::string &amp;channel, const byte *begin, size_t length, int messageEnd, bool blocking)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeab62459524d9c93531ec365ba930be3"></a><!-- doxytag: member="HashFilter::ChannelPutModifiable2" ref="aeab62459524d9c93531ec365ba930be3" args="(const std::string &amp;channel, byte *begin, size_t length, int messageEnd, bool blocking)" -->
virtual size_t&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelPutModifiable2</b> (const std::string &amp;channel, byte *begin, size_t length, int messageEnd, bool blocking)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b504b2694ecb5d709a9858c5b93a0f7"></a><!-- doxytag: member="HashFilter::ChannelFlush" ref="a6b504b2694ecb5d709a9858c5b93a0f7" args="(const std::string &amp;channel, bool hardFlush, int propagation=&#45;1, bool blocking=true)" -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelFlush</b> (const std::string &amp;channel, bool hardFlush, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0fc63d42d94958f71fc573b17469921"></a><!-- doxytag: member="HashFilter::ChannelMessageSeriesEnd" ref="ae0fc63d42d94958f71fc573b17469921" args="(const std::string &amp;channel, int propagation=&#45;1, bool blocking=true)" -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>ChannelMessageSeriesEnd</b> (const std::string &amp;channel, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeeb151c318a472c5f1cf41617f3414a5"></a><!-- doxytag: member="HashFilter::SetRetrievalChannel" ref="aeeb151c318a472c5f1cf41617f3414a5" args="(const std::string &amp;channel)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>SetRetrievalChannel</b> (const std::string &amp;channel)</td></tr>
<tr><td colspan="2"><div class="groupHeader">ATTACHMENT</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f6cbec970dcb509b23a08fb28b3e055"></a><!-- doxytag: member="HashFilter::Attach" ref="a9f6cbec970dcb509b23a08fb28b3e055" args="(BufferedTransformation *newAttachment)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a9f6cbec970dcb509b23a08fb28b3e055">Attach</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *newAttachment)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">add newAttachment to the end of attachment chain <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef73fa1b6220e6484a9b0ce04f4cf53e"></a><!-- doxytag: member="HashFilter::NULL_CHANNEL" ref="aef73fa1b6220e6484a9b0ce04f4cf53e" args="" -->
static const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>NULL_CHANNEL</b> = <a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a></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"><a class="anchor" id="a93c549550b363512fc91e19bb71db3c6"></a><!-- doxytag: member="HashFilter::NewDefaultAttachment" ref="a93c549550b363512fc91e19bb71db3c6" args="() const " -->
virtual <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>NewDefaultAttachment</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3aff43294dee9f9b853c7ff96e694a2f"></a><!-- doxytag: member="HashFilter::Insert" ref="a3aff43294dee9f9b853c7ff96e694a2f" args="(Filter *nextFilter)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>Insert</b> (<a class="el" href="class_filter.html">Filter</a> *nextFilter)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a64df4f582f762b1df2840dbaad89a9e0"></a><!-- doxytag: member="HashFilter::ShouldPropagateMessageEnd" ref="a64df4f582f762b1df2840dbaad89a9e0" args="() const " -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>ShouldPropagateMessageEnd</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d0af81768490661297d21d7ce202e8d"></a><!-- doxytag: member="HashFilter::ShouldPropagateMessageSeriesEnd" ref="a3d0af81768490661297d21d7ce202e8d" args="() const " -->
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>ShouldPropagateMessageSeriesEnd</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3a24170e0e22a725ea7f0f706d9637a1"></a><!-- doxytag: member="HashFilter::PropagateInitialize" ref="a3a24170e0e22a725ea7f0f706d9637a1" args="(const NameValuePairs &amp;parameters, int propagation)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>PropagateInitialize</b> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters, int propagation)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8fed9b80edd46078be24b92b91baf38"></a><!-- doxytag: member="HashFilter::Output" ref="aa8fed9b80edd46078be24b92b91baf38" args="(int outputSite, const byte *inString, size_t length, int messageEnd, bool blocking, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>Output</b> (int outputSite, const byte *inString, size_t length, int messageEnd, bool blocking, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0b9da65954a553090b52de282ba2130"></a><!-- doxytag: member="HashFilter::OutputModifiable" ref="ae0b9da65954a553090b52de282ba2130" args="(int outputSite, byte *inString, size_t length, int messageEnd, bool blocking, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>OutputModifiable</b> (int outputSite, byte *inString, size_t length, int messageEnd, bool blocking, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a39f3b7cf5ef1e3f2348f6901bf5dc563"></a><!-- doxytag: member="HashFilter::OutputMessageEnd" ref="a39f3b7cf5ef1e3f2348f6901bf5dc563" args="(int outputSite, int propagation, bool blocking, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>OutputMessageEnd</b> (int outputSite, int propagation, bool blocking, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaeca75213acea1eefa3f1b716f404994"></a><!-- doxytag: member="HashFilter::OutputFlush" ref="aaeca75213acea1eefa3f1b716f404994" args="(int outputSite, bool hardFlush, int propagation, bool blocking, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>OutputFlush</b> (int outputSite, bool hardFlush, int propagation, bool blocking, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe0a55175966d99209dbf0e2c64ca556"></a><!-- doxytag: member="HashFilter::OutputMessageSeriesEnd" ref="afe0a55175966d99209dbf0e2c64ca556" args="(int outputSite, int propagation, bool blocking, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>OutputMessageSeriesEnd</b> (int outputSite, int propagation, bool blocking, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>)</td></tr>
<tr><td colspan="2"><h2><a name="pro-static-methods"></a>
Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0dc1428070dce0ce5651d775593ccce0"></a><!-- doxytag: member="HashFilter::DecrementPropagation" ref="a0dc1428070dce0ce5651d775593ccce0" args="(int propagation)" -->
static int&#160;</td><td class="memItemRight" valign="bottom"><b>DecrementPropagation</b> (int propagation)</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="anchor" id="a5efea4f6caff4dca805c831a911eb1db"></a><!-- doxytag: member="HashFilter::m_inputPosition" ref="a5efea4f6caff4dca805c831a911eb1db" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>m_inputPosition</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab57fb6112bb2cb7c018941bdcd7b4570"></a><!-- doxytag: member="HashFilter::m_continueAt" ref="ab57fb6112bb2cb7c018941bdcd7b4570" args="" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>m_continueAt</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="a85fea9f0455741e4b340a3e035df9a39"></a><!-- doxytag: member="HashFilter::HelpCreatePutSpace" ref="a85fea9f0455741e4b340a3e035df9a39" args="(BufferedTransformation &amp;target, const std::string &amp;channel, size_t minSize, size_t desiredSize, size_t &amp;bufferSize)" -->
byte *&#160;</td><td class="memItemRight" valign="bottom"><b>HelpCreatePutSpace</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel, size_t minSize, size_t desiredSize, size_t &amp;bufferSize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01f7232d4f27bc0c0a20115aa5090924"></a><!-- doxytag: member="HashFilter::HelpCreatePutSpace" ref="a01f7232d4f27bc0c0a20115aa5090924" args="(BufferedTransformation &amp;target, const std::string &amp;channel, size_t minSize)" -->
byte *&#160;</td><td class="memItemRight" valign="bottom"><b>HelpCreatePutSpace</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel, size_t minSize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6549687729073e4900e0867f59c0f4f"></a><!-- doxytag: member="HashFilter::HelpCreatePutSpace" ref="aa6549687729073e4900e0867f59c0f4f" args="(BufferedTransformation &amp;target, const std::string &amp;channel, size_t minSize, size_t bufferSize)" -->
byte *&#160;</td><td class="memItemRight" valign="bottom"><b>HelpCreatePutSpace</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, const std::string &amp;channel, size_t minSize, size_t bufferSize)</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="ac50ca63d7b1a529a32e8596aa44df9c4"></a><!-- doxytag: member="HashFilter::m_tempSpace" ref="ac50ca63d7b1a529a32e8596aa44df9c4" args="" -->
<a class="el" href="class_sec_block.html">SecByteBlock</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_tempSpace</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_filter.html" title="provides an implementation of BufferedTransformation&#39;s attachment interface">Filter</a> Wrapper for <a class="el" href="class_hash_transformation.html" title="interface for hash functions and data processing part of MACs">HashTransformation</a>. </p>

<p>Definition at line <a class="el" href="filters_8h_source.html#l00291">291</a> of file <a class="el" href="filters_8h_source.html">filters.h</a>.</p>
</div><hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a297dcb6efcd23ad55d90136ccc18c73b"></a><!-- doxytag: member="HashFilter::Put2" ref="a297dcb6efcd23ad55d90136ccc18c73b" args="(const byte *begin, size_t length, int messageEnd, bool blocking)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t HashFilter::Put2 </td>
          <td>(</td>
          <td class="paramtype">const byte *&#160;</td>
          <td class="paramname"><em>inString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>messageEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>input multiple bytes for blocking or non-blocking processing </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">messageEnd</td><td>means how many filters to signal MessageEnd to, including this one </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_buffered_transformation.html#ad396dcb42260f23125a35ec0e5d17d55">BufferedTransformation</a>.</p>

<p>Definition at line <a class="el" href="filters_8cpp_source.html#l00730">730</a> of file <a class="el" href="filters_8cpp_source.html">filters.cpp</a>.</p>

<p>References <a class="el" href="filters_8cpp_source.html#l00026">Filter::AttachedTransformation()</a>, <a class="el" href="class_hash_transformation.html#a590ecda344aa0fb045abf42ec08823b2">HashTransformation::TruncatedFinal()</a>, and <a class="el" href="class_hash_transformation.html#aafabefaf445b65d3ba0d8e1c0294afe5">HashTransformation::Update()</a>.</p>

</div>
</div>
<a class="anchor" id="a5c2f3a90ced66c835969ce1aa235b63e"></a><!-- doxytag: member="HashFilter::CreatePutSpace" ref="a5c2f3a90ced66c835969ce1aa235b63e" args="(size_t &amp;size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte* HashFilter::CreatePutSpace </td>
          <td>(</td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>request space which can be written into by the caller, and then used as input to <a class="el" href="class_buffered_transformation.html#ae70658b0d271f8e114ac6c3cc9774ede" title="input a byte for processing">Put()</a> </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>is requested size (as a hint) for input, and size of the returned space for output</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>The purpose of this method is to help avoid doing extra memory allocations. </dd></dl>

<p>Reimplemented from <a class="el" href="class_buffered_transformation.html#af390325c959c3d6a2c03a447d6cd469d">BufferedTransformation</a>.</p>

<p>Definition at line <a class="el" href="filters_8h_source.html#l00299">299</a> of file <a class="el" href="filters_8h_source.html">filters.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6e7251247b5c2cc3b0c15e861cc88e16"></a><!-- doxytag: member="HashFilter::Attachable" ref="a6e7251247b5c2cc3b0c15e861cc88e16" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Filter::Attachable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns whether this object allows attachment </p>
<p>Some <a class="el" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> objects (e.g. <a class="el" href="class_filter.html" title="provides an implementation of BufferedTransformation&#39;s attachment interface">Filter</a> objects) allow other <a class="el" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> objects to be attached. When this is done, the first object instead of buffering its output, sents that output to the attached object as input. The entire attachment chain is deleted when the anchor object is destructed. </p>

<p>Reimplemented from <a class="el" href="class_buffered_transformation.html#a20112606fc006c56f1561653cabd9542">BufferedTransformation</a>.</p>

<p>Definition at line <a class="el" href="filters_8h_source.html#l00022">22</a> of file <a class="el" href="filters_8h_source.html">filters.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad845deb5113d2bd04d109c05abfd3098"></a><!-- doxytag: member="HashFilter::Flush" ref="ad845deb5113d2bd04d109c05abfd3098" args="(bool hardFlush, int propagation=&#45;1, bool blocking=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Filter::Flush </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>hardFlush</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>propagation</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>flush buffered input and/or output </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hardFlush</td><td>is used to indicate whether all data should be flushed </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>Hard flushes must be used with care. It means try to process and output everything, even if there may not be enough data to complete the action. For example, hard flushing a <a class="el" href="class_hex_decoder.html" title="Decode base 16 data back to bytes.">HexDecoder</a> would cause an error if you do it after inputing an odd number of hex encoded characters. For some types of filters, for example <a class="el" href="class_zlib_decompressor.html" title="ZLIB Decompressor (RFC 1950)">ZlibDecompressor</a>, hard flushes can only be done at "synchronization points". These synchronization points are positions in the data stream that are created by hard flushes on the corresponding reverse filters, in this example <a class="el" href="class_zlib_compressor.html" title="ZLIB Compressor (RFC 1950)">ZlibCompressor</a>. This is useful when zlib compressed data is moved across a network in packets and compression state is preserved across packets, as in the ssh2 protocol. </dd></dl>

<p>Reimplemented from <a class="el" href="class_buffered_transformation.html#a8a62b1b6c8f310363f32b05b20c306eb">BufferedTransformation</a>.</p>

<p>Reimplemented in <a class="el" href="class_secret_sharing.html#a670b6f5ba7ee9e1f029cd199f6722bb6">SecretSharing</a>, and <a class="el" href="class_information_dispersal.html#aa348e2dd4609c563196f89e1cf2ad35c">InformationDispersal</a>.</p>

<p>Definition at line <a class="el" href="filters_8cpp_source.html#l00068">68</a> of file <a class="el" href="filters_8cpp_source.html">filters.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="aa42c62587dda61266ac8195d9c9edb47"></a><!-- doxytag: member="HashFilter::MessageSeriesEnd" ref="aa42c62587dda61266ac8195d9c9edb47" args="(int propagation=&#45;1, bool blocking=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Filter::MessageSeriesEnd </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>propagation</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>mark end of a series of messages </p>
<p>There should be a MessageEnd immediately before MessageSeriesEnd. </p>

<p>Reimplemented from <a class="el" href="class_buffered_transformation.html#aae4c5ae024419e31bfa0c24eb35b24c2">BufferedTransformation</a>.</p>

<p>Definition at line <a class="el" href="filters_8cpp_source.html#l00082">82</a> of file <a class="el" href="filters_8cpp_source.html">filters.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a770bf11f26d4dec66423a7dc2d36843d"></a><!-- doxytag: member="HashFilter::PutModifiable2" ref="a770bf11f26d4dec66423a7dc2d36843d" args="(byte *inString, size_t length, int messageEnd, bool blocking)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual size_t BufferedTransformation::PutModifiable2 </td>
          <td>(</td>
          <td class="paramtype">byte *&#160;</td>
          <td class="paramname"><em>inString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>messageEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>input multiple bytes that may be modified by callee for blocking or non-blocking processing </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">messageEnd</td><td>means how many filters to signal MessageEnd to, including this one </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="class_meter_filter.html#a03c8af7442aa844e83e4c45397373f14">MeterFilter</a>, <a class="el" href="class_filter_with_buffered_input.html#abc7a44af560a17d30a48651683e18e6e">FilterWithBufferedInput</a>, and <a class="el" href="class_output_proxy.html#a0b7247fde67865b260d55763e14fdfa5">OutputProxy</a>.</p>

<p>Definition at line <a class="el" href="cryptlib_8h_source.html#l00817">817</a> of file <a class="el" href="cryptlib_8h_source.html">cryptlib.h</a>.</p>

</div>
</div>
<a class="anchor" id="a127ccd1793fdda6548cd1295f848d0f7"></a><!-- doxytag: member="HashFilter::GetWaitObjects" ref="a127ccd1793fdda6548cd1295f848d0f7" args="(WaitObjectContainer &amp;container, CallStack const &amp;callStack)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void BufferedTransformation::GetWaitObjects </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_wait_object_container.html">WaitObjectContainer</a> &amp;&#160;</td>
          <td class="paramname"><em>container</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_call_stack.html">CallStack</a> const &amp;&#160;</td>
          <td class="paramname"><em>callStack</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>put wait objects into container </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">callStack</td><td>is used for tracing no wait loops, example: something.GetWaitObjects(c, <a class="el" href="class_call_stack.html">CallStack</a>("my func after X", 0));<ul>
<li>or in an outer <a class="el" href="class_buffered_transformation.html#a127ccd1793fdda6548cd1295f848d0f7" title="put wait objects into container">GetWaitObjects()</a> method that itself takes a callStack parameter: innerThing.GetWaitObjects(c, <a class="el" href="class_call_stack.html">CallStack</a>("MyClass::GetWaitObjects at X", &amp;callStack)); </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="class_waitable.html#a97155f28db33d3dacc69dc453a01609a">Waitable</a>.</p>

<p>Reimplemented in <a class="el" href="class_redirector.html#ac0dc5f63f7a57af37f819aa9251a78bf">Redirector</a>.</p>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00321">321</a> of file <a class="el" href="cryptlib_8cpp_source.html">cryptlib.cpp</a>.</p>

<p>References <a class="el" href="cryptlib_8h_source.html#l01011">BufferedTransformation::AttachedTransformation()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00321">BufferedTransformation::GetWaitObjects()</a>.</p>

<p>Referenced by <a class="el" href="cryptlib_8cpp_source.html#l00321">BufferedTransformation::GetWaitObjects()</a>.</p>

</div>
</div>
<a class="anchor" id="ae77dc2fddb3ff142effb00eff3217581"></a><!-- doxytag: member="HashFilter::SetAutoSignalPropagation" ref="ae77dc2fddb3ff142effb00eff3217581" args="(int propagation)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void BufferedTransformation::SetAutoSignalPropagation </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>propagation</em></td><td>)</td>
          <td><code> [inline, virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>set propagation of automatically generated and transferred signals </p>
<p>propagation == 0 means do not automaticly generate signals </p>

<p>Reimplemented in <a class="el" href="class_source_template.html#af7f891477e9fcea66954f848b86de0a2">SourceTemplate&lt; T &gt;</a>, <a class="el" href="class_source_template.html#af7f891477e9fcea66954f848b86de0a2">SourceTemplate&lt; FileStore &gt;</a>, <a class="el" href="class_source_template.html#af7f891477e9fcea66954f848b86de0a2">SourceTemplate&lt; RandomNumberStore &gt;</a>, and <a class="el" href="class_source_template.html#af7f891477e9fcea66954f848b86de0a2">SourceTemplate&lt; StringStore &gt;</a>.</p>

<p>Definition at line <a class="el" href="cryptlib_8h_source.html#l00857">857</a> of file <a class="el" href="cryptlib_8h_source.html">cryptlib.h</a>.</p>

</div>
</div>
<a class="anchor" id="a6ec48acd2d2bda08baa4baa1c9a8a99c"></a><!-- doxytag: member="HashFilter::MaxRetrievable" ref="a6ec48acd2d2bda08baa4baa1c9a8a99c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">lword BufferedTransformation::MaxRetrievable </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns number of bytes that is currently ready for retrieval </p>
<p>All retrieval functions return the actual number of bytes retrieved, which is the lesser of the request number and <a class="el" href="class_buffered_transformation.html#a6ec48acd2d2bda08baa4baa1c9a8a99c" title="returns number of bytes that is currently ready for retrieval">MaxRetrievable()</a>. </p>

<p>Reimplemented in <a class="el" href="class_file_store.html#ac003753c1e1a312cdaa6149e5f53bfb9">FileStore</a>, <a class="el" href="class_random_number_store.html#afc8f3d56433d1ff117a4e07020f8ad3e">RandomNumberStore</a>, <a class="el" href="class_null_store.html#a0d34140b39d88bee6b9610724a7261ee">NullStore</a>, <a class="el" href="class_message_queue.html#a636d1842ab46a50cdb8517aec0df6c5d">MessageQueue</a>, <a class="el" href="class_byte_queue.html#a56f851da4a1e9518c2b7005807aecab8">ByteQueue</a>, and <a class="el" href="class_byte_queue_1_1_walker.html#a3c69dce9261b937f265bae9e8c26479f">ByteQueue::Walker</a>.</p>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00386">386</a> of file <a class="el" href="cryptlib_8cpp_source.html">cryptlib.cpp</a>.</p>

<p>References <a class="el" href="cryptlib_8h_source.html#l01011">BufferedTransformation::AttachedTransformation()</a>, <a class="el" href="cryptlib_8h_source.html#l00907">BufferedTransformation::CopyTo()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00386">BufferedTransformation::MaxRetrievable()</a>.</p>

<p>Referenced by <a class="el" href="filters_8h_source.html#l00696">RandomNumberStore::AnyRetrievable()</a>, <a class="el" href="integer_8cpp_source.html#l03146">Integer::BERDecode()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00386">BufferedTransformation::MaxRetrievable()</a>.</p>

</div>
</div>
<a class="anchor" id="a8dc8562950fd563f7c62d1f1e5ec6b1e"></a><!-- doxytag: member="HashFilter::GetNextMessage" ref="a8dc8562950fd563f7c62d1f1e5ec6b1e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool BufferedTransformation::GetNextMessage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>start retrieving the next message </p>
<p>Returns false if no more messages exist or this message is not completely retrieved. </p>

<p>Reimplemented in <a class="el" href="class_message_queue.html#a540da279953a13541a65c271888e27b7">MessageQueue</a>, and <a class="el" href="class_store.html#a5f578b4a2da5371a8a4b80a038a2d5ea">Store</a>.</p>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00475">475</a> of file <a class="el" href="cryptlib_8cpp_source.html">cryptlib.cpp</a>.</p>

<p>References <a class="el" href="cryptlib_8cpp_source.html#l00467">BufferedTransformation::AnyMessages()</a>, <a class="el" href="cryptlib_8h_source.html#l01011">BufferedTransformation::AttachedTransformation()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00475">BufferedTransformation::GetNextMessage()</a>.</p>

<p>Referenced by <a class="el" href="cryptlib_8cpp_source.html#l00475">BufferedTransformation::GetNextMessage()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00494">BufferedTransformation::TransferMessagesTo2()</a>.</p>

</div>
</div>
<a class="anchor" id="aded81bbe562f61932306a64e6122a6ca"></a><!-- doxytag: member="HashFilter::Wait" ref="aded81bbe562f61932306a64e6122a6ca" args="(unsigned long milliseconds, CallStack const &amp;callStack)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Waitable::Wait </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>milliseconds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_call_stack.html">CallStack</a> const &amp;&#160;</td>
          <td class="paramname"><em>callStack</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>wait on this object </p>
<p>same as creating an empty container, calling <a class="el" href="class_waitable.html#a97155f28db33d3dacc69dc453a01609a" title="put wait objects into container">GetWaitObjects()</a>, and calling <a class="el" href="class_waitable.html#aded81bbe562f61932306a64e6122a6ca" title="wait on this object">Wait()</a> on the container </p>

<p>Definition at line <a class="el" href="wait_8cpp_source.html#l00388">388</a> of file <a class="el" href="wait_8cpp_source.html">wait.cpp</a>.</p>

<p>References <a class="el" href="class_waitable.html#a97155f28db33d3dacc69dc453a01609a">Waitable::GetWaitObjects()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="filters_8h_source.html">filters.h</a></li>
<li><a class="el" href="filters_8cpp_source.html">filters.cpp</a></li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Sun Oct 16 2011 for Crypto++ by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>