tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

udbgutil.h (4707B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 ************************************************************************
      5 * Copyright (c) 2008-2015, International Business Machines
      6 * Corporation and others.  All Rights Reserved.
      7 ************************************************************************
      8 */
      9 
     10 /** C Utilities to aid in debugging **/
     11 
     12 #ifndef _UDBGUTIL_H
     13 #define _UDBGUTIL_H
     14 
     15 #include "unicode/utypes.h"
     16 #include <stdio.h>
     17 
     18 enum UDebugEnumType {
     19    UDBG_UDebugEnumType = 0, /* Self-referential, strings for UDebugEnumType. Count=ENUM_COUNT. */
     20 #if !UCONFIG_NO_FORMATTING
     21    UDBG_UCalendarDateFields, /* UCalendarDateFields. Count=UCAL_FIELD_COUNT.  Unsupported if UCONFIG_NO_FORMATTING. */
     22    UDBG_UCalendarMonths, /* UCalendarMonths. Count= (UCAL_UNDECIMBER+1) */
     23    UDBG_UDateFormatStyle, /* Count = UDAT_SHORT=1 */
     24 #endif
     25 #if UCONFIG_ENABLE_PLUGINS
     26    UDBG_UPlugReason,   /* Count = UPLUG_REASON_COUNT */
     27    UDBG_UPlugLevel,    /* COUNT = UPLUG_LEVEL_COUNT */
     28 #endif
     29    UDBG_UAcceptResult, /* Count = ULOC_ACCEPT_FALLBACK+1=3 */
     30 
     31    /* All following enums may be discontiguous. */
     32 
     33 #if !UCONFIG_NO_COLLATION
     34    UDBG_UColAttributeValue,  /* UCOL_ATTRIBUTE_VALUE_COUNT */
     35 #endif
     36    UDBG_ENUM_COUNT,
     37    UDBG_HIGHEST_CONTIGUOUS_ENUM = UDBG_UAcceptResult,  /**< last enum in this list with contiguous (testable) values. */
     38    UDBG_INVALID_ENUM = -1 /** Invalid enum value **/
     39 };
     40 
     41 typedef enum UDebugEnumType UDebugEnumType;
     42 
     43 /**
     44 * @param type the type of enum
     45 * Print how many enums are contained for this type.
     46 * Should be equal to the appropriate _COUNT constant or there is an error. Return -1 if unsupported.
     47 */
     48 U_CAPI int32_t U_EXPORT2 udbg_enumCount(UDebugEnumType type);
     49 
     50 /**
     51 * Convert an enum to a string
     52 * @param type type of enum
     53 * @param field field number
     54 * @return string of the format "ERA", "YEAR", etc, or NULL if out of range or unsupported
     55 */
     56 U_CAPI const char * U_EXPORT2 udbg_enumName(UDebugEnumType type, int32_t field);
     57 
     58 /**
     59 * for consistency checking
     60 * @param type the type of enum
     61 * Print how many enums should be contained for this type.
     62 * This is equal to the appropriate _COUNT constant or there is an error. Returns -1 if unsupported.
     63 */
     64 U_CAPI int32_t U_EXPORT2 udbg_enumExpectedCount(UDebugEnumType type);
     65 
     66 /**
     67 * For consistency checking, returns the expected enum ordinal value for the given index value.
     68 * @param type which type
     69 * @param field field number
     70 * @return should be equal to 'field' or -1 if out of range.
     71 */
     72 U_CAPI int32_t U_EXPORT2 udbg_enumArrayValue(UDebugEnumType type, int32_t field);
     73 
     74 /**
     75 * Locate the specified field value by name.
     76 * @param type which type
     77 * @param name name of string (case sensitive)
     78 * @return should be a field value or -1 if not found.
     79 */
     80 U_CAPI int32_t U_EXPORT2 udbg_enumByName(UDebugEnumType type, const char *name);
     81 
     82 
     83 /**
     84 * Return the Platform (U_PLATFORM) as a string
     85 */
     86 U_CAPI const char *udbg_getPlatform(void);
     87 
     88 /**
     89 * Get the nth system parameter's name
     90 * @param i index of name, starting from zero
     91 * @return name, or NULL if off the end
     92 * @see udbg_getSystemParameterValue
     93 */
     94 U_CAPI const char *udbg_getSystemParameterNameByIndex(int32_t i);
     95 
     96 /**
     97 * Get the nth system parameter's value, in a user supplied buffer
     98 * @parameter i index of value, starting from zero
     99 * @param status error status
    100 * @return length written (standard termination rules)
    101 * @see udbg_getSystemParameterName
    102 */
    103 U_CAPI int32_t udbg_getSystemParameterValueByIndex(int32_t i, char *buffer, int32_t bufferCapacity, UErrorCode *status);
    104 
    105 /**
    106 * Write ICU info as XML
    107 */
    108 U_CAPI void udbg_writeIcuInfo(FILE *f);
    109 
    110 /**
    111 * \def UDBG_KNOWNISSUE_LEN
    112 * Length of output buffer for udbg_knownIssueURLFrom
    113 */
    114 #define UDBG_KNOWNISSUE_LEN 255
    115 
    116 /**
    117 * Open (or reopen) a 'known issue' table.
    118 * @param ptr pointer to 'table'. Opaque.
    119 * @return new or existing ptr
    120 */
    121 U_CAPI void *udbg_knownIssue_openU(void *ptr, const char *ticket, char *where, const UChar *msg, UBool *firstForTicket,
    122                                   UBool *firstForWhere);
    123 
    124 
    125 /**
    126 * Open (or reopen) a 'known issue' table.
    127 * @param ptr pointer to 'table'. Opaque.
    128 * @return new or existing ptr
    129 */
    130 U_CAPI void *udbg_knownIssue_open(void *ptr, const char *ticket, char *where, const char *msg, UBool *firstForTicket,
    131                                   UBool *firstForWhere);
    132 
    133 /**
    134 * Print 'known issue' table, to std::cout.
    135 * @param ptr pointer from udbg_knownIssue
    136 * @return true if there were any issues.
    137 */
    138 U_CAPI UBool udbg_knownIssue_print(void *ptr);
    139 
    140 /**
    141 * Close 'known issue' table.
    142 * @param ptr
    143 */
    144 U_CAPI void udbg_knownIssue_close(void *ptr);
    145 
    146 
    147 #endif