/usr/include/unicode
NameSizeModeActions
alphaindex.h271180644editdlrm
appendable.h86940644editdlrm
basictz.h94910644editdlrm
brkiter.h284640644editdlrm
bytestream.h110370644editdlrm
bytestrie.h212660644editdlrm
bytestriebuilder.h72480644editdlrm
calendar.h1082780644editdlrm
caniter.h76110644editdlrm
casemap.h259330644editdlrm
char16ptr.h73930644editdlrm
chariter.h246320644editdlrm
choicfmt.h244820644editdlrm
coleitr.h140940644editdlrm
coll.h575810644editdlrm
compactdecimalformat.h70470644editdlrm
curramt.h38510644editdlrm
currpinf.h74730644editdlrm
currunit.h40940644editdlrm
datefmt.h416410644editdlrm
dbbi.h12230644editdlrm
dcfmtsym.h208970644editdlrm
decimfmt.h892780644editdlrm
docmain.h71420644editdlrm
dtfmtsym.h386090644editdlrm
dtintrv.h39300644editdlrm
dtitvfmt.h476340644editdlrm
dtitvinf.h190640644editdlrm
dtptngen.h264190644editdlrm
dtrule.h88880644editdlrm
edits.h212370644editdlrm
enumset.h21300644editdlrm
errorcode.h49560644editdlrm
fieldpos.h88990644editdlrm
filteredbrk.h55010644editdlrm
fmtable.h250070644editdlrm
format.h128020644editdlrm
formattedvalue.h99870644editdlrm
fpositer.h31090644editdlrm
gender.h34080644editdlrm
gregocal.h324720644editdlrm
icudataver.h10510644editdlrm
icuplug.h121660644editdlrm
idna.h130000644editdlrm
listformatter.h94930644editdlrm
localebuilder.h115020644editdlrm
localematcher.h251470644editdlrm
localpointer.h198290644editdlrm
locdspnm.h72920644editdlrm
locid.h488210644editdlrm
measfmt.h116030644editdlrm
measunit.h975630644editdlrm
measure.h44230644editdlrm
messagepattern.h345210644editdlrm
msgfmt.h451680644editdlrm
normalizer2.h348510644editdlrm
normlzr.h316820644editdlrm
nounit.h27540644editdlrm
numberformatter.h862760644editdlrm
numberrangeformatter.h286170644editdlrm
numfmt.h509500644editdlrm
numsys.h75000644editdlrm
parseerr.h31550644editdlrm
parsepos.h56920644editdlrm
platform.h287510644editdlrm
plurfmt.h258000644editdlrm
plurrule.h187800644editdlrm
ptypes.h35770644editdlrm
putil.h64870644editdlrm
rbbi.h272180644editdlrm
rbnf.h498990644editdlrm
rbtz.h159790644editdlrm
regex.h863670644editdlrm
region.h94040644editdlrm
reldatefmt.h228010644editdlrm
rep.h95990644editdlrm
resbund.h185030644editdlrm
schriter.h64750644editdlrm
scientificnumberformatter.h65530644editdlrm
search.h227570644editdlrm
selfmt.h146430644editdlrm
simpleformatter.h128880644editdlrm
simpletz.h465270644editdlrm
smpdtfmt.h727130644editdlrm
sortkey.h114440644editdlrm
std_string.h10760644editdlrm
strenum.h101580644editdlrm
stringoptions.h59260644editdlrm
stringpiece.h105970644editdlrm
stringtriebuilder.h156980644editdlrm
stsearch.h218100644editdlrm
symtable.h43740644editdlrm
tblcoll.h374890644editdlrm
timezone.h420050644editdlrm
tmunit.h34610644editdlrm
tmutamt.h50150644editdlrm
tmutfmt.h80420644editdlrm
translit.h674000644editdlrm
tzfmt.h439160644editdlrm
tznames.h172520644editdlrm
tzrule.h362150644editdlrm
tztrans.h62710644editdlrm
ubidi.h917110644editdlrm
ubiditransform.h129500644editdlrm
ubrk.h245470644editdlrm
ucal.h582650644editdlrm
ucasemap.h155460644editdlrm
ucat.h54840644editdlrm
uchar.h1446300644editdlrm
ucharstrie.h231200644editdlrm
ucharstriebuilder.h73780644editdlrm
uchriter.h135210644editdlrm
uclean.h114740644editdlrm
ucnv.h850850644editdlrm
ucnvsel.h62830644editdlrm
ucnv_cb.h67480644editdlrm
ucnv_err.h214920644editdlrm
ucol.h629390644editdlrm
ucoleitr.h96840644editdlrm
uconfig.h123560644editdlrm
ucpmap.h56630644editdlrm
ucptrie.h230020644editdlrm
ucsdet.h150180644editdlrm
ucurr.h165070644editdlrm
udat.h628510644editdlrm
udata.h159300644editdlrm
udateintervalformat.h109950644editdlrm
udatpg.h274470644editdlrm
udisplaycontext.h60290644editdlrm
uenum.h79700644editdlrm
ufieldpositer.h44610644editdlrm
uformattable.h111980644editdlrm
uformattedvalue.h124130644editdlrm
ugender.h20520644editdlrm
uidna.h341690644editdlrm
uiter.h233190644editdlrm
uldnames.h107020644editdlrm
ulistformatter.h110860644editdlrm
uloc.h544320644editdlrm
ulocdata.h115330644editdlrm
umachine.h148840644editdlrm
umisc.h13650644editdlrm
umsg.h248120644editdlrm
umutablecptrie.h84350644editdlrm
unifilt.h40550644editdlrm
unifunct.h41410644editdlrm
unimatch.h62440644editdlrm
unirepl.h34640644editdlrm
uniset.h664590644editdlrm
unistr.h1745230644editdlrm
unorm.h210150644editdlrm
unorm2.h252540644editdlrm
unum.h547430644editdlrm
unumberformatter.h258240644editdlrm
unumsys.h73870644editdlrm
uobject.h109360644editdlrm
upluralrules.h80130644editdlrm
uregex.h737840644editdlrm
uregion.h100730644editdlrm
ureldatefmt.h174090644editdlrm
urename.h1344490644editdlrm
urep.h55070644editdlrm
ures.h374150644editdlrm
uscript.h278670644editdlrm
usearch.h390390644editdlrm
uset.h409580644editdlrm
usetiter.h97810644editdlrm
ushape.h184320644editdlrm
uspoof.h674800644editdlrm
usprep.h83310644editdlrm
ustdio.h394690644editdlrm
ustream.h19340644editdlrm
ustring.h742110644editdlrm
ustringtrie.h32240644editdlrm
utext.h595270644editdlrm
utf.h80460644editdlrm
utf8.h317000644editdlrm
utf16.h238780644editdlrm
utf32.h7630644editdlrm
utf_old.h469290644editdlrm
utmscale.h141130644editdlrm
utrace.h177060644editdlrm
utrans.h261300644editdlrm
utypes.h314810644editdlrm
uvernum.h68320644editdlrm
uversion.h61450644editdlrm
vtzone.h207840644editdlrm
Edit: /usr/include/unicode/utrace.h (17706B)
// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * * Copyright (C) 2003-2013, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * file name: utrace.h * encoding: UTF-8 * tab size: 8 (not used) * indentation:4 * * created on: 2003aug06 * created by: Markus W. Scherer * * Definitions for ICU tracing/logging. * */ #ifndef __UTRACE_H__ #define __UTRACE_H__ #include #include "unicode/utypes.h" /** * \file * \brief C API: Definitions for ICU tracing/logging. * * This provides API for debugging the internals of ICU without the use of * a traditional debugger. * * By default, tracing is disabled in ICU. If you need to debug ICU with * tracing, please compile ICU with the --enable-tracing configure option. */ U_CDECL_BEGIN /** * Trace severity levels. Higher levels increase the verbosity of the trace output. * @see utrace_setLevel * @stable ICU 2.8 */ typedef enum UTraceLevel { /** Disable all tracing @stable ICU 2.8*/ UTRACE_OFF=-1, /** Trace error conditions only @stable ICU 2.8*/ UTRACE_ERROR=0, /** Trace errors and warnings @stable ICU 2.8*/ UTRACE_WARNING=3, /** Trace opens and closes of ICU services @stable ICU 2.8*/ UTRACE_OPEN_CLOSE=5, /** Trace an intermediate number of ICU operations @stable ICU 2.8*/ UTRACE_INFO=7, /** Trace the maximum number of ICU operations @stable ICU 2.8*/ UTRACE_VERBOSE=9 } UTraceLevel; /** * These are the ICU functions that will be traced when tracing is enabled. * @stable ICU 2.8 */ typedef enum UTraceFunctionNumber { UTRACE_FUNCTION_START=0, UTRACE_U_INIT=UTRACE_FUNCTION_START, UTRACE_U_CLEANUP, #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal collation trace location. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UTRACE_FUNCTION_LIMIT, #endif // U_HIDE_DEPRECATED_API UTRACE_CONVERSION_START=0x1000, UTRACE_UCNV_OPEN=UTRACE_CONVERSION_START, UTRACE_UCNV_OPEN_PACKAGE, UTRACE_UCNV_OPEN_ALGORITHMIC, UTRACE_UCNV_CLONE, UTRACE_UCNV_CLOSE, UTRACE_UCNV_FLUSH_CACHE, UTRACE_UCNV_LOAD, UTRACE_UCNV_UNLOAD, #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal collation trace location. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UTRACE_CONVERSION_LIMIT, #endif // U_HIDE_DEPRECATED_API UTRACE_COLLATION_START=0x2000, UTRACE_UCOL_OPEN=UTRACE_COLLATION_START, UTRACE_UCOL_CLOSE, UTRACE_UCOL_STRCOLL, UTRACE_UCOL_GET_SORTKEY, UTRACE_UCOL_GETLOCALE, UTRACE_UCOL_NEXTSORTKEYPART, UTRACE_UCOL_STRCOLLITER, UTRACE_UCOL_OPEN_FROM_SHORT_STRING, UTRACE_UCOL_STRCOLLUTF8, /**< @stable ICU 50 */ #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal collation trace location. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ UTRACE_COLLATION_LIMIT, #endif // U_HIDE_DEPRECATED_API #ifndef U_HIDE_DRAFT_API /** * The lowest resource/data location. * @draft ICU 65 */ UTRACE_UDATA_START=0x3000, /** * Indicates that a value was read from a resource bundle. Provides three * C-style strings to UTraceData: type, file name, and resource path. The * possible types are: * * - "string" (a string value was accessed) * - "binary" (a binary value was accessed) * - "intvector" (a integer vector value was accessed) * - "int" (a signed integer value was accessed) * - "uint" (a unsigned integer value was accessed) * - "get" (a path was loaded, but the value was not accessed) * - "getalias" (a path was loaded, and an alias was resolved) * * @draft ICU 65 */ UTRACE_UDATA_RESOURCE=UTRACE_UDATA_START, /** * Indicates that a resource bundle was opened. * * Provides one C-style string to UTraceData: file name. * @draft ICU 65 */ UTRACE_UDATA_BUNDLE, /** * Indicates that a data file was opened, but not *.res files. * * Provides one C-style string to UTraceData: file name. * * @draft ICU 65 */ UTRACE_UDATA_DATA_FILE, /** * Indicates that a *.res file was opened. * * This differs from UTRACE_UDATA_BUNDLE because a res file is typically * opened only once per application runtime, but the bundle corresponding * to that res file may be opened many times. * * Provides one C-style string to UTraceData: file name. * * @draft ICU 65 */ UTRACE_UDATA_RES_FILE, #endif // U_HIDE_DRAFT_API #ifndef U_HIDE_INTERNAL_API /** * One more than the highest normal resource/data trace location. * @internal The numeric value may change over time, see ICU ticket #12420. */ UTRACE_RES_DATA_LIMIT, #endif // U_HIDE_INTERNAL_API #ifndef U_HIDE_DRAFT_API /** * The lowest break iterator location. * @draft ICU 67 */ UTRACE_UBRK_START=0x4000, /** * Indicates that a character instance of break iterator was created. * * @draft ICU 67 */ UTRACE_UBRK_CREATE_CHARACTER = UTRACE_UBRK_START, /** * Indicates that a word instance of break iterator was created. * * @draft ICU 67 */ UTRACE_UBRK_CREATE_WORD, /** * Indicates that a line instance of break iterator was created. * * Provides one C-style string to UTraceData: the lb value ("", * "loose", "strict", or "normal"). * * @draft ICU 67 */ UTRACE_UBRK_CREATE_LINE, /** * Indicates that a sentence instance of break iterator was created. * * @draft ICU 67 */ UTRACE_UBRK_CREATE_SENTENCE, /** * Indicates that a title instance of break iterator was created. * * @draft ICU 67 */ UTRACE_UBRK_CREATE_TITLE, /** * Indicates that an internal dictionary break engine was created. * * Provides one C-style string to UTraceData: the script code of what * the break engine cover ("Hani", "Khmr", "Laoo", "Mymr", or "Thai"). * * @draft ICU 67 */ UTRACE_UBRK_CREATE_BREAK_ENGINE, #endif // U_HIDE_DRAFT_API #ifndef U_HIDE_INTERNAL_API /** * One more than the highest normal break iterator trace location. * @internal The numeric value may change over time, see ICU ticket #12420. */ UTRACE_UBRK_LIMIT, #endif // U_HIDE_INTERNAL_API } UTraceFunctionNumber; /** * Setter for the trace level. * @param traceLevel A UTraceLevel value. * @stable ICU 2.8 */ U_STABLE void U_EXPORT2 utrace_setLevel(int32_t traceLevel); /** * Getter for the trace level. * @return The UTraceLevel value being used by ICU. * @stable ICU 2.8 */ U_STABLE int32_t U_EXPORT2 utrace_getLevel(void); /* Trace function pointers types ----------------------------- */ /** * Type signature for the trace function to be called when entering a function. * @param context value supplied at the time the trace functions are set. * @param fnNumber Enum value indicating the ICU function being entered. * @stable ICU 2.8 */ typedef void U_CALLCONV UTraceEntry(const void *context, int32_t fnNumber); /** * Type signature for the trace function to be called when exiting from a function. * @param context value supplied at the time the trace functions are set. * @param fnNumber Enum value indicating the ICU function being exited. * @param fmt A formatting string that describes the number and types * of arguments included with the variable args. The fmt * string has the same form as the utrace_vformat format * string. * @param args A variable arguments list. Contents are described by * the fmt parameter. * @see utrace_vformat * @stable ICU 2.8 */ typedef void U_CALLCONV UTraceExit(const void *context, int32_t fnNumber, const char *fmt, va_list args); /** * Type signature for the trace function to be called from within an ICU function * to display data or messages. * @param context value supplied at the time the trace functions are set. * @param fnNumber Enum value indicating the ICU function being exited. * @param level The current tracing level * @param fmt A format string describing the tracing data that is supplied * as variable args * @param args The data being traced, passed as variable args. * @stable ICU 2.8 */ typedef void U_CALLCONV UTraceData(const void *context, int32_t fnNumber, int32_t level, const char *fmt, va_list args); /** * Set ICU Tracing functions. Installs application-provided tracing * functions into ICU. After doing this, subsequent ICU operations * will call back to the installed functions, providing a trace * of the use of ICU. Passing a NULL pointer for a tracing function * is allowed, and inhibits tracing action at points where that function * would be called. *

* Tracing and Threads: Tracing functions are global to a process, and * will be called in response to ICU operations performed by any * thread. If tracing of an individual thread is desired, the * tracing functions must themselves filter by checking that the * current thread is the desired thread. * * @param context an uninterpreted pointer. Whatever is passed in * here will in turn be passed to each of the tracing * functions UTraceEntry, UTraceExit and UTraceData. * ICU does not use or alter this pointer. * @param e Callback function to be called on entry to a * a traced ICU function. * @param x Callback function to be called on exit from a * traced ICU function. * @param d Callback function to be called from within a * traced ICU function, for the purpose of providing * data to the trace. * * @stable ICU 2.8 */ U_STABLE void U_EXPORT2 utrace_setFunctions(const void *context, UTraceEntry *e, UTraceExit *x, UTraceData *d); /** * Get the currently installed ICU tracing functions. Note that a null function * pointer will be returned if no trace function has been set. * * @param context The currently installed tracing context. * @param e The currently installed UTraceEntry function. * @param x The currently installed UTraceExit function. * @param d The currently installed UTraceData function. * @stable ICU 2.8 */ U_STABLE void U_EXPORT2 utrace_getFunctions(const void **context, UTraceEntry **e, UTraceExit **x, UTraceData **d); /* * * ICU trace format string syntax * * Format Strings are passed to UTraceData functions, and define the * number and types of the trace data being passed on each call. * * The UTraceData function, which is supplied by the application, * not by ICU, can either forward the trace data (passed via * varargs) and the format string back to ICU for formatting into * a displayable string, or it can interpret the format itself, * and do as it wishes with the trace data. * * * Goals for the format string * - basic data output * - easy to use for trace programmer * - sufficient provision for data types for trace output readability * - well-defined types and binary portable APIs * * Non-goals * - printf compatibility * - fancy formatting * - argument reordering and other internationalization features * * ICU trace format strings contain plain text with argument inserts, * much like standard printf format strings. * Each insert begins with a '%', then optionally contains a 'v', * then exactly one type character. * Two '%' in a row represent a '%' instead of an insert. * The trace format strings need not have \n at the end. * * * Types * ----- * * Type characters: * - c A char character in the default codepage. * - s A NUL-terminated char * string in the default codepage. * - S A UChar * string. Requires two params, (ptr, length). Length=-1 for nul term. * - b A byte (8-bit integer). * - h A 16-bit integer. Also a 16 bit Unicode code unit. * - d A 32-bit integer. Also a 20 bit Unicode code point value. * - l A 64-bit integer. * - p A data pointer. * * Vectors * ------- * * If the 'v' is not specified, then one item of the specified type * is passed in. * If the 'v' (for "vector") is specified, then a vector of items of the * specified type is passed in, via a pointer to the first item * and an int32_t value for the length of the vector. * Length==-1 means zero or NUL termination. Works for vectors of all types. * * Note: %vS is a vector of (UChar *) strings. The strings must * be nul terminated as there is no way to provide a * separate length parameter for each string. The length * parameter (required for all vectors) is the number of * strings, not the length of the strings. * * Examples * -------- * * These examples show the parameters that will be passed to an application's * UTraceData() function for various formats. * * - the precise formatting is up to the application! * - the examples use type casts for arguments only to _show_ the types of * arguments without needing variable declarations in the examples; * the type casts will not be necessary in actual code * * UTraceDataFunc(context, fnNumber, level, * "There is a character %c in the string %s.", // Format String * (char)c, (const char *)s); // varargs parameters * -> There is a character 0x42 'B' in the string "Bravo". * * UTraceDataFunc(context, fnNumber, level, * "Vector of bytes %vb vector of chars %vc", * (const uint8_t *)bytes, (int32_t)bytesLength, * (const char *)chars, (int32_t)charsLength); * -> Vector of bytes * 42 63 64 3f [4] * vector of chars * "Bcd?"[4] * * UTraceDataFunc(context, fnNumber, level, * "An int32_t %d and a whole bunch of them %vd", * (int32_t)-5, (const int32_t *)ints, (int32_t)intsLength); * -> An int32_t 0xfffffffb and a whole bunch of them * fffffffb 00000005 0000010a [3] * */ /** * Trace output Formatter. An application's UTraceData tracing functions may call * back to this function to format the trace output in a * human readable form. Note that a UTraceData function may choose * to not format the data; it could, for example, save it in * in the raw form it was received (more compact), leaving * formatting for a later trace analysis tool. * @param outBuf pointer to a buffer to receive the formatted output. Output * will be nul terminated if there is space in the buffer - * if the length of the requested output < the output buffer size. * @param capacity Length of the output buffer. * @param indent Number of spaces to indent the output. Intended to allow * data displayed from nested functions to be indented for readability. * @param fmt Format specification for the data to output * @param args Data to be formatted. * @return Length of formatted output, including the terminating NUL. * If buffer capacity is insufficient, the required capacity is returned. * @stable ICU 2.8 */ U_STABLE int32_t U_EXPORT2 utrace_vformat(char *outBuf, int32_t capacity, int32_t indent, const char *fmt, va_list args); /** * Trace output Formatter. An application's UTraceData tracing functions may call * this function to format any additional trace data, beyond that * provided by default, in human readable form with the same * formatting conventions used by utrace_vformat(). * @param outBuf pointer to a buffer to receive the formatted output. Output * will be nul terminated if there is space in the buffer - * if the length of the requested output < the output buffer size. * @param capacity Length of the output buffer. * @param indent Number of spaces to indent the output. Intended to allow * data displayed from nested functions to be indented for readability. * @param fmt Format specification for the data to output * @param ... Data to be formatted. * @return Length of formatted output, including the terminating NUL. * If buffer capacity is insufficient, the required capacity is returned. * @stable ICU 2.8 */ U_STABLE int32_t U_EXPORT2 utrace_format(char *outBuf, int32_t capacity, int32_t indent, const char *fmt, ...); /* Trace function numbers --------------------------------------------------- */ /** * Get the name of a function from its trace function number. * * @param fnNumber The trace number for an ICU function. * @return The name string for the function. * * @see UTraceFunctionNumber * @stable ICU 2.8 */ U_STABLE const char * U_EXPORT2 utrace_functionName(int32_t fnNumber); U_CDECL_END #endif