ICU 69.1: udatpg.h Source File

ICU 69.1 69.1

udatpg.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 *
6 * Copyright (C) 2007-2015, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 *******************************************************************************
10 * file name: udatpg.h
11 * encoding: UTF-8
12 * tab size: 8 (not used)
13 * indentation:4
14 *
15 * created on: 2007jul30
16 * created by: Markus W. Scherer
17 */
18
19 #ifndef __UDATPG_H__
20 #define __UDATPG_H__
21
22 #include "unicode/utypes.h"
23 #include "unicode/udat.h"
24 #include "unicode/uenum.h"
25
26 #if U_SHOW_CPLUSPLUS_API
27 #include "unicode/localpointer.h"
28 #endif // U_SHOW_CPLUSPLUS_API
29
51 typedef void *UDateTimePatternGenerator;
52
59 typedef enum UDateTimePatternField {
61 UDATPG_ERA_FIELD,
63 UDATPG_YEAR_FIELD,
65 UDATPG_QUARTER_FIELD,
67 UDATPG_MONTH_FIELD,
69 UDATPG_WEEK_OF_YEAR_FIELD,
71 UDATPG_WEEK_OF_MONTH_FIELD,
73 UDATPG_WEEKDAY_FIELD,
75 UDATPG_DAY_OF_YEAR_FIELD,
77 UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD,
79 UDATPG_DAY_FIELD,
81 UDATPG_DAYPERIOD_FIELD,
83 UDATPG_HOUR_FIELD,
85 UDATPG_MINUTE_FIELD,
87 UDATPG_SECOND_FIELD,
89 UDATPG_FRACTIONAL_SECOND_FIELD,
91 UDATPG_ZONE_FIELD,
92
93 /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
94 * it is needed for layout of DateTimePatternGenerator object. */
95 #ifndef U_FORCE_HIDE_DEPRECATED_API
100 UDATPG_FIELD_COUNT
101 #endif // U_FORCE_HIDE_DEPRECATED_API
102 } UDateTimePatternField;
103
108 typedef enum UDateTimePGDisplayWidth {
110 UDATPG_WIDE,
112 UDATPG_ABBREVIATED,
114 UDATPG_NARROW
115 } UDateTimePGDisplayWidth;
116
124 typedef enum UDateTimePatternMatchOptions {
126 UDATPG_MATCH_NO_OPTIONS = 0,
128 UDATPG_MATCH_HOUR_FIELD_LENGTH = 1 << UDATPG_HOUR_FIELD,
129 #ifndef U_HIDE_INTERNAL_API
131 UDATPG_MATCH_MINUTE_FIELD_LENGTH = 1 << UDATPG_MINUTE_FIELD,
133 UDATPG_MATCH_SECOND_FIELD_LENGTH = 1 << UDATPG_SECOND_FIELD,
134 #endif /* U_HIDE_INTERNAL_API */
136 UDATPG_MATCH_ALL_FIELDS_LENGTH = (1 << UDATPG_FIELD_COUNT) - 1
137 } UDateTimePatternMatchOptions;
138
143 typedef enum UDateTimePatternConflict {
145 UDATPG_NO_CONFLICT,
147 UDATPG_BASE_CONFLICT,
149 UDATPG_CONFLICT,
150 #ifndef U_HIDE_DEPRECATED_API
155 UDATPG_CONFLICT_COUNT
156 #endif // U_HIDE_DEPRECATED_API
157 } UDateTimePatternConflict;
158
167 U_CAPI UDateTimePatternGenerator * U_EXPORT2
168 udatpg_open(const char *locale, UErrorCode *pErrorCode);
169
177 U_CAPI UDateTimePatternGenerator * U_EXPORT2
178 udatpg_openEmpty(UErrorCode *pErrorCode);
179
185 U_CAPI void U_EXPORT2
186 udatpg_close(UDateTimePatternGenerator *dtpg);
187
188 #if U_SHOW_CPLUSPLUS_API
189
190 U_NAMESPACE_BEGIN
191
201 U_DEFINE_LOCAL_OPEN_POINTER(LocalUDateTimePatternGeneratorPointer, UDateTimePatternGenerator, udatpg_close);
202
203 U_NAMESPACE_END
204
205 #endif
206
215 U_CAPI UDateTimePatternGenerator * U_EXPORT2
216 udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
217
241 U_CAPI int32_t U_EXPORT2
242 udatpg_getBestPattern(UDateTimePatternGenerator *dtpg,
243 const UChar *skeleton, int32_t length,
244 UChar *bestPattern, int32_t capacity,
245 UErrorCode *pErrorCode);
246
277 U_CAPI int32_t U_EXPORT2
278 udatpg_getBestPatternWithOptions(UDateTimePatternGenerator *dtpg,
279 const UChar *skeleton, int32_t length,
280 UDateTimePatternMatchOptions options,
281 UChar *bestPattern, int32_t capacity,
282 UErrorCode *pErrorCode);
283
305 U_CAPI int32_t U_EXPORT2
306 udatpg_getSkeleton(UDateTimePatternGenerator *unusedDtpg,
307 const UChar *pattern, int32_t length,
308 UChar *skeleton, int32_t capacity,
309 UErrorCode *pErrorCode);
310
335 U_CAPI int32_t U_EXPORT2
336 udatpg_getBaseSkeleton(UDateTimePatternGenerator *unusedDtpg,
337 const UChar *pattern, int32_t length,
338 UChar *baseSkeleton, int32_t capacity,
339 UErrorCode *pErrorCode);
340
365 U_CAPI UDateTimePatternConflict U_EXPORT2
366 udatpg_addPattern(UDateTimePatternGenerator *dtpg,
367 const UChar *pattern, int32_t patternLength,
368 UBool override,
369 UChar *conflictingPattern, int32_t capacity, int32_t *pLength,
370 UErrorCode *pErrorCode);
371
392 U_CAPI void U_EXPORT2
393 udatpg_setAppendItemFormat(UDateTimePatternGenerator *dtpg,
394 UDateTimePatternField field,
395 const UChar *value, int32_t length);
396
407 U_CAPI const UChar * U_EXPORT2
408 udatpg_getAppendItemFormat(const UDateTimePatternGenerator *dtpg,
409 UDateTimePatternField field,
410 int32_t *pLength);
411
425 U_CAPI void U_EXPORT2
426 udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg,
427 UDateTimePatternField field,
428 const UChar *value, int32_t length);
429
442 U_CAPI const UChar * U_EXPORT2
443 udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg,
444 UDateTimePatternField field,
445 int32_t *pLength);
446
472 U_CAPI int32_t U_EXPORT2
473 udatpg_getFieldDisplayName(const UDateTimePatternGenerator *dtpg,
474 UDateTimePatternField field,
475 UDateTimePGDisplayWidth width,
476 UChar *fieldName, int32_t capacity,
477 UErrorCode *pErrorCode);
478
502 U_CAPI void U_EXPORT2
503 udatpg_setDateTimeFormat(const UDateTimePatternGenerator *dtpg,
504 const UChar *dtFormat, int32_t length);
505
513 U_CAPI const UChar * U_EXPORT2
514 udatpg_getDateTimeFormat(const UDateTimePatternGenerator *dtpg,
515 int32_t *pLength);
516
530 U_CAPI void U_EXPORT2
531 udatpg_setDecimal(UDateTimePatternGenerator *dtpg,
532 const UChar *decimal, int32_t length);
533
542 U_CAPI const UChar * U_EXPORT2
543 udatpg_getDecimal(const UDateTimePatternGenerator *dtpg,
544 int32_t *pLength);
545
571 U_CAPI int32_t U_EXPORT2
572 udatpg_replaceFieldTypes(UDateTimePatternGenerator *dtpg,
573 const UChar *pattern, int32_t patternLength,
574 const UChar *skeleton, int32_t skeletonLength,
575 UChar *dest, int32_t destCapacity,
576 UErrorCode *pErrorCode);
577
608 U_CAPI int32_t U_EXPORT2
609 udatpg_replaceFieldTypesWithOptions(UDateTimePatternGenerator *dtpg,
610 const UChar *pattern, int32_t patternLength,
611 const UChar *skeleton, int32_t skeletonLength,
612 UDateTimePatternMatchOptions options,
613 UChar *dest, int32_t destCapacity,
614 UErrorCode *pErrorCode);
615
627 U_CAPI UEnumeration * U_EXPORT2
628 udatpg_openSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
629
640 U_CAPI UEnumeration * U_EXPORT2
641 udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
642
653 U_CAPI const UChar * U_EXPORT2
654 udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg,
655 const UChar *skeleton, int32_t skeletonLength,
656 int32_t *pLength);
657
658 #if !UCONFIG_NO_FORMATTING
659
673 U_CAPI UDateFormatHourCycle U_EXPORT2
674 udatpg_getDefaultHourCycle(const UDateTimePatternGenerator *dtpg, UErrorCode* pErrorCode);
675
676 #endif /* #if !UCONFIG_NO_FORMATTING */
677
678 #endif
LocalUDateTimePatternGeneratorPointer
"Smart pointer" class, closes a UDateTimePatternGenerator via udatpg_close().
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:550
udat.h
C API: DateFormat.
UDateFormatHourCycle
UDateFormatHourCycle
Hour Cycle.
Definition: udat.h:983
udatpg_getBestPatternWithOptions
U_CAPI int32_t udatpg_getBestPatternWithOptions(UDateTimePatternGenerator *dtpg, const UChar *skeleton, int32_t length, UDateTimePatternMatchOptions options, UChar *bestPattern, int32_t capacity, UErrorCode *pErrorCode)
Get the best pattern matching the input skeleton.
udatpg_openBaseSkeletons
U_CAPI UEnumeration * udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Return a UEnumeration list of all the base skeletons in canonical form.
UDateTimePGDisplayWidth
UDateTimePGDisplayWidth
Field display name width constants for udatpg_getFieldDisplayName().
Definition: udatpg.h:108
UDATPG_ABBREVIATED
@ UDATPG_ABBREVIATED
Definition: udatpg.h:112
UDATPG_WIDE
@ UDATPG_WIDE
Definition: udatpg.h:110
UDATPG_NARROW
@ UDATPG_NARROW
Definition: udatpg.h:114
udatpg_close
U_CAPI void udatpg_close(UDateTimePatternGenerator *dtpg)
Close a generator.
udatpg_getDateTimeFormat
U_CAPI const UChar * udatpg_getDateTimeFormat(const UDateTimePatternGenerator *dtpg, int32_t *pLength)
Getter corresponding to setDateTimeFormat.
udatpg_openSkeletons
U_CAPI UEnumeration * udatpg_openSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Return a UEnumeration list of all the skeletons in canonical form.
UDateTimePatternGenerator
void * UDateTimePatternGenerator
Opaque type for a date/time pattern generator object.
Definition: udatpg.h:51
udatpg_getAppendItemFormat
U_CAPI const UChar * udatpg_getAppendItemFormat(const UDateTimePatternGenerator *dtpg, UDateTimePatternField field, int32_t *pLength)
Getter corresponding to setAppendItemFormat.
udatpg_setDecimal
U_CAPI void udatpg_setDecimal(UDateTimePatternGenerator *dtpg, const UChar *decimal, int32_t length)
The decimal value is used in formatting fractions of seconds.
udatpg_addPattern
U_CAPI UDateTimePatternConflict udatpg_addPattern(UDateTimePatternGenerator *dtpg, const UChar *pattern, int32_t patternLength, UBool override, UChar *conflictingPattern, int32_t capacity, int32_t *pLength, UErrorCode *pErrorCode)
Adds a pattern to the generator.
udatpg_setAppendItemFormat
U_CAPI void udatpg_setAppendItemFormat(UDateTimePatternGenerator *dtpg, UDateTimePatternField field, const UChar *value, int32_t length)
An AppendItem format is a pattern used to append a field if there is no good match.
udatpg_getBestPattern
U_CAPI int32_t udatpg_getBestPattern(UDateTimePatternGenerator *dtpg, const UChar *skeleton, int32_t length, UChar *bestPattern, int32_t capacity, UErrorCode *pErrorCode)
Get the best pattern matching the input skeleton.
udatpg_open
U_CAPI UDateTimePatternGenerator * udatpg_open(const char *locale, UErrorCode *pErrorCode)
Open a generator according to a given locale.
udatpg_getSkeleton
U_CAPI int32_t udatpg_getSkeleton(UDateTimePatternGenerator *unusedDtpg, const UChar *pattern, int32_t length, UChar *skeleton, int32_t capacity, UErrorCode *pErrorCode)
Get a unique skeleton from a given pattern.
UDateTimePatternConflict
UDateTimePatternConflict
Status return values from udatpg_addPattern().
Definition: udatpg.h:143
UDATPG_NO_CONFLICT
@ UDATPG_NO_CONFLICT
Definition: udatpg.h:145
UDATPG_BASE_CONFLICT
@ UDATPG_BASE_CONFLICT
Definition: udatpg.h:147
UDATPG_CONFLICT
@ UDATPG_CONFLICT
Definition: udatpg.h:149
UDATPG_CONFLICT_COUNT
@ UDATPG_CONFLICT_COUNT
One more than the highest normal UDateTimePatternConflict value.
Definition: udatpg.h:155
udatpg_replaceFieldTypes
U_CAPI int32_t udatpg_replaceFieldTypes(UDateTimePatternGenerator *dtpg, const UChar *pattern, int32_t patternLength, const UChar *skeleton, int32_t skeletonLength, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Adjusts the field types (width and subtype) of a pattern to match what is in a skeleton.
udatpg_getPatternForSkeleton
U_CAPI const UChar * udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg, const UChar *skeleton, int32_t skeletonLength, int32_t *pLength)
Get the pattern corresponding to a given skeleton.
udatpg_setAppendItemName
U_CAPI void udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg, UDateTimePatternField field, const UChar *value, int32_t length)
Set the name of field, eg "era" in English for ERA.
udatpg_setDateTimeFormat
U_CAPI void udatpg_setDateTimeFormat(const UDateTimePatternGenerator *dtpg, const UChar *dtFormat, int32_t length)
The DateTimeFormat is a message format pattern used to compose date and time patterns.
UDateTimePatternMatchOptions
UDateTimePatternMatchOptions
Masks to control forcing the length of specified fields in the returned pattern to match those in the...
Definition: udatpg.h:124
UDATPG_MATCH_HOUR_FIELD_LENGTH
@ UDATPG_MATCH_HOUR_FIELD_LENGTH
Definition: udatpg.h:128
UDATPG_MATCH_MINUTE_FIELD_LENGTH
@ UDATPG_MATCH_MINUTE_FIELD_LENGTH
Definition: udatpg.h:131
UDATPG_MATCH_SECOND_FIELD_LENGTH
@ UDATPG_MATCH_SECOND_FIELD_LENGTH
Definition: udatpg.h:133
UDATPG_MATCH_NO_OPTIONS
@ UDATPG_MATCH_NO_OPTIONS
Definition: udatpg.h:126
UDATPG_MATCH_ALL_FIELDS_LENGTH
@ UDATPG_MATCH_ALL_FIELDS_LENGTH
Definition: udatpg.h:136
udatpg_getDefaultHourCycle
U_CAPI UDateFormatHourCycle udatpg_getDefaultHourCycle(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Return the default hour cycle for a locale.
udatpg_clone
U_CAPI UDateTimePatternGenerator * udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Create a copy pf a generator.
udatpg_replaceFieldTypesWithOptions
U_CAPI int32_t udatpg_replaceFieldTypesWithOptions(UDateTimePatternGenerator *dtpg, const UChar *pattern, int32_t patternLength, const UChar *skeleton, int32_t skeletonLength, UDateTimePatternMatchOptions options, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Adjusts the field types (width and subtype) of a pattern to match what is in a skeleton.
udatpg_getFieldDisplayName
U_CAPI int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator *dtpg, UDateTimePatternField field, UDateTimePGDisplayWidth width, UChar *fieldName, int32_t capacity, UErrorCode *pErrorCode)
The general interface to get a display name for a particular date/time field, in one of several possi...
udatpg_getBaseSkeleton
U_CAPI int32_t udatpg_getBaseSkeleton(UDateTimePatternGenerator *unusedDtpg, const UChar *pattern, int32_t length, UChar *baseSkeleton, int32_t capacity, UErrorCode *pErrorCode)
Get a unique base skeleton from a given pattern.
udatpg_getDecimal
U_CAPI const UChar * udatpg_getDecimal(const UDateTimePatternGenerator *dtpg, int32_t *pLength)
Getter corresponding to setDecimal.
udatpg_openEmpty
U_CAPI UDateTimePatternGenerator * udatpg_openEmpty(UErrorCode *pErrorCode)
Open an empty generator, to be constructed with udatpg_addPattern(...) etc.
udatpg_getAppendItemName
U_CAPI const UChar * udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg, UDateTimePatternField field, int32_t *pLength)
Getter corresponding to setAppendItemNames.
UDateTimePatternField
UDateTimePatternField
Field number constants for udatpg_getAppendItemFormats() and similar functions.
Definition: udatpg.h:59
UDATPG_WEEK_OF_YEAR_FIELD
@ UDATPG_WEEK_OF_YEAR_FIELD
Definition: udatpg.h:69
UDATPG_DAY_OF_YEAR_FIELD
@ UDATPG_DAY_OF_YEAR_FIELD
Definition: udatpg.h:75
UDATPG_QUARTER_FIELD
@ UDATPG_QUARTER_FIELD
Definition: udatpg.h:65
UDATPG_WEEKDAY_FIELD
@ UDATPG_WEEKDAY_FIELD
Definition: udatpg.h:73
UDATPG_DAYPERIOD_FIELD
@ UDATPG_DAYPERIOD_FIELD
Definition: udatpg.h:81
UDATPG_MONTH_FIELD
@ UDATPG_MONTH_FIELD
Definition: udatpg.h:67
UDATPG_DAY_FIELD
@ UDATPG_DAY_FIELD
Definition: udatpg.h:79
UDATPG_SECOND_FIELD
@ UDATPG_SECOND_FIELD
Definition: udatpg.h:87
UDATPG_ZONE_FIELD
@ UDATPG_ZONE_FIELD
Definition: udatpg.h:91
UDATPG_FRACTIONAL_SECOND_FIELD
@ UDATPG_FRACTIONAL_SECOND_FIELD
Definition: udatpg.h:89
UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD
@ UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD
Definition: udatpg.h:77
UDATPG_YEAR_FIELD
@ UDATPG_YEAR_FIELD
Definition: udatpg.h:63
UDATPG_FIELD_COUNT
@ UDATPG_FIELD_COUNT
One more than the highest normal UDateTimePatternField value.
Definition: udatpg.h:100
UDATPG_WEEK_OF_MONTH_FIELD
@ UDATPG_WEEK_OF_MONTH_FIELD
Definition: udatpg.h:71
UDATPG_HOUR_FIELD
@ UDATPG_HOUR_FIELD
Definition: udatpg.h:83
UDATPG_ERA_FIELD
@ UDATPG_ERA_FIELD
Definition: udatpg.h:61
UDATPG_MINUTE_FIELD
@ UDATPG_MINUTE_FIELD
Definition: udatpg.h:85
uenum.h
C API: String Enumeration.
UEnumeration
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition: uenum.h:44
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:269
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:418
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415