<!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>Atlas-C++: Utility.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Atlas-C++</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> </ul> </div> <div class="header"> <div class="headertitle"> <div class="title">Utility.h</div> </div> </div> <div class="contents"> <a href="_utility_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// This file may be redistributed and modified under the terms of the</span> <a name="l00002"></a>00002 <span class="comment">// GNU Lesser General Public License (See COPYING for details).</span> <a name="l00003"></a>00003 <span class="comment">// Copyright (C) 2000 Stefanus Du Toit, Michael Day</span> <a name="l00004"></a>00004 <a name="l00005"></a>00005 <span class="comment">// $Id$</span> <a name="l00006"></a>00006 <a name="l00007"></a>00007 <span class="preprocessor">#ifndef ATLAS_CODECS_UTILITY_H</span> <a name="l00008"></a>00008 <span class="preprocessor"></span><span class="preprocessor">#define ATLAS_CODECS_UTILITY_H</span> <a name="l00009"></a>00009 <span class="preprocessor"></span> <a name="l00020"></a>00020 <span class="preprocessor">#include <cstdio></span> <a name="l00021"></a>00021 <span class="preprocessor">#include <string></span> <a name="l00022"></a>00022 <a name="l00023"></a>00023 <span class="keyword">namespace </span>Atlas { <span class="keyword">namespace </span>Codecs { <a name="l00024"></a>00024 <a name="l00026"></a>00026 <span class="keyword">inline</span> <span class="keyword">const</span> std::string charToHex(<span class="keywordtype">char</span> c) <a name="l00027"></a>00027 { <a name="l00028"></a>00028 <span class="keywordtype">char</span> hex[3]; <a name="l00029"></a>00029 <span class="preprocessor">#ifdef __MINGW32__</span> <a name="l00030"></a>00030 <span class="preprocessor"></span> <span class="comment">// Perhaps this should #ifdef _WIN32 instead? </span> <a name="l00031"></a>00031 _snprintf(hex, 3, <span class="stringliteral">"%x"</span>, c); <a name="l00032"></a>00032 <span class="preprocessor">#else</span> <a name="l00033"></a>00033 <span class="preprocessor"></span> snprintf(hex, 3, <span class="stringliteral">"%x"</span>, c); <a name="l00034"></a>00034 <span class="preprocessor">#endif</span> <a name="l00035"></a>00035 <span class="preprocessor"></span> <span class="keywordflow">return</span> hex; <a name="l00036"></a>00036 } <a name="l00037"></a>00037 <a name="l00039"></a>00039 <span class="keyword">inline</span> <span class="keywordtype">char</span> hexToChar(<span class="keyword">const</span> std::string& hex) <a name="l00040"></a>00040 { <a name="l00041"></a>00041 <span class="keywordtype">int</span> c; <a name="l00042"></a>00042 <span class="keywordflow">if</span> (sscanf(hex.c_str(), <span class="stringliteral">"%x"</span>, &c) == 1) { <a name="l00043"></a>00043 <span class="keywordflow">return</span> (<span class="keywordtype">char</span>) c; <a name="l00044"></a>00044 } <span class="keywordflow">else</span> { <a name="l00045"></a>00045 <span class="keywordflow">return</span> (<span class="keywordtype">char</span>) 0; <a name="l00046"></a>00046 } <a name="l00047"></a>00047 } <a name="l00048"></a>00048 <a name="l00049"></a>00049 <span class="keyword">const</span> std::string hexEncodeWithPrefix(<span class="keyword">const</span> std::string& prefix, <a name="l00050"></a>00050 <span class="keyword">const</span> std::string& special, <a name="l00051"></a>00051 <span class="keyword">const</span> std::string& message); <a name="l00052"></a>00052 <a name="l00053"></a>00053 <span class="keyword">const</span> std::string hexDecodeWithPrefix(<span class="keyword">const</span> std::string& prefix, <a name="l00054"></a>00054 <span class="keyword">const</span> std::string& message); <a name="l00055"></a>00055 <a name="l00056"></a>00056 } } <span class="comment">// namespace Atlas::Codecs</span> <a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="preprocessor">#endif // ATLAS_CODECS_UTILITY_H</span> </pre></div></div> </div> <HR> <P>Copyright 2000-2004 the respective authors.</P> <P>This document can be licensed under the terms of the GNU Free Documentation License or the GNU General Public License and may be freely distributed under the terms given by one of these licenses.</P>