<HTML> <HEAD> <TITLE>mimetic 0.9.6: mimetic: codec_chain< C, N > Struct Template Reference</TITLE> <LINK HREF="../doxygen.css" REL="stylesheet" TYPE="text/css"> </HEAD> <BODY BGCOLOR="#FFFFFF"> <table bgcolor=lightblue> <tr> <td> <a class="qindex" href="index.html">Main Page</a> <!-- <a class="qindex" href="namespaces.html">Namespace List</a> --> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="examples.html">Examples</a> <!-- <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> --> </td> </tr> </table> <!-- Generated by Doxygen 1.6.1 --> <div class="navpath"><a class="el" href="namespacemimetic.html">mimetic</a>::<a class="el" href="structmimetic_1_1codec__chain.html">codec_chain</a> </div> <div class="contents"> <h1>codec_chain< C, N > Struct Template Reference</h1><!-- doxytag: class="mimetic::codec_chain" --> <p>Defines a chain of codecs. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="codec__chain_8h_source.html">codec_chain.h</a>></code></p> <p><a href="structmimetic_1_1codec__chain-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <b>count</b> = 1 + next_node_type::count }</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1bf0d7a5f8f4f7cb46c1ab70772e6c0e"></a><!-- doxytag: member="mimetic::codec_chain::self_type" ref="a1bf0d7a5f8f4f7cb46c1ab70772e6c0e" args="" --> typedef <a class="el" href="structmimetic_1_1codec__chain.html">codec_chain</a>< C, N > </td><td class="memItemRight" valign="bottom"><b>self_type</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8510c20a1f53c8fca013df949274afe"></a><!-- doxytag: member="mimetic::codec_chain::content_type" ref="aa8510c20a1f53c8fca013df949274afe" args="" --> typedef C </td><td class="memItemRight" valign="bottom"><b>content_type</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cfe84b6f312ec6d29e58a78d8f999de"></a><!-- doxytag: member="mimetic::codec_chain::next_node_type" ref="a4cfe84b6f312ec6d29e58a78d8f999de" args="" --> typedef N </td><td class="memItemRight" valign="bottom"><b>next_node_type</b></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba59ce42b6d1881633facea820cebbb4"></a><!-- doxytag: member="mimetic::codec_chain::codec_chain" ref="aba59ce42b6d1881633facea820cebbb4" args="(const content_type &c)" --> </td><td class="memItemRight" valign="bottom"><b>codec_chain</b> (const content_type &c)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a060343b3ad91eeb9a66d03774bab65d9"></a><!-- doxytag: member="mimetic::codec_chain::codec_chain" ref="a060343b3ad91eeb9a66d03774bab65d9" args="(const content_type &c, const next_node_type &node)" --> </td><td class="memItemRight" valign="bottom"><b>codec_chain</b> (const content_type &c, const next_node_type &node)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4684fc4b05e2be0d6b18de8ec563656e"></a><!-- doxytag: member="mimetic::codec_chain::codec_chain" ref="a4684fc4b05e2be0d6b18de8ec563656e" args="(const codec_chain &node)" --> </td><td class="memItemRight" valign="bottom"><b>codec_chain</b> (const <a class="el" href="structmimetic_1_1codec__chain.html">codec_chain</a> &node)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4a946195eec009216d6dd12ef3925bb"></a><!-- doxytag: member="mimetic::codec_chain::codec_chain" ref="aa4a946195eec009216d6dd12ef3925bb" args="(const null_node &)" --> </td><td class="memItemRight" valign="bottom"><b>codec_chain</b> (const null_node &)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a862958aa3c2b9bf36903f1f0f2e81c54"></a><!-- doxytag: member="mimetic::codec_chain::name" ref="a862958aa3c2b9bf36903f1f0f2e81c54" args="() const " --> const char * </td><td class="memItemRight" valign="bottom"><b>name</b> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa421c66b908fa4572f7e20d0c94302bf"></a><!-- doxytag: member="mimetic::codec_chain::process" ref="aa421c66b908fa4572f7e20d0c94302bf" args="(char c)" --> void </td><td class="memItemRight" valign="bottom"><b>process</b> (char c)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adac116554b543b7c4228c018a85882f5"></a><!-- doxytag: member="mimetic::codec_chain::flush" ref="adac116554b543b7c4228c018a85882f5" args="()" --> void </td><td class="memItemRight" valign="bottom"><b>flush</b> ()</td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a9480ad870d8abce8f97970dc150ddbc6"></a><!-- doxytag: member="mimetic::codec_chain::get_c" ref="a9480ad870d8abce8f97970dc150ddbc6" args="(int idx) const " --> template<typename Cn > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">const Cn & </td><td class="memTemplItemRight" valign="bottom"><b>get_c</b> (int idx) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a448146bb7aafeb4e091032d6d316dab0"></a><!-- doxytag: member="mimetic::codec_chain::get_c" ref="a448146bb7aafeb4e091032d6d316dab0" args="(int idx) const " --> const content_type & </td><td class="memItemRight" valign="bottom"><b>get_c</b> (int idx) const </td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="a936f75138fca7b0f4e502d9f3da412c6"></a><!-- doxytag: member="mimetic::codec_chain::operator[]" ref="a936f75138fca7b0f4e502d9f3da412c6" args="(int idx) const " --> template<typename C1 > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">const C1 & </td><td class="memTemplItemRight" valign="bottom"><b>operator[]</b> (int idx) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab35594e336bf429679607b7afcd4c129"></a><!-- doxytag: member="mimetic::codec_chain::operator*" ref="ab35594e336bf429679607b7afcd4c129" args="()" --> <a class="el" href="structmimetic_1_1codec__chain.html">self_type</a> & </td><td class="memItemRight" valign="bottom"><b>operator*</b> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d05bfec966d0fe2251f260a391e7b95"></a><!-- doxytag: member="mimetic::codec_chain::operator=" ref="a7d05bfec966d0fe2251f260a391e7b95" args="(char c)" --> <a class="el" href="structmimetic_1_1codec__chain.html">self_type</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (char c)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68c6d6abdde9fef27d6a4f2904212559"></a><!-- doxytag: member="mimetic::codec_chain::operator++" ref="a68c6d6abdde9fef27d6a4f2904212559" args="()" --> <a class="el" href="structmimetic_1_1codec__chain.html">self_type</a> & </td><td class="memItemRight" valign="bottom"><b>operator++</b> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4419c6af964a7de542db8474f8ef1091"></a><!-- doxytag: member="mimetic::codec_chain::operator++" ref="a4419c6af964a7de542db8474f8ef1091" args="(int)" --> <a class="el" href="structmimetic_1_1codec__chain.html">self_type</a> & </td><td class="memItemRight" valign="bottom"><b>operator++</b> (int)</td></tr> <tr><td class="memTemplParams" colspan="2"><a class="anchor" id="aca1cec1b96e5fbda63875e2d4e56c0c4"></a><!-- doxytag: member="mimetic::codec_chain::operator|" ref="aca1cec1b96e5fbda63875e2d4e56c0c4" args="(const TailC &l)" --> template<typename TailC > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">push_back_node< <a class="el" href="structmimetic_1_1codec__chain.html">self_type</a>, <br class="typebreak"/> <a class="el" href="structmimetic_1_1codec__chain.html">codec_chain</a>< TailC ><br class="typebreak"/> >::node_type </td><td class="memTemplItemRight" valign="bottom"><b>operator|</b> (const TailC &l)</td></tr> <tr><td colspan="2"><h2>Public Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a19f1ba228b90bf01c174be86c905a038"></a><!-- doxytag: member="mimetic::codec_chain::m_c" ref="a19f1ba228b90bf01c174be86c905a038" args="" --> content_type </td><td class="memItemRight" valign="bottom"><b>m_c</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae559b5e28781172b4fa92d34a466e805"></a><!-- doxytag: member="mimetic::codec_chain::m_next" ref="ae559b5e28781172b4fa92d34a466e805" args="" --> next_node_type </td><td class="memItemRight" valign="bottom"><b>m_next</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb41893ba19e889e56c559f25fc1a68a"></a><!-- doxytag: member="mimetic::codec_chain::m_name" ref="adb41893ba19e889e56c559f25fc1a68a" args="" --> std::string </td><td class="memItemRight" valign="bottom"><b>m_name</b></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <h3>template<typename C, typename N><br/> struct mimetic::codec_chain< C, N ></h3> <p>Defines a chain of codecs. </p> <p>Chain of codecs. <b>Don't use it directly use | operator instead</b>.</p> <div class="fragment"><pre class="fragment"> <span class="comment">// converts test string to upper case, replaces LF chars with</span> <span class="comment">// CRLF and encodes it using quoted-printable codec</span> ToUpperCase tuc; Lf2CrLf l2c; QP::Encoder qp; <span class="keywordtype">char</span> buf[MAXLEN]; <span class="keywordtype">string</span> test(<span class="stringliteral">"....some text here...."</span>); code(test.begin(), test.end(), tuc | l2c | qp, buf); </pre></div><dl class="warning"><dt><b>Warning:</b></dt><dd>Chainable codecs must derive from chainable_codec<> </dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespacemimetic.html#af63c5b54aaf9a18a0d6a1fa50356156c" title="Encodes (beg, end] using cc codec.">encode</a> <a class="el" href="namespacemimetic.html#a879a396d03bab00cafb9e703d596a809" title="decodes (beg, end] using cc codec and write any">decode</a> </dd></dl> <hr/>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="codec__chain_8h_source.html">codec_chain.h</a></li> </ul> </div> </BODY> </HTML>