Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > ad014b3fb78ee8a65d2d78c2a517808a > files > 1086

icu-doc-52.1-2.4.mga4.noarch.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>ICU 52.1: utrace.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ICU 52.1
   &#160;<span id="projectnumber">52.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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>Data&#160;Structures</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&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_f59c6450ff718ff1b085cfd1c36acbd7.html">unicode</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">utrace.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="utrace_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">*******************************************************************************</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">*   Copyright (C) 2003-2013, International Business Machines</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">*   Corporation and others.  All Rights Reserved.</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">*******************************************************************************</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">*   file name:  utrace.h</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">*   encoding:   US-ASCII</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">*   tab size:   8 (not used)</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">*   indentation:4</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">*   created on: 2003aug06</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">*   created by: Markus W. Scherer</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">*   Definitions for ICU tracing/logging.</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">*</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef __UTRACE_H__</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define __UTRACE_H__</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">unicode/utypes.h</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<a class="code" href="umachine_8h.html#a82c853d86803ab75c89267be54fbac6a" title="This is used to begin a declaration of a library private ICU C API.">U_CDECL_BEGIN</a></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079">   44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079" title="Trace severity levels.">UTraceLevel</a> {</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079ad73020624fba9734da1067a92799a7fd">   46</a></span>&#160;    <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079ad73020624fba9734da1067a92799a7fd" title="Disable all tracing.">UTRACE_OFF</a>=-1,</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079a8e9415b7ad8550fa3d9dcc196f88fe98">   48</a></span>&#160;    <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079a8e9415b7ad8550fa3d9dcc196f88fe98" title="Trace error conditions only.">UTRACE_ERROR</a>=0,</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079a4329e6d348c1ce278aa5a70d9d678416">   50</a></span>&#160;    <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079a4329e6d348c1ce278aa5a70d9d678416" title="Trace errors and warnings.">UTRACE_WARNING</a>=3,</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079acf27fc8d57f1b0bd0a1700abcc48e9ad">   52</a></span>&#160;    <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079acf27fc8d57f1b0bd0a1700abcc48e9ad" title="Trace opens and closes of ICU services.">UTRACE_OPEN_CLOSE</a>=5,</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079ae88684e6ac3d6f889b5d1603395c6bf1">   54</a></span>&#160;    <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079ae88684e6ac3d6f889b5d1603395c6bf1" title="Trace an intermediate number of ICU operations.">UTRACE_INFO</a>=7,</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079af0102c5618b566755d3d0315aeb18ff4">   56</a></span>&#160;    <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079af0102c5618b566755d3d0315aeb18ff4" title="Trace the maximum number of ICU operations.">UTRACE_VERBOSE</a>=9</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="utrace_8h.html#a87213b0396d0aa046bd9116e89152079" title="Trace severity levels.">UTraceLevel</a>;</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="code" href="utrace_8h.html#a6076ad13223437bd15a3266791905308">   63</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="utrace_8h.html#a6076ad13223437bd15a3266791905308" title="These are the ICU functions that will be traced when tracing is enabled.">UTraceFunctionNumber</a> {</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    UTRACE_FUNCTION_START=0,</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    UTRACE_U_INIT=UTRACE_FUNCTION_START,</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    UTRACE_U_CLEANUP,</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    UTRACE_FUNCTION_LIMIT,</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    UTRACE_CONVERSION_START=0x1000,</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    UTRACE_UCNV_OPEN=UTRACE_CONVERSION_START,</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    UTRACE_UCNV_OPEN_PACKAGE,</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    UTRACE_UCNV_OPEN_ALGORITHMIC,</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    UTRACE_UCNV_CLONE,</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    UTRACE_UCNV_CLOSE,</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    UTRACE_UCNV_FLUSH_CACHE,</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    UTRACE_UCNV_LOAD,</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    UTRACE_UCNV_UNLOAD,</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    UTRACE_CONVERSION_LIMIT,</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    UTRACE_COLLATION_START=0x2000,</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    UTRACE_UCOL_OPEN=UTRACE_COLLATION_START,</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    UTRACE_UCOL_CLOSE,</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    UTRACE_UCOL_STRCOLL,</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    UTRACE_UCOL_GET_SORTKEY,</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    UTRACE_UCOL_GETLOCALE,</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    UTRACE_UCOL_NEXTSORTKEYPART,</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    UTRACE_UCOL_STRCOLLITER,</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    UTRACE_UCOL_OPEN_FROM_SHORT_STRING,</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="code" href="utrace_8h.html#a6076ad13223437bd15a3266791905308a18dca4774f919146c684b8071fb976f2">   89</a></span>&#160;    <a class="code" href="utrace_8h.html#a6076ad13223437bd15a3266791905308a18dca4774f919146c684b8071fb976f2">UTRACE_UCOL_STRCOLLUTF8</a>, </div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    UTRACE_COLLATION_LIMIT</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;} <a class="code" href="utrace_8h.html#a6076ad13223437bd15a3266791905308" title="These are the ICU functions that will be traced when tracing is enabled.">UTraceFunctionNumber</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> <span class="keywordtype">void</span> U_EXPORT2</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<a class="code" href="utrace_8h.html#aeb56de5759104ee6379b8144afbe6d01" title="Setter for the trace level.">utrace_setLevel</a>(int32_t traceLevel);</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> int32_t U_EXPORT2</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<a class="code" href="utrace_8h.html#afc368ae253afd3d22821a868765e54e5" title="Getter for the trace level.">utrace_getLevel</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">/* Trace function pointers types  ----------------------------- */</span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="platform_8h.html#a1fae478cb5a46c7e4a0673d267626696" title="Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...">U_CALLCONV</a></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="utrace_8h.html#a57431e5b7de5217371b6b269039d8960">  118</a></span>&#160;<a class="code" href="utrace_8h.html#a57431e5b7de5217371b6b269039d8960" title="Type signature for the trace function to be called when entering a function.">UTraceEntry</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, int32_t fnNumber);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="platform_8h.html#a1fae478cb5a46c7e4a0673d267626696" title="Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...">U_CALLCONV</a></div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="utrace_8h.html#ac819bbfb23657b4a4c465634a0dc0586">  134</a></span>&#160;<a class="code" href="utrace_8h.html#ac819bbfb23657b4a4c465634a0dc0586" title="Type signature for the trace function to be called when exiting from a function.">UTraceExit</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, int32_t fnNumber, </div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list args);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="platform_8h.html#a1fae478cb5a46c7e4a0673d267626696" title="Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...">U_CALLCONV</a></div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="utrace_8h.html#a22a4d10cb4754a7d3178dc55eb61842f">  149</a></span>&#160;<a class="code" href="utrace_8h.html#a22a4d10cb4754a7d3178dc55eb61842f" title="Type signature for the trace function to be called from within an ICU function to display data or mes...">UTraceData</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context, int32_t fnNumber, int32_t level,</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;           <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list args);</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> <span class="keywordtype">void</span> U_EXPORT2</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<a class="code" href="utrace_8h.html#aa87ea156afa4807f0a3db73d85c66551" title="Set ICU Tracing functions.">utrace_setFunctions</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *context,</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;                    <a class="code" href="utrace_8h.html#a57431e5b7de5217371b6b269039d8960" title="Type signature for the trace function to be called when entering a function.">UTraceEntry</a> *e, <a class="code" href="utrace_8h.html#ac819bbfb23657b4a4c465634a0dc0586" title="Type signature for the trace function to be called when exiting from a function.">UTraceExit</a> *x, <a class="code" href="utrace_8h.html#a22a4d10cb4754a7d3178dc55eb61842f" title="Type signature for the trace function to be called from within an ICU function to display data or mes...">UTraceData</a> *d);</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> <span class="keywordtype">void</span> U_EXPORT2</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<a class="code" href="utrace_8h.html#a15c3bee50058d10cdaa1ecc87cd18bae" title="Get the currently installed ICU tracing functions.">utrace_getFunctions</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> **context,</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;                    <a class="code" href="utrace_8h.html#a57431e5b7de5217371b6b269039d8960" title="Type signature for the trace function to be called when entering a function.">UTraceEntry</a> **e, <a class="code" href="utrace_8h.html#ac819bbfb23657b4a4c465634a0dc0586" title="Type signature for the trace function to be called when exiting from a function.">UTraceExit</a> **x, <a class="code" href="utrace_8h.html#a22a4d10cb4754a7d3178dc55eb61842f" title="Type signature for the trace function to be called from within an ICU function to display data or mes...">UTraceData</a> **d);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment"> * ICU trace format string syntax</span></div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment"> * Format Strings are passed to UTraceData functions, and define the</span></div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment"> * number and types of the trace data being passed on each call.</span></div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment"> * The UTraceData function, which is supplied by the application,</span></div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment"> * not by ICU, can either forward the trace data (passed via</span></div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment"> * varargs) and the format string back to ICU for formatting into</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment"> * a displayable string, or it can interpret the format itself,</span></div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment"> * and do as it wishes with the trace data.</span></div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment"> * Goals for the format string</span></div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment"> * - basic data output</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment"> * - easy to use for trace programmer</span></div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment"> * - sufficient provision for data types for trace output readability</span></div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment"> * - well-defined types and binary portable APIs</span></div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment"> * Non-goals</span></div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment"> * - printf compatibility</span></div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment"> * - fancy formatting</span></div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment"> * - argument reordering and other internationalization features</span></div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment"> * ICU trace format strings contain plain text with argument inserts,</span></div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment"> * much like standard printf format strings.</span></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="comment"> * Each insert begins with a &#39;%&#39;, then optionally contains a &#39;v&#39;,</span></div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="comment"> * then exactly one type character.</span></div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="comment"> * Two &#39;%&#39; in a row represent a &#39;%&#39; instead of an insert.</span></div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment"> * The trace format strings need not have \n at the end.</span></div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment"> * Types</span></div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment"> * -----</span></div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment"> * Type characters:</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment"> * - c A char character in the default codepage.</span></div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment"> * - s A NUL-terminated char * string in the default codepage.</span></div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment"> * - S A UChar * string.  Requires two params, (ptr, length).  Length=-1 for nul term.</span></div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment"> * - b A byte (8-bit integer).</span></div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="comment"> * - h A 16-bit integer.  Also a 16 bit Unicode code unit.</span></div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="comment"> * - d A 32-bit integer.  Also a 20 bit Unicode code point value. </span></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment"> * - l A 64-bit integer.</span></div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment"> * - p A data pointer.</span></div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="comment"> * Vectors</span></div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment"> * -------</span></div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="comment"> * If the &#39;v&#39; is not specified, then one item of the specified type</span></div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment"> * is passed in.</span></div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment"> * If the &#39;v&#39; (for &quot;vector&quot;) is specified, then a vector of items of the</span></div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment"> * specified type is passed in, via a pointer to the first item</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="comment"> * and an int32_t value for the length of the vector.</span></div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="comment"> * Length==-1 means zero or NUL termination.  Works for vectors of all types.</span></div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment"> * Note:  %vS is a vector of (UChar *) strings.  The strings must</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment"> *        be nul terminated as there is no way to provide a</span></div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="comment"> *        separate length parameter for each string.  The length</span></div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="comment"> *        parameter (required for all vectors) is the number of</span></div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="comment"> *        strings, not the length of the strings.</span></div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="comment"> * Examples</span></div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment"> * --------</span></div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment"> * These examples show the parameters that will be passed to an application&#39;s</span></div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment"> *   UTraceData() function for various formats.</span></div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment"> * - the precise formatting is up to the application!</span></div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="comment"> * - the examples use type casts for arguments only to _show_ the types of</span></div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment"> *   arguments without needing variable declarations in the examples;</span></div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment"> *   the type casts will not be necessary in actual code</span></div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment"> * UTraceDataFunc(context, fnNumber, level,</span></div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment"> *              &quot;There is a character %c in the string %s.&quot;,   // Format String </span></div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment"> *              (char)c, (const char *)s);                     // varargs parameters</span></div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment"> * -&gt;   There is a character 0x42 &#39;B&#39; in the string &quot;Bravo&quot;.</span></div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment"> * UTraceDataFunc(context, fnNumber, level,</span></div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment"> *              &quot;Vector of bytes %vb vector of chars %vc&quot;,</span></div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment"> *              (const uint8_t *)bytes, (int32_t)bytesLength,</span></div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="comment"> *              (const char *)chars, (int32_t)charsLength);</span></div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment"> * -&gt;  Vector of bytes</span></div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="comment"> *      42 63 64 3f [4]</span></div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="comment"> *     vector of chars</span></div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="comment"> *      &quot;Bcd?&quot;[4]</span></div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment"> * UTraceDataFunc(context, fnNumber, level,</span></div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="comment"> *              &quot;An int32_t %d and a whole bunch of them %vd&quot;,</span></div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="comment"> *              (int32_t)-5, (const int32_t *)ints, (int32_t)intsLength);</span></div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment"> * -&gt;   An int32_t 0xfffffffb and a whole bunch of them</span></div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="comment"> *      fffffffb 00000005 0000010a [3]</span></div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> int32_t U_EXPORT2</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<a class="code" href="utrace_8h.html#abcd5b54f8b10a9a319abf195711c717a" title="Trace output Formatter.">utrace_vformat</a>(<span class="keywordtype">char</span> *outBuf, int32_t capacity,</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;              int32_t indent, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt,  va_list args);</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> int32_t U_EXPORT2</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<a class="code" href="utrace_8h.html#ab1c46bbcc3ae5dda6eeb89ba0b04eab5" title="Trace output Formatter.">utrace_format</a>(<span class="keywordtype">char</span> *outBuf, int32_t capacity,</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;              int32_t indent, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt,  ...);</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment">/* Trace function numbers --------------------------------------------------- */</span></div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;</div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<a class="code" href="umachine_8h.html#af3e3799716eaa41e3f49c7bf18c62b98" title="This is used to declare a function as a stable public ICU C API.">U_STABLE</a> <span class="keyword">const</span> <span class="keywordtype">char</span> * U_EXPORT2</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<a class="code" href="utrace_8h.html#a888fae89e1bae1080cca94e4284bfeea" title="Get the name of a function from its trace function number.">utrace_functionName</a>(int32_t fnNumber);</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<a class="code" href="umachine_8h.html#a1a820e5c6cbe8ac1742b654e6bf9ed7d" title="This is used to end a declaration of a library private ICU C API.">U_CDECL_END</a></div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Oct 4 2013 14:10:22 for ICU 52.1 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.2
</small></address>
</body>
</html>