blob: 88ac111b10caab2513a3eabf0de276a7364e2484 [file]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Apache log4cxx: CharsetEncoder Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="classes.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="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Class&nbsp;List</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 class="nav">
<a class="el" href="namespacelog4cxx.html">log4cxx</a>::<a class="el" href="namespacelog4cxx_1_1helpers.html">helpers</a>::<a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html">CharsetEncoder</a></div>
<h1>CharsetEncoder Class Reference</h1><!-- doxytag: class="log4cxx::helpers::CharsetEncoder" --><!-- doxytag: inherits="log4cxx::helpers::ObjectImpl" -->Inherits <a class="el" href="classlog4cxx_1_1helpers_1_1_object_impl.html">ObjectImpl</a>.
<p>
<a href="classlog4cxx_1_1helpers_1_1_charset_encoder-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
An engine to transform LogStrings into bytes for the specific character set.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#37b138767bbc8049fcf6582344a0eb34">~CharsetEncoder</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destructor. <a href="#37b138767bbc8049fcf6582344a0eb34"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual log4cxx_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#ef808c68e6904f1d7d53db7ae89b4e17">encode</a> (const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;in, LogString::const_iterator &amp;iter, <a class="el" href="classlog4cxx_1_1helpers_1_1_byte_buffer.html">ByteBuffer</a> &amp;out)=0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes as many characters from the input string as possible to the output buffer. <a href="#ef808c68e6904f1d7d53db7ae89b4e17"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#7b0e029102ad38f4b814c6523aedb53d">reset</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets any internal state. <a href="#7b0e029102ad38f4b814c6523aedb53d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#f87a9bce2173fe6396348af1fc218e70">flush</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_byte_buffer.html">ByteBuffer</a> &amp;out)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flushes the encoder. <a href="#f87a9bce2173fe6396348af1fc218e70"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static CharsetEncoderPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#3efc0424e2c01eba5eca1e30b17b6141">getDefaultEncoder</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get encoder for default charset. <a href="#3efc0424e2c01eba5eca1e30b17b6141"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static CharsetEncoderPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#62def5992256e0b61493d7adbbf841c0">getEncoder</a> (const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;charset)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get encoder for specified character set. <a href="#62def5992256e0b61493d7adbbf841c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static CharsetEncoderPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#c0fdc044db02dc7ff34cf7a7a083837d">getUTF8Encoder</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get encoder for UTF-8. <a href="#c0fdc044db02dc7ff34cf7a7a083837d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#4b904793b6470f8905ff79ee1a2b5a4c">encode</a> (CharsetEncoderPtr &amp;enc, const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;src, LogString::const_iterator &amp;iter, <a class="el" href="classlog4cxx_1_1helpers_1_1_byte_buffer.html">ByteBuffer</a> &amp;dst)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encodes a string replacing unmappable characters with escape sequences. <a href="#4b904793b6470f8905ff79ee1a2b5a4c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#e9e960069f22fa622cebd4aede808742">isError</a> (log4cxx_status_t stat)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determines if the return value from encode indicates an unconvertable character. <a href="#e9e960069f22fa622cebd4aede808742"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html#517daf9bbe0ee5b2f8dc541935bbaf4e">CharsetEncoder</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Protected constructor. <a href="#517daf9bbe0ee5b2f8dc541935bbaf4e"></a><br></td></tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="517daf9bbe0ee5b2f8dc541935bbaf4e"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::CharsetEncoder" ref="517daf9bbe0ee5b2f8dc541935bbaf4e" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html">CharsetEncoder</a> </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [protected]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Protected constructor.
<p>
</td>
</tr>
</table>
<a class="anchor" name="37b138767bbc8049fcf6582344a0eb34"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::~CharsetEncoder" ref="37b138767bbc8049fcf6582344a0eb34" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual ~<a class="el" href="classlog4cxx_1_1helpers_1_1_charset_encoder.html">CharsetEncoder</a> </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Destructor.
<p>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="ef808c68e6904f1d7d53db7ae89b4e17"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::encode" ref="ef808c68e6904f1d7d53db7ae89b4e17" args="(const LogString &amp;in, LogString::const_iterator &amp;iter, ByteBuffer &amp;out)=0" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual log4cxx_status_t encode </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>in</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>LogString::const_iterator &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>iter</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap><a class="el" href="classlog4cxx_1_1helpers_1_1_byte_buffer.html">ByteBuffer</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>out</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [pure virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Encodes as many characters from the input string as possible to the output buffer.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>in</em>&nbsp;</td><td>input string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>iter</em>&nbsp;</td><td>position in string to start. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>output buffer. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>APR_SUCCESS unless a character can not be represented in the encoding. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="4b904793b6470f8905ff79ee1a2b5a4c"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::encode" ref="4b904793b6470f8905ff79ee1a2b5a4c" args="(CharsetEncoderPtr &amp;enc, const LogString &amp;src, LogString::const_iterator &amp;iter, ByteBuffer &amp;dst)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">static void encode </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">CharsetEncoderPtr &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>enc</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>src</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>LogString::const_iterator &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>iter</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap><a class="el" href="classlog4cxx_1_1helpers_1_1_byte_buffer.html">ByteBuffer</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>dst</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Encodes a string replacing unmappable characters with escape sequences.
<p>
</td>
</tr>
</table>
<a class="anchor" name="f87a9bce2173fe6396348af1fc218e70"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::flush" ref="f87a9bce2173fe6396348af1fc218e70" args="(ByteBuffer &amp;out)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual void flush </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_byte_buffer.html">ByteBuffer</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>out</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Flushes the encoder.
<p>
</td>
</tr>
</table>
<a class="anchor" name="3efc0424e2c01eba5eca1e30b17b6141"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::getDefaultEncoder" ref="3efc0424e2c01eba5eca1e30b17b6141" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">static CharsetEncoderPtr getDefaultEncoder </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Get encoder for default charset.
<p>
</td>
</tr>
</table>
<a class="anchor" name="62def5992256e0b61493d7adbbf841c0"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::getEncoder" ref="62def5992256e0b61493d7adbbf841c0" args="(const LogString &amp;charset)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">static CharsetEncoderPtr getEncoder </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="namespacelog4cxx.html#d7ec98d27bca7666e23f27dd1fb181c8">LogString</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>charset</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Get encoder for specified character set.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>charset</em>&nbsp;</td><td>the following values should be recognized: "US-ASCII", "ISO-8859-1", "UTF-8", "UTF-16BE", "UTF-16LE". </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>encoder. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classlog4cxx_1_1helpers_1_1_illegal_argument_exception.html">IllegalArgumentException</a></em>&nbsp;</td><td>if encoding is not recognized. </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a class="anchor" name="c0fdc044db02dc7ff34cf7a7a083837d"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::getUTF8Encoder" ref="c0fdc044db02dc7ff34cf7a7a083837d" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">static CharsetEncoderPtr getUTF8Encoder </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Get encoder for UTF-8.
<p>
</td>
</tr>
</table>
<a class="anchor" name="e9e960069f22fa622cebd4aede808742"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::isError" ref="e9e960069f22fa622cebd4aede808742" args="(log4cxx_status_t stat)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">static bool isError </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">log4cxx_status_t&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>stat</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [inline, static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Determines if the return value from encode indicates an unconvertable character.
<p>
</td>
</tr>
</table>
<a class="anchor" name="7b0e029102ad38f4b814c6523aedb53d"></a><!-- doxytag: member="log4cxx::helpers::CharsetEncoder::reset" ref="7b0e029102ad38f4b814c6523aedb53d" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">virtual void reset </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [virtual]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Resets any internal state.
<p>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="charsetencoder_8h.html">charsetencoder.h</a></ul>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
</BODY>
</HTML>