]>
Commit | Line | Data |
---|---|---|
46f4442e A |
1 | /* |
2 | ************************************************************************ | |
4388f060 | 3 | * Copyright (c) 2008-2011, International Business Machines |
46f4442e A |
4 | * Corporation and others. All Rights Reserved. |
5 | ************************************************************************ | |
6 | */ | |
7 | ||
8 | /** C Utilities to aid in debugging **/ | |
9 | ||
10 | #ifndef _UDBGUTIL_H | |
11 | #define _UDBGUTIL_H | |
12 | ||
46f4442e | 13 | #include "unicode/utypes.h" |
4388f060 | 14 | #include <stdio.h> |
46f4442e A |
15 | |
16 | enum UDebugEnumType { | |
17 | UDBG_UDebugEnumType = 0, /* Self-referential, strings for UDebugEnumType. Count=ENUM_COUNT. */ | |
729e4ab9 | 18 | #if !UCONFIG_NO_FORMATTING |
46f4442e A |
19 | UDBG_UCalendarDateFields, /* UCalendarDateFields. Count=UCAL_FIELD_COUNT. Unsupported if UCONFIG_NO_FORMATTING. */ |
20 | UDBG_UCalendarMonths, /* UCalendarMonths. Count= (UCAL_UNDECIMBER+1) */ | |
21 | UDBG_UDateFormatStyle, /* Count = UDAT_SHORT=1 */ | |
729e4ab9 A |
22 | #endif |
23 | UDBG_UPlugReason, /* Count = UPLUG_REASON_COUNT */ | |
24 | UDBG_UPlugLevel, /* COUNT = UPLUG_LEVEL_COUNT */ | |
25 | UDBG_UAcceptResult, /* Count = ULOC_ACCEPT_FALLBACK+1=3 */ | |
26 | ||
27 | /* All following enums may be discontiguous. */ | |
28 | ||
29 | #if !UCONFIG_NO_COLLATION | |
30 | UDBG_UColAttributeValue, /* UCOL_ATTRIBUTE_VALUE_COUNT */ | |
31 | #endif | |
32 | UDBG_ENUM_COUNT, | |
33 | UDBG_HIGHEST_CONTIGUOUS_ENUM = UDBG_UAcceptResult, /**< last enum in this list with contiguous (testable) values. */ | |
34 | UDBG_INVALID_ENUM = -1 /** Invalid enum value **/ | |
46f4442e A |
35 | }; |
36 | ||
37 | typedef enum UDebugEnumType UDebugEnumType; | |
38 | ||
39 | /** | |
40 | * @param type the type of enum | |
41 | * Print how many enums are contained for this type. | |
42 | * Should be equal to the appropriate _COUNT constant or there is an error. Return -1 if unsupported. | |
43 | */ | |
729e4ab9 | 44 | U_CAPI int32_t U_EXPORT2 udbg_enumCount(UDebugEnumType type); |
46f4442e A |
45 | |
46 | /** | |
47 | * Convert an enum to a string | |
48 | * @param type type of enum | |
49 | * @param field field number | |
50 | * @return string of the format "ERA", "YEAR", etc, or NULL if out of range or unsupported | |
51 | */ | |
729e4ab9 | 52 | U_CAPI const char * U_EXPORT2 udbg_enumName(UDebugEnumType type, int32_t field); |
46f4442e A |
53 | |
54 | /** | |
55 | * for consistency checking | |
56 | * @param type the type of enum | |
57 | * Print how many enums should be contained for this type. | |
58 | * This is equal to the appropriate _COUNT constant or there is an error. Returns -1 if unsupported. | |
59 | */ | |
729e4ab9 | 60 | U_CAPI int32_t U_EXPORT2 udbg_enumExpectedCount(UDebugEnumType type); |
46f4442e A |
61 | |
62 | /** | |
63 | * For consistency checking, returns the expected enum ordinal value for the given index value. | |
64 | * @param type which type | |
65 | * @param field field number | |
66 | * @return should be equal to 'field' or -1 if out of range. | |
67 | */ | |
729e4ab9 A |
68 | U_CAPI int32_t U_EXPORT2 udbg_enumArrayValue(UDebugEnumType type, int32_t field); |
69 | ||
70 | /** | |
71 | * Locate the specified field value by name. | |
72 | * @param type which type | |
73 | * @param name name of string (case sensitive) | |
74 | * @return should be a field value or -1 if not found. | |
75 | */ | |
76 | U_CAPI int32_t U_EXPORT2 udbg_enumByName(UDebugEnumType type, const char *name); | |
46f4442e | 77 | |
4388f060 A |
78 | |
79 | /** | |
80 | * Return the Platform (U_PLATFORM) as a string | |
81 | */ | |
82 | U_CAPI const char *udbg_getPlatform(void); | |
83 | ||
84 | /** | |
85 | * Get the nth system parameter's name | |
86 | * @param i index of name, starting from zero | |
87 | * @return name, or NULL if off the end | |
88 | * @see udbg_getSystemParameterValue | |
89 | */ | |
90 | U_CAPI const char *udbg_getSystemParameterNameByIndex(int32_t i); | |
91 | ||
92 | /** | |
93 | * Get the nth system parameter's value, in a user supplied buffer | |
94 | * @parameter i index of value, starting from zero | |
95 | * @param status error status | |
96 | * @return length written (standard termination rules) | |
97 | * @see udbg_getSystemParameterName | |
98 | */ | |
99 | U_CAPI int32_t udbg_getSystemParameterValueByIndex(int32_t i, char *buffer, int32_t bufferCapacity, UErrorCode *status); | |
100 | ||
101 | /** | |
102 | * Write ICU info as XML | |
103 | */ | |
104 | U_CAPI void udbg_writeIcuInfo(FILE *f); | |
105 | ||
46f4442e | 106 | #endif |