Sophie

Sophie

distrib > Fedora > 13 > i386 > media > os > by-pkgid > 07dfcfe50d66c9a48a3c5e6c1693f12a > files > 348

cryptopp-doc-5.6.1-0.1.svn479.fc13.i686.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++: DERGeneralEncoder 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.6.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>DERGeneralEncoder Class Reference</h1><!-- doxytag: class="DERGeneralEncoder" --><!-- doxytag: inherits="ByteQueue" -->
<p>DER General Encoder.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="asn_8h_source.html">asn.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for DERGeneralEncoder:</div>
<div class="dynsection">
 <div class="center">
  <img src="class_d_e_r_general_encoder.gif" usemap="#DERGeneralEncoder_map" alt=""/>
  <map id="DERGeneralEncoder_map" name="DERGeneralEncoder_map">
<area href="class_byte_queue.html" alt="ByteQueue" shape="rect" coords="118,224,344,248"/>
<area href="class_bufferless.html" alt="Bufferless&lt; BufferedTransformation &gt;" shape="rect" coords="118,168,344,192"/>
<area href="class_buffered_transformation.html" alt="BufferedTransformation" shape="rect" coords="118,112,344,136"/>
<area href="class_algorithm.html" alt="Algorithm" shape="rect" coords="0,56,226,80"/>
<area href="class_waitable.html" alt="Waitable" shape="rect" coords="236,56,462,80"/>
<area href="class_clonable.html" alt="Clonable" shape="rect" coords="0,0,226,24"/>
<area href="class_d_e_r_sequence_encoder.html" alt="DERSequenceEncoder" shape="rect" coords="0,336,226,360"/>
<area href="class_d_e_r_set_encoder.html" alt="DERSetEncoder" shape="rect" coords="236,336,462,360"/>
</map>
 </div>
</div>

<p><a href="class_d_e_r_general_encoder-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e0b7efea6616097595bc06769e60e73"></a><!-- doxytag: member="DERGeneralEncoder::DERGeneralEncoder" ref="a7e0b7efea6616097595bc06769e60e73" args="(BufferedTransformation &amp;outQueue, byte asnTag=SEQUENCE|CONSTRUCTED)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>DERGeneralEncoder</b> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;outQueue, byte asnTag=SEQUENCE|CONSTRUCTED)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a572f7ca80b34eaae1355a39d1adfcaa1"></a><!-- doxytag: member="DERGeneralEncoder::DERGeneralEncoder" ref="a572f7ca80b34eaae1355a39d1adfcaa1" args="(DERGeneralEncoder &amp;outQueue, byte asnTag=SEQUENCE|CONSTRUCTED)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><b>DERGeneralEncoder</b> (<a class="el" href="class_d_e_r_general_encoder.html">DERGeneralEncoder</a> &amp;outQueue, byte asnTag=SEQUENCE|CONSTRUCTED)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb5f1a94ba97027c603b019bd5228510"></a><!-- doxytag: member="DERGeneralEncoder::MessageEnd" ref="acb5f1a94ba97027c603b019bd5228510" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>MessageEnd</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">lword&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#a56f851da4a1e9518c2b7005807aecab8">MaxRetrievable</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns number of bytes that is currently ready for retrieval  <a href="#a56f851da4a1e9518c2b7005807aecab8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f509e02fb4b1f1587d6b5a001ff43f7"></a><!-- doxytag: member="DERGeneralEncoder::AnyRetrievable" ref="a9f509e02fb4b1f1587d6b5a001ff43f7" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#a9f509e02fb4b1f1587d6b5a001ff43f7">AnyRetrievable</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a7e576bc7629bd0947eb098ad23b0d675"></a><!-- doxytag: member="DERGeneralEncoder::IsolatedInitialize" ref="a7e576bc7629bd0947eb098ad23b0d675" args="(const NameValuePairs &amp;parameters)" -->
void&nbsp;</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">byte *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#ae6b49917c3217c5e3b8dd71d40498e5f">CreatePutSpace</a> (size_t &amp;size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#ae6b49917c3217c5e3b8dd71d40498e5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#a684942d5641278a78e7c237a5bd4c69d">Put2</a> (const byte *inString, size_t length, int messageEnd, bool blocking)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">input multiple bytes for blocking or non-blocking processing  <a href="#a684942d5641278a78e7c237a5bd4c69d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19413e3aa72b749e3771d617e8eca632"></a><!-- doxytag: member="DERGeneralEncoder::Get" ref="a19413e3aa72b749e3771d617e8eca632" args="(byte &amp;outByte)" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#a19413e3aa72b749e3771d617e8eca632">Get</a> (byte &amp;outByte)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a933457ad0a5a34fb5e7dc71b2a92c3a7"></a><!-- doxytag: member="DERGeneralEncoder::Get" ref="a933457ad0a5a34fb5e7dc71b2a92c3a7" args="(byte *outString, size_t getMax)" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#a933457ad0a5a34fb5e7dc71b2a92c3a7">Get</a> (byte *outString, size_t getMax)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">try to retrieve multiple bytes <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67e9cc7f56a2be014ee4c9f033bb2ada"></a><!-- doxytag: member="DERGeneralEncoder::Peek" ref="a67e9cc7f56a2be014ee4c9f033bb2ada" args="(byte &amp;outByte) const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#a67e9cc7f56a2be014ee4c9f033bb2ada">Peek</a> (byte &amp;outByte) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="ab18a5abc1d881c014705a7ea0c467d81"></a><!-- doxytag: member="DERGeneralEncoder::Peek" ref="ab18a5abc1d881c014705a7ea0c467d81" args="(byte *outString, size_t peekMax) const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_byte_queue.html#ab18a5abc1d881c014705a7ea0c467d81">Peek</a> (byte *outString, size_t peekMax) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a9863db3b56bf42fb424f426afb7531cd"></a><!-- doxytag: member="DERGeneralEncoder::TransferTo2" ref="a9863db3b56bf42fb424f426afb7531cd" args="(BufferedTransformation &amp;target, lword &amp;transferBytes, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)" -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>TransferTo2</b> (<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="memItemLeft" align="right" valign="top"><a class="anchor" id="a9a389914e2003ebb26516e4a6ad27c2c"></a><!-- doxytag: member="DERGeneralEncoder::CopyRangeTo2" ref="a9a389914e2003ebb26516e4a6ad27c2c" args="(BufferedTransformation &amp;target, lword &amp;begin, lword end=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true) const " -->
size_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>CopyRangeTo2</b> (<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="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e4f3d3759cf2ce54cbd1a193b1cefb6"></a><!-- doxytag: member="DERGeneralEncoder::SetNodeSize" ref="a2e4f3d3759cf2ce54cbd1a193b1cefb6" args="(size_t nodeSize)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>SetNodeSize</b> (size_t nodeSize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe53cbc0c730b13c393e20ce6ccda577"></a><!-- doxytag: member="DERGeneralEncoder::CurrentSize" ref="abe53cbc0c730b13c393e20ce6ccda577" args="() const " -->
lword&nbsp;</td><td class="memItemRight" valign="bottom"><b>CurrentSize</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af44849c6d39bcdad5864dfd81ae5a122"></a><!-- doxytag: member="DERGeneralEncoder::IsEmpty" ref="af44849c6d39bcdad5864dfd81ae5a122" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>IsEmpty</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c305604a71571438aeb4c4e5e567c45"></a><!-- doxytag: member="DERGeneralEncoder::Clear" ref="a2c305604a71571438aeb4c4e5e567c45" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>Clear</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdc94324169d07db16a246259c5ef86b"></a><!-- doxytag: member="DERGeneralEncoder::Unget" ref="abdc94324169d07db16a246259c5ef86b" args="(byte inByte)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>Unget</b> (byte inByte)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d72210af03aea4ca132ed46d91b67e1"></a><!-- doxytag: member="DERGeneralEncoder::Unget" ref="a2d72210af03aea4ca132ed46d91b67e1" args="(const byte *inString, size_t length)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>Unget</b> (const byte *inString, size_t length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18f79d62aa125a795cf61444d1076cde"></a><!-- doxytag: member="DERGeneralEncoder::Spy" ref="a18f79d62aa125a795cf61444d1076cde" args="(size_t &amp;contiguousSize) const " -->
const byte *&nbsp;</td><td class="memItemRight" valign="bottom"><b>Spy</b> (size_t &amp;contiguousSize) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a127af9acc2ad34922953abd30447afa1"></a><!-- doxytag: member="DERGeneralEncoder::LazyPut" ref="a127af9acc2ad34922953abd30447afa1" args="(const byte *inString, size_t size)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>LazyPut</b> (const byte *inString, size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac90c40206fc9e8ae2c4fc984347a360a"></a><!-- doxytag: member="DERGeneralEncoder::LazyPutModifiable" ref="ac90c40206fc9e8ae2c4fc984347a360a" args="(byte *inString, size_t size)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>LazyPutModifiable</b> (byte *inString, size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c7e4d3fa01a23314b7809885b770d23"></a><!-- doxytag: member="DERGeneralEncoder::UndoLazyPut" ref="a9c7e4d3fa01a23314b7809885b770d23" args="(size_t size)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>UndoLazyPut</b> (size_t size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d004338c41f8e04a723c7adab5d0895"></a><!-- doxytag: member="DERGeneralEncoder::FinalizeLazyPut" ref="a6d004338c41f8e04a723c7adab5d0895" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>FinalizeLazyPut</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a81690c024725d924c0dd9d0b7f8a689b"></a><!-- doxytag: member="DERGeneralEncoder::operator==" ref="a81690c024725d924c0dd9d0b7f8a689b" args="(const ByteQueue &amp;rhs) const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_byte_queue.html">ByteQueue</a> &amp;rhs) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1da7e83ecae38d93f21d99f061c91c89"></a><!-- doxytag: member="DERGeneralEncoder::operator[]" ref="a1da7e83ecae38d93f21d99f061c91c89" args="(lword i) const " -->
byte&nbsp;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (lword i) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adcf03598210a516afc86abfb51ce5eb8"></a><!-- doxytag: member="DERGeneralEncoder::swap" ref="adcf03598210a516afc86abfb51ce5eb8" args="(ByteQueue &amp;rhs)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="class_byte_queue.html">ByteQueue</a> &amp;rhs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a872a67af13d0291373a381f41cd6ad2f"></a><!-- doxytag: member="DERGeneralEncoder::IsolatedFlush" ref="a872a67af13d0291373a381f41cd6ad2f" args="(bool hardFlush, bool blocking)" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>IsolatedFlush</b> (bool hardFlush, bool blocking)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a25686ebe4c3ba26e7eeaae1dcd4d4215">Ref</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return a reference to this object  <a href="#a25686ebe4c3ba26e7eeaae1dcd4d4215"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acd21c6715add4884fa043eaf51655039"></a><!-- doxytag: member="DERGeneralEncoder::AlgorithmName" ref="acd21c6715add4884fa043eaf51655039" args="() const " -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_algorithm.html#acd21c6715add4884fa043eaf51655039">AlgorithmName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a24b43349a71e1f98508eeb10b31a0a62"></a><!-- doxytag: member="DERGeneralEncoder::Clone" ref="a24b43349a71e1f98508eeb10b31a0a62" args="() const " -->
virtual <a class="el" href="class_clonable.html">Clonable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_clonable.html#a24b43349a71e1f98508eeb10b31a0a62">Clone</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">this is not implemented by most classes yet <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</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">&nbsp;</td><td class="mdescRight">wait on this object  <a href="#aded81bbe562f61932306a64e6122a6ca"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">NON-BLOCKING TRANSFER OF OUTPUT</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp75bd0a66a005e812930b7236471ed0a1"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a27ac15af3ef43c5ad1e9db5812025fcd"></a><!-- doxytag: member="DERGeneralEncoder::TransferTo2" ref="a27ac15af3ef43c5ad1e9db5812025fcd" args="(BufferedTransformation &amp;target, lword &amp;byteCount, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)=0" -->
virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a27ac15af3ef43c5ad1e9db5812025fcd">TransferTo2</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> &amp;target, lword &amp;byteCount, const std::string &amp;channel=<a class="el" href="cryptlib_8h.html#a9a69ab5a5e0f58279c43f4f51809c84a">DEFAULT_CHANNEL</a>, bool blocking=true)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a7f90ef36f633c97c1ae519b800527d8e"></a><!-- doxytag: member="DERGeneralEncoder::CopyRangeTo2" ref="a7f90ef36f633c97c1ae519b800527d8e" args="(BufferedTransformation &amp;target, lword &amp;begin, lword end=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true) const =0" -->
virtual size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a7f90ef36f633c97c1ae519b800527d8e">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 =0</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a1a70058989762156c376d7ffa5cb303e"></a><!-- doxytag: member="DERGeneralEncoder::TransferMessagesTo2" ref="a1a70058989762156c376d7ffa5cb303e" args="(BufferedTransformation &amp;target, unsigned int &amp;messageCount, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::TransferAllTo2" ref="a3e47718aa65674256e1b069ec8e706b7" args="(BufferedTransformation &amp;target, const std::string &amp;channel=DEFAULT_CHANNEL, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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">INPUT</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpa84cc046d48610b05c21fd3670d0c829"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae70658b0d271f8e114ac6c3cc9774ede"></a><!-- doxytag: member="DERGeneralEncoder::Put" ref="ae70658b0d271f8e114ac6c3cc9774ede" args="(byte inByte, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::Put" ref="a44e935e60d3877975a7c82c6353d65c9" args="(const byte *inString, size_t length, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::PutWord16" ref="a92c60616792d7bce5cd41eaffbd1c3cc" args="(word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::PutWord32" ref="affcc574867d51528afe3c96721ded075" args="(word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::CanModifyInput" ref="ad130a75276220463bd261b3904576385" args="() const " -->
virtual bool&nbsp;</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="DERGeneralEncoder::PutModifiable" ref="ae15df84a7b67c25dfe2ce0ef5a74123c" args="(byte *inString, size_t length, bool blocking=true)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::MessageEnd" ref="a20ae0ef2e4ff338b43849e541e9b940f" args="(int propagation=&#45;1, bool blocking=true)" -->
bool&nbsp;</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="DERGeneralEncoder::PutMessageEnd" ref="aa10b7e626f5af900a4d12f6e5d125891" args="(const byte *inString, size_t length, int propagation=&#45;1, bool blocking=true)" -->
size_t&nbsp;</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&nbsp;</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">&nbsp;</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 colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp1869d56535e8b1449a6da54ff5e11f50"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99cd939cda477af4d8e09bf15c692dc2"></a><!-- doxytag: member="DERGeneralEncoder::GetMaxWaitObjectCount" ref="a99cd939cda477af4d8e09bf15c692dc2" args="() const " -->
unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a99cd939cda477af4d8e09bf15c692dc2">GetMaxWaitObjectCount</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</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">&nbsp;</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 colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpe8aec3b875fcfac29de4bc603e426577"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf09f0cd6dbd022539a9ac5c316d4984"></a><!-- doxytag: member="DERGeneralEncoder::IsolatedMessageSeriesEnd" ref="aaf09f0cd6dbd022539a9ac5c316d4984" args="(bool blocking)" -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>IsolatedMessageSeriesEnd</b> (bool blocking)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0dd5456c06e0e47d901e8055b50df929"></a><!-- doxytag: member="DERGeneralEncoder::Initialize" ref="a0dd5456c06e0e47d901e8055b50df929" args="(const NameValuePairs &amp;parameters=g_nullNameValuePairs, int propagation=&#45;1)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a0dd5456c06e0e47d901e8055b50df929">Initialize</a> (const <a class="el" href="class_name_value_pairs.html">NameValuePairs</a> &amp;parameters=<a class="el" href="cryptlib_8h.html#ad3205973dd1afa14090a683154c1109c">g_nullNameValuePairs</a>, int propagation=-1)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">initialize or reinitialize this object <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a8a62b1b6c8f310363f32b05b20c306eb">Flush</a> (bool hardFlush, int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">flush buffered input and/or output  <a href="#a8a62b1b6c8f310363f32b05b20c306eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#aae4c5ae024419e31bfa0c24eb35b24c2">MessageSeriesEnd</a> (int propagation=-1, bool blocking=true)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">mark end of a series of messages  <a href="#aae4c5ae024419e31bfa0c24eb35b24c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</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">&nbsp;</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="DERGeneralEncoder::GetAutoSignalPropagation" ref="a7367757722f390fae20607afe0f916c5" args="() const " -->
virtual int&nbsp;</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 colspan="2"><div class="groupText"><p><a class="anchor" id="amgrpb55fc719003bf2121d292ca897e2b6bc"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ac50bcb2d279c3c6aef6858dab3eeb7"></a><!-- doxytag: member="DERGeneralEncoder::GetWord16" ref="a1ac50bcb2d279c3c6aef6858dab3eeb7" args="(word16 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::GetWord32" ref="a69c064d931db3a8631c1138827d67e2f" args="(word32 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER)" -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::PeekWord16" ref="a452057f0d887ba0f2b6ec5373e290e91" args="(word16 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER) const " -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::PeekWord32" ref="aee19b1f5f0df32de2f33bf6bded3bae6" args="(word32 &amp;value, ByteOrder order=BIG_ENDIAN_ORDER) const " -->
size_t&nbsp;</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">&nbsp;</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="DERGeneralEncoder::TransferTo" ref="ac31ac5d2da7897fb097086496b85e6f5" args="(BufferedTransformation &amp;target, lword transferMax=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
lword&nbsp;</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">&nbsp;</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="DERGeneralEncoder::Skip" ref="a0c25529ded99db20ad35ccef3f7234e6" args="(lword skipMax=LWORD_MAX)" -->
virtual lword&nbsp;</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">&nbsp;</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="DERGeneralEncoder::CopyTo" ref="a5253b8693ac9932f3862b71c9960903c" args="(BufferedTransformation &amp;target, lword copyMax=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
lword&nbsp;</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">&nbsp;</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="DERGeneralEncoder::CopyRangeTo" ref="a1483b2879a70d26d0de568dd6081bb7b" args="(BufferedTransformation &amp;target, lword position, lword copyMax=LWORD_MAX, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
lword&nbsp;</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">&nbsp;</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 colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp9d958c73fb392bf33c4da23b0d204fb1"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae793ba515457e3918f4c7afef905416a"></a><!-- doxytag: member="DERGeneralEncoder::TotalBytesRetrievable" ref="ae793ba515457e3918f4c7afef905416a" args="() const " -->
virtual lword&nbsp;</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="DERGeneralEncoder::NumberOfMessages" ref="a318ef5010ac587977656dae56dfc5085" args="() const " -->
virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a318ef5010ac587977656dae56dfc5085">NumberOfMessages</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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="DERGeneralEncoder::AnyMessages" ref="a76b40ce3c88455c69f06234d609a0e4c" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a76b40ce3c88455c69f06234d609a0e4c">AnyMessages</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</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&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a8dc8562950fd563f7c62d1f1e5ec6b1e">GetNextMessage</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="DERGeneralEncoder::SkipMessages" ref="ace560f14489f478bb4cd17c41905774e" args="(unsigned int count=UINT_MAX)" -->
virtual unsigned int&nbsp;</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">&nbsp;</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="DERGeneralEncoder::TransferMessagesTo" ref="a0446d21781676a6f9c64d0b7a727d314" args="(BufferedTransformation &amp;target, unsigned int count=UINT_MAX, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
unsigned int&nbsp;</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="DERGeneralEncoder::CopyMessagesTo" ref="ae09d3275076fa88f22670afd806205bb" args="(BufferedTransformation &amp;target, unsigned int count=UINT_MAX, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
unsigned int&nbsp;</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="DERGeneralEncoder::SkipAll" ref="aaae2c7846a506939b40c2c8b708af1d4" args="()" -->
virtual void&nbsp;</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="DERGeneralEncoder::TransferAllTo" ref="a84c3629cdd9be90695c9701c1b8e24a2" args="(BufferedTransformation &amp;target, const std::string &amp;channel=DEFAULT_CHANNEL)" -->
void&nbsp;</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="DERGeneralEncoder::CopyAllTo" ref="af055ed9f3d096c9ab627973240608b3c" args="(BufferedTransformation &amp;target, const std::string &amp;channel=DEFAULT_CHANNEL) const " -->
void&nbsp;</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="DERGeneralEncoder::GetNextMessageSeries" ref="aeb36a158b63cfd54acbada1a3699598c" args="()" -->
virtual bool&nbsp;</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="DERGeneralEncoder::NumberOfMessagesInThisSeries" ref="a50e09cbbc84c5c1e098c79ca88c42158" args="() const " -->
virtual unsigned int&nbsp;</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="DERGeneralEncoder::NumberOfMessageSeries" ref="a37e7c54c2be0451f4a8d395c228b1061" args="() const " -->
virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><b>NumberOfMessageSeries</b> () const </td></tr>
<tr><td colspan="2"><div class="groupHeader">CHANNELS</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp1fdf75ac0fba97b7f66ad06fdd4493fd"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a97a60b54fafdb3df59e1457ef629fc5f"></a><!-- doxytag: member="DERGeneralEncoder::ChannelPut" ref="a97a60b54fafdb3df59e1457ef629fc5f" args="(const std::string &amp;channel, byte inByte, bool blocking=true)" -->
size_t&nbsp;</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="DERGeneralEncoder::ChannelPut" ref="a5b7fcb31b4cb09d38242354fcbc4b45c" args="(const std::string &amp;channel, const byte *inString, size_t length, bool blocking=true)" -->
size_t&nbsp;</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="DERGeneralEncoder::ChannelPutModifiable" ref="a3dc27692b14108ed057beb4db67fed2f" args="(const std::string &amp;channel, byte *inString, size_t length, bool blocking=true)" -->
size_t&nbsp;</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="DERGeneralEncoder::ChannelPutWord16" ref="aa1bca66c16e0e52793059b41353964bd" args="(const std::string &amp;channel, word16 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&nbsp;</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="DERGeneralEncoder::ChannelPutWord32" ref="acb06216012d6c40609db092952afcf3f" args="(const std::string &amp;channel, word32 value, ByteOrder order=BIG_ENDIAN_ORDER, bool blocking=true)" -->
size_t&nbsp;</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="DERGeneralEncoder::ChannelMessageEnd" ref="ae0b37b299c5835083e58b205f9cc25cc" args="(const std::string &amp;channel, int propagation=&#45;1, bool blocking=true)" -->
bool&nbsp;</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="DERGeneralEncoder::ChannelPutMessageEnd" ref="ad3e9efe4c59093c330d287140fcfbdd9" args="(const std::string &amp;channel, const byte *inString, size_t length, int propagation=&#45;1, bool blocking=true)" -->
size_t&nbsp;</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="DERGeneralEncoder::ChannelCreatePutSpace" ref="a877494d8de597af935cb770034f7f170" args="(const std::string &amp;channel, size_t &amp;size)" -->
virtual byte *&nbsp;</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="DERGeneralEncoder::ChannelPut2" ref="a825c38044d268f6d561cb7f849e04b13" args="(const std::string &amp;channel, const byte *begin, size_t length, int messageEnd, bool blocking)" -->
virtual size_t&nbsp;</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="DERGeneralEncoder::ChannelPutModifiable2" ref="aeab62459524d9c93531ec365ba930be3" args="(const std::string &amp;channel, byte *begin, size_t length, int messageEnd, bool blocking)" -->
virtual size_t&nbsp;</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="DERGeneralEncoder::ChannelFlush" ref="a6b504b2694ecb5d709a9858c5b93a0f7" args="(const std::string &amp;channel, bool hardFlush, int propagation=&#45;1, bool blocking=true)" -->
virtual bool&nbsp;</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="DERGeneralEncoder::ChannelMessageSeriesEnd" ref="ae0fc63d42d94958f71fc573b17469921" args="(const std::string &amp;channel, int propagation=&#45;1, bool blocking=true)" -->
virtual bool&nbsp;</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="DERGeneralEncoder::SetRetrievalChannel" ref="aeeb151c318a472c5f1cf41617f3414a5" args="(const std::string &amp;channel)" -->
virtual void&nbsp;</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 colspan="2"><div class="groupText"><p><a class="anchor" id="amgrp357bd74edad7a5ca38986b70368e07b5"></a> </p>
<br/><br/></div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a20112606fc006c56f1561653cabd9542">Attachable</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns whether this object allows attachment  <a href="#a20112606fc006c56f1561653cabd9542"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba6bbc169e26ed77a6bb5d50f91abda0"></a><!-- doxytag: member="DERGeneralEncoder::AttachedTransformation" ref="aba6bbc169e26ed77a6bb5d50f91abda0" args="()" -->
virtual <a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#aba6bbc169e26ed77a6bb5d50f91abda0">AttachedTransformation</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="aa335cadbf21ff23876ad9aa67ef215f1"></a><!-- doxytag: member="DERGeneralEncoder::AttachedTransformation" ref="aa335cadbf21ff23876ad9aa67ef215f1" args="() const " -->
virtual const <br class="typebreak"/>
<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>AttachedTransformation</b> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a424737ad6b93e393dc43c3edb1223c3d"></a><!-- doxytag: member="DERGeneralEncoder::Detach" ref="a424737ad6b93e393dc43c3edb1223c3d" args="(BufferedTransformation *newAttachment=0)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_buffered_transformation.html#a424737ad6b93e393dc43c3edb1223c3d">Detach</a> (<a class="el" href="class_buffered_transformation.html">BufferedTransformation</a> *newAttachment=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="a9f6cbec970dcb509b23a08fb28b3e055"></a><!-- doxytag: member="DERGeneralEncoder::Attach" ref="a9f6cbec970dcb509b23a08fb28b3e055" args="(BufferedTransformation *newAttachment)" -->
virtual void&nbsp;</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">&nbsp;</td><td class="mdescRight">add newAttachment to the end of attachment chain <br/></td></tr>
<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef73fa1b6220e6484a9b0ce04f4cf53e"></a><!-- doxytag: member="DERGeneralEncoder::NULL_CHANNEL" ref="aef73fa1b6220e6484a9b0ce04f4cf53e" args="" -->
static const std::string &amp;&nbsp;</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>Static Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0dc1428070dce0ce5651d775593ccce0"></a><!-- doxytag: member="DERGeneralEncoder::DecrementPropagation" ref="a0dc1428070dce0ce5651d775593ccce0" args="(int propagation)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>DecrementPropagation</b> (int propagation)</td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a561951adc2bae72717df4b975c66f02f"></a><!-- doxytag: member="DERGeneralEncoder::Walker" ref="a561951adc2bae72717df4b975c66f02f" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>Walker</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>DER General Encoder. </p>

<p>Definition at line <a class="el" href="asn_8h_source.html#l00159">159</a> of file <a class="el" href="asn_8h_source.html">asn.h</a>.</p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a56f851da4a1e9518c2b7005807aecab8"></a><!-- doxytag: member="DERGeneralEncoder::MaxRetrievable" ref="a56f851da4a1e9518c2b7005807aecab8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">lword ByteQueue::MaxRetrievable </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, 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_byte_queue.html#a56f851da4a1e9518c2b7005807aecab8" title="returns number of bytes that is currently ready for retrieval">MaxRetrievable()</a>. </p>

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

<p>Definition at line <a class="el" href="queue_8h_source.html#l00023">23</a> of file <a class="el" href="queue_8h_source.html">queue.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae6b49917c3217c5e3b8dd71d40498e5f"></a><!-- doxytag: member="DERGeneralEncoder::CreatePutSpace" ref="ae6b49917c3217c5e3b8dd71d40498e5f" args="(size_t &amp;size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte * ByteQueue::CreatePutSpace </td>
          <td>(</td>
          <td class="paramtype">size_t &amp;&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual, inherited]</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</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="queue_8cpp_source.html#l00410">410</a> of file <a class="el" href="queue_8cpp_source.html">queue.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a684942d5641278a78e7c237a5bd4c69d"></a><!-- doxytag: member="DERGeneralEncoder::Put2" ref="a684942d5641278a78e7c237a5bd4c69d" args="(const byte *inString, size_t length, int messageEnd, bool blocking)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t ByteQueue::Put2 </td>
          <td>(</td>
          <td class="paramtype">const byte *&nbsp;</td>
          <td class="paramname"> <em>inString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>messageEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>blocking</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual, inherited]</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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>messageEnd</em>&nbsp;</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="queue_8cpp_source.html#l00216">216</a> of file <a class="el" href="queue_8cpp_source.html">queue.cpp</a>.</p>

</div>
</div>
<a class="anchor" id="a25686ebe4c3ba26e7eeaae1dcd4d4215"></a><!-- doxytag: member="DERGeneralEncoder::Ref" ref="a25686ebe4c3ba26e7eeaae1dcd4d4215" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_buffered_transformation.html">BufferedTransformation</a>&amp; BufferedTransformation::Ref </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>return a reference to this object </p>
<p>This function is useful for passing a temporary <a class="el" href="class_buffered_transformation.html" title="interface for buffered transformations">BufferedTransformation</a> object to a function that takes a non-const reference. </p>

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

</div>
</div>
<a class="anchor" id="a770bf11f26d4dec66423a7dc2d36843d"></a><!-- doxytag: member="DERGeneralEncoder::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 *&nbsp;</td>
          <td class="paramname"> <em>inString</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>messageEnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>blocking</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>messageEnd</em>&nbsp;</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#l00830">830</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="DERGeneralEncoder::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;&nbsp;</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;&nbsp;</td>
          <td class="paramname"> <em>callStack</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>callStack</em>&nbsp;</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));</p>
<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#l00314">314</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#l01024">BufferedTransformation::AttachedTransformation()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00314">BufferedTransformation::GetWaitObjects()</a>.</p>

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

</div>
</div>
<a class="anchor" id="a8a62b1b6c8f310363f32b05b20c306eb"></a><!-- doxytag: member="DERGeneralEncoder::Flush" ref="a8a62b1b6c8f310363f32b05b20c306eb" args="(bool hardFlush, int propagation=&#45;1, bool blocking=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool BufferedTransformation::Flush </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>hardFlush</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>propagation</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>blocking</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hardFlush</em>&nbsp;</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 in <a class="el" href="class_filter.html#ad845deb5113d2bd04d109c05abfd3098">Filter</a>, <a class="el" href="class_redirector.html#a201243b803642ebfd392579953e75e92">Redirector</a>, <a class="el" href="class_output_proxy.html#aa6c68d78790266c60fa8b27176fbf969">OutputProxy</a>, <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="cryptlib_8cpp_source.html#l00327">327</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#l01024">BufferedTransformation::AttachedTransformation()</a>.</p>

</div>
</div>
<a class="anchor" id="aae4c5ae024419e31bfa0c24eb35b24c2"></a><!-- doxytag: member="DERGeneralEncoder::MessageSeriesEnd" ref="aae4c5ae024419e31bfa0c24eb35b24c2" args="(int propagation=&#45;1, bool blocking=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool BufferedTransformation::MessageSeriesEnd </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>propagation</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>blocking</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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 in <a class="el" href="class_filter.html#aa42c62587dda61266ac8195d9c9edb47">Filter</a>, <a class="el" href="class_redirector.html#a34c42c1730d031f486e5d285c6dc3314">Redirector</a>, and <a class="el" href="class_output_proxy.html#aecf5c216c060f2e6adfeb4019e6ad797">OutputProxy</a>.</p>

<p>Definition at line <a class="el" href="cryptlib_8cpp_source.html#l00333">333</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#l01024">BufferedTransformation::AttachedTransformation()</a>.</p>

</div>
</div>
<a class="anchor" id="ae77dc2fddb3ff142effb00eff3217581"></a><!-- doxytag: member="DERGeneralEncoder::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&nbsp;</td>
          <td class="paramname"> <em>propagation</em></td>
          <td>&nbsp;)&nbsp;</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#l00870">870</a> of file <a class="el" href="cryptlib_8h_source.html">cryptlib.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8dc8562950fd563f7c62d1f1e5ec6b1e"></a><!-- doxytag: member="DERGeneralEncoder::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>&nbsp;)&nbsp;</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#l00468">468</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#l00460">BufferedTransformation::AnyMessages()</a>, <a class="el" href="cryptlib_8h_source.html#l01024">BufferedTransformation::AttachedTransformation()</a>, and <a class="el" href="cryptlib_8cpp_source.html#l00468">BufferedTransformation::GetNextMessage()</a>.</p>

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

</div>
</div>
<a class="anchor" id="a20112606fc006c56f1561653cabd9542"></a><!-- doxytag: member="DERGeneralEncoder::Attachable" ref="a20112606fc006c56f1561653cabd9542" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool BufferedTransformation::Attachable </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</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 in <a class="el" href="class_filter.html#a6e7251247b5c2cc3b0c15e861cc88e16">Filter</a>.</p>

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

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

</div>
</div>
<a class="anchor" id="aded81bbe562f61932306a64e6122a6ca"></a><!-- doxytag: member="DERGeneralEncoder::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&nbsp;</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;&nbsp;</td>
          <td class="paramname"> <em>callStack</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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="asn_8h_source.html">asn.h</a></li>
<li><a class="el" href="asn_8cpp_source.html">asn.cpp</a></li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 9 Dec 2009 for Crypto++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>