Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > f00c83953c7eb23ee3c18f4f35d8eb6b > files > 135

sfml2-doc-2.0-0.1mdv2010.2.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>SFML - Simple and Fast Multimedia Library</title>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="tabs.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div id="logo">
            <img src="./logo.jpg" width="770" height="200" title="SFML home" alt="SFML logo" />
        </div>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.htm"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.htm"><span>Modules</span></a></li>
      <li><a href="annotated.htm"><span>Classes</span></a></li>
      <li class="current"><a href="files.htm"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.htm"><span>File&nbsp;List</span></a></li>
    </ul>
  </div>
<h1>Utf.hpp</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00002"></a>00002 <span class="comment">//</span>
<a name="l00003"></a>00003 <span class="comment">// SFML - Simple and Fast Multimedia Library</span>
<a name="l00004"></a>00004 <span class="comment">// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)</span>
<a name="l00005"></a>00005 <span class="comment">//</span>
<a name="l00006"></a>00006 <span class="comment">// This software is provided &#39;as-is&#39;, without any express or implied warranty.</span>
<a name="l00007"></a>00007 <span class="comment">// In no event will the authors be held liable for any damages arising from the use of this software.</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00010"></a>00010 <span class="comment">// including commercial applications, and to alter it and redistribute it freely,</span>
<a name="l00011"></a>00011 <span class="comment">// subject to the following restrictions:</span>
<a name="l00012"></a>00012 <span class="comment">//</span>
<a name="l00013"></a>00013 <span class="comment">// 1. The origin of this software must not be misrepresented;</span>
<a name="l00014"></a>00014 <span class="comment">//    you must not claim that you wrote the original software.</span>
<a name="l00015"></a>00015 <span class="comment">//    If you use this software in a product, an acknowledgment</span>
<a name="l00016"></a>00016 <span class="comment">//    in the product documentation would be appreciated but is not required.</span>
<a name="l00017"></a>00017 <span class="comment">//</span>
<a name="l00018"></a>00018 <span class="comment">// 2. Altered source versions must be plainly marked as such,</span>
<a name="l00019"></a>00019 <span class="comment">//    and must not be misrepresented as being the original software.</span>
<a name="l00020"></a>00020 <span class="comment">//</span>
<a name="l00021"></a>00021 <span class="comment">// 3. This notice may not be removed or altered from any source distribution.</span>
<a name="l00022"></a>00022 <span class="comment">//</span>
<a name="l00024"></a>00024 <span class="comment"></span>
<a name="l00025"></a>00025 <span class="preprocessor">#ifndef SFML_UTF_HPP</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define SFML_UTF_HPP</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span>
<a name="l00029"></a>00029 <span class="comment">// Headers</span>
<a name="l00031"></a>00031 <span class="comment"></span><span class="preprocessor">#include &lt;SFML/Config.hpp&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;algorithm&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;locale&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;cstdlib&gt;</span>
<a name="l00036"></a>00036 
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="keyword">namespace </span>sf
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040 <span class="keyword">template</span> &lt;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> N&gt;
<a name="l00041"></a>00041 <span class="keyword">class </span>Utf;
<a name="l00042"></a>00042 
<a name="l00047"></a>00047 <span class="keyword">template</span> &lt;&gt;
<a name="l00048"></a><a class="code" href="classsf_1_1Utf_3_018_01_4.htm">00048</a> <span class="keyword">class </span><a class="code" href="classsf_1_1Utf.htm" title="Utility class providing generic functions for UTF conversions.">Utf</a>&lt;8&gt;
<a name="l00049"></a>00049 {
<a name="l00050"></a>00050 <span class="keyword">public</span> :
<a name="l00051"></a>00051 
<a name="l00066"></a>00066     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00067"></a>00067     <span class="keyword">static</span> In Decode(In begin, In end, Uint32&amp; output, Uint32 replacement = 0);
<a name="l00068"></a>00068 
<a name="l00082"></a>00082     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;
<a name="l00083"></a>00083     <span class="keyword">static</span> Out Encode(Uint32 input, Out output, Uint8 replacement = 0);
<a name="l00084"></a>00084 
<a name="l00097"></a>00097     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00098"></a>00098     <span class="keyword">static</span> In Next(In begin, In end);
<a name="l00099"></a>00099 
<a name="l00113"></a>00113     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00114"></a>00114     <span class="keyword">static</span> std::size_t Count(In begin, In end);
<a name="l00115"></a>00115 
<a name="l00130"></a>00130     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00131"></a>00131     <span class="keyword">static</span> Out FromAnsi(In begin, In end, Out output, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00132"></a>00132 
<a name="l00143"></a>00143     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00144"></a>00144     <span class="keyword">static</span> Out FromWide(In begin, In end, Out output);
<a name="l00145"></a>00145 
<a name="l00157"></a>00157     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00158"></a>00158     <span class="keyword">static</span> Out FromLatin1(In begin, In end, Out output);
<a name="l00159"></a>00159 
<a name="l00175"></a>00175     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00176"></a>00176     <span class="keyword">static</span> Out ToAnsi(In begin, In end, Out output, <span class="keywordtype">char</span> replacement = 0, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00177"></a>00177 
<a name="l00189"></a>00189     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00190"></a>00190     <span class="keyword">static</span> Out ToWide(In begin, In end, Out output, <span class="keywordtype">wchar_t</span> replacement = 0);
<a name="l00191"></a>00191 
<a name="l00203"></a>00203     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00204"></a>00204     <span class="keyword">static</span> Out ToLatin1(In begin, In end, Out output, <span class="keywordtype">char</span> replacement = 0);
<a name="l00205"></a>00205 
<a name="l00221"></a>00221     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00222"></a>00222     <span class="keyword">static</span> Out ToUtf8(In begin, In end, Out output);
<a name="l00223"></a>00223 
<a name="l00234"></a>00234     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00235"></a>00235     <span class="keyword">static</span> Out ToUtf16(In begin, In end, Out output);
<a name="l00236"></a>00236 
<a name="l00247"></a>00247     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00248"></a>00248     <span class="keyword">static</span> Out ToUtf32(In begin, In end, Out output);
<a name="l00249"></a>00249 };
<a name="l00250"></a>00250 
<a name="l00255"></a>00255 <span class="keyword">template</span> &lt;&gt;
<a name="l00256"></a><a class="code" href="classsf_1_1Utf_3_0116_01_4.htm">00256</a> <span class="keyword">class </span><a class="code" href="classsf_1_1Utf.htm" title="Utility class providing generic functions for UTF conversions.">Utf</a>&lt;16&gt;
<a name="l00257"></a>00257 {
<a name="l00258"></a>00258 <span class="keyword">public</span> :
<a name="l00259"></a>00259 
<a name="l00274"></a>00274     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00275"></a>00275     <span class="keyword">static</span> In Decode(In begin, In end, Uint32&amp; output, Uint32 replacement = 0);
<a name="l00276"></a>00276 
<a name="l00290"></a>00290     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;
<a name="l00291"></a>00291     <span class="keyword">static</span> Out Encode(Uint32 input, Out output, Uint16 replacement = 0);
<a name="l00292"></a>00292 
<a name="l00305"></a>00305     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00306"></a>00306     <span class="keyword">static</span> In Next(In begin, In end);
<a name="l00307"></a>00307 
<a name="l00321"></a>00321     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00322"></a>00322     <span class="keyword">static</span> std::size_t Count(In begin, In end);
<a name="l00323"></a>00323 
<a name="l00338"></a>00338     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00339"></a>00339     <span class="keyword">static</span> Out FromAnsi(In begin, In end, Out output, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00340"></a>00340 
<a name="l00351"></a>00351     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00352"></a>00352     <span class="keyword">static</span> Out FromWide(In begin, In end, Out output);
<a name="l00353"></a>00353 
<a name="l00365"></a>00365     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00366"></a>00366     <span class="keyword">static</span> Out FromLatin1(In begin, In end, Out output);
<a name="l00367"></a>00367 
<a name="l00383"></a>00383     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00384"></a>00384     <span class="keyword">static</span> Out ToAnsi(In begin, In end, Out output, <span class="keywordtype">char</span> replacement = 0, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00385"></a>00385 
<a name="l00397"></a>00397     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00398"></a>00398     <span class="keyword">static</span> Out ToWide(In begin, In end, Out output, <span class="keywordtype">wchar_t</span> replacement = 0);
<a name="l00399"></a>00399 
<a name="l00411"></a>00411     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00412"></a>00412     <span class="keyword">static</span> Out ToLatin1(In begin, In end, Out output, <span class="keywordtype">char</span> replacement = 0);
<a name="l00413"></a>00413 
<a name="l00424"></a>00424     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00425"></a>00425     <span class="keyword">static</span> Out ToUtf8(In begin, In end, Out output);
<a name="l00426"></a>00426 
<a name="l00442"></a>00442     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00443"></a>00443     <span class="keyword">static</span> Out ToUtf16(In begin, In end, Out output);
<a name="l00444"></a>00444 
<a name="l00455"></a>00455     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00456"></a>00456     <span class="keyword">static</span> Out ToUtf32(In begin, In end, Out output);
<a name="l00457"></a>00457 };
<a name="l00458"></a>00458 
<a name="l00463"></a>00463 <span class="keyword">template</span> &lt;&gt;
<a name="l00464"></a><a class="code" href="classsf_1_1Utf_3_0132_01_4.htm">00464</a> <span class="keyword">class </span><a class="code" href="classsf_1_1Utf.htm" title="Utility class providing generic functions for UTF conversions.">Utf</a>&lt;32&gt;
<a name="l00465"></a>00465 {
<a name="l00466"></a>00466 <span class="keyword">public</span> :
<a name="l00467"></a>00467 
<a name="l00483"></a>00483     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00484"></a>00484     <span class="keyword">static</span> In Decode(In begin, In end, Uint32&amp; output, Uint32 replacement = 0);
<a name="l00485"></a>00485 
<a name="l00500"></a>00500     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;
<a name="l00501"></a>00501     <span class="keyword">static</span> Out Encode(Uint32 input, Out output, Uint32 replacement = 0);
<a name="l00502"></a>00502 
<a name="l00515"></a>00515     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00516"></a>00516     <span class="keyword">static</span> In Next(In begin, In end);
<a name="l00517"></a>00517 
<a name="l00530"></a>00530     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00531"></a>00531     <span class="keyword">static</span> std::size_t Count(In begin, In end);
<a name="l00532"></a>00532 
<a name="l00547"></a>00547     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00548"></a>00548     <span class="keyword">static</span> Out FromAnsi(In begin, In end, Out output, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00549"></a>00549 
<a name="l00560"></a>00560     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00561"></a>00561     <span class="keyword">static</span> Out FromWide(In begin, In end, Out output);
<a name="l00562"></a>00562 
<a name="l00574"></a>00574     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00575"></a>00575     <span class="keyword">static</span> Out FromLatin1(In begin, In end, Out output);
<a name="l00576"></a>00576 
<a name="l00592"></a>00592     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00593"></a>00593     <span class="keyword">static</span> Out ToAnsi(In begin, In end, Out output, <span class="keywordtype">char</span> replacement = 0, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00594"></a>00594 
<a name="l00606"></a>00606     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00607"></a>00607     <span class="keyword">static</span> Out ToWide(In begin, In end, Out output, <span class="keywordtype">wchar_t</span> replacement = 0);
<a name="l00608"></a>00608 
<a name="l00620"></a>00620     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00621"></a>00621     <span class="keyword">static</span> Out ToLatin1(In begin, In end, Out output, <span class="keywordtype">char</span> replacement = 0);
<a name="l00622"></a>00622 
<a name="l00633"></a>00633     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00634"></a>00634     <span class="keyword">static</span> Out ToUtf8(In begin, In end, Out output);
<a name="l00635"></a>00635 
<a name="l00646"></a>00646     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00647"></a>00647     <span class="keyword">static</span> Out ToUtf16(In begin, In end, Out output);
<a name="l00648"></a>00648 
<a name="l00664"></a>00664     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In, <span class="keyword">typename</span> Out&gt;
<a name="l00665"></a>00665     <span class="keyword">static</span> Out ToUtf32(In begin, In end, Out output);
<a name="l00666"></a>00666 
<a name="l00680"></a>00680     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00681"></a>00681     <span class="keyword">static</span> Uint32 DecodeAnsi(In input, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00682"></a>00682 
<a name="l00695"></a>00695     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> In&gt;
<a name="l00696"></a>00696     <span class="keyword">static</span> Uint32 DecodeWide(In input);
<a name="l00697"></a>00697 
<a name="l00713"></a>00713     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;
<a name="l00714"></a>00714     <span class="keyword">static</span> Out EncodeAnsi(Uint32 codepoint, Out output, <span class="keywordtype">char</span> replacement = 0, <span class="keyword">const</span> std::locale&amp; locale = std::locale());
<a name="l00715"></a>00715 
<a name="l00730"></a>00730     <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;
<a name="l00731"></a>00731     <span class="keyword">static</span> Out EncodeWide(Uint32 codepoint, Out output, <span class="keywordtype">wchar_t</span> replacement = 0);
<a name="l00732"></a>00732 };
<a name="l00733"></a>00733 
<a name="l00734"></a>00734 <span class="preprocessor">#include &lt;SFML/System/Utf.inl&gt;</span>
<a name="l00735"></a>00735 
<a name="l00736"></a>00736 <span class="comment">// Make typedefs to get rid of the template syntax</span>
<a name="l00737"></a>00737 <span class="keyword">typedef</span> <a class="code" href="classsf_1_1Utf_3_018_01_4.htm" title="Specialization of the Utf template for UTF-8.">Utf&lt;8&gt;</a>  <a class="code" href="classsf_1_1Utf_3_018_01_4.htm" title="Specialization of the Utf template for UTF-8.">Utf8</a>;
<a name="l00738"></a>00738 <span class="keyword">typedef</span> <a class="code" href="classsf_1_1Utf_3_0116_01_4.htm" title="Specialization of the Utf template for UTF-16.">Utf&lt;16&gt;</a> <a class="code" href="classsf_1_1Utf_3_0116_01_4.htm" title="Specialization of the Utf template for UTF-16.">Utf16</a>;
<a name="l00739"></a>00739 <span class="keyword">typedef</span> <a class="code" href="classsf_1_1Utf_3_0132_01_4.htm" title="Specialization of the Utf template for UTF-32.">Utf&lt;32&gt;</a> <a class="code" href="classsf_1_1Utf_3_0132_01_4.htm" title="Specialization of the Utf template for UTF-32.">Utf32</a>;
<a name="l00740"></a>00740 
<a name="l00741"></a>00741 } <span class="comment">// namespace sf</span>
<a name="l00742"></a>00742 
<a name="l00743"></a>00743 
<a name="l00744"></a>00744 <span class="preprocessor">#endif // SFML_UTF_HPP</span>
<a name="l00745"></a>00745 <span class="preprocessor"></span>
<a name="l00746"></a>00746 
</pre></div></div>

        <p id="footer">
            &nbsp;::&nbsp; Copyright &copy; 2007-2008 Laurent Gomila, all rights reserved &nbsp;::&nbsp;
            Documentation generated by <a href="http://www.doxygen.org/" title="doxygen website">doxygen 1.5.2</a> &nbsp;::&nbsp;
        </p>

    </body>
</html>