ICU 70.1 70.1

uformattedvalue.h
Go to the documentation of this file.
1// © 2018 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3
4#ifndef __UFORMATTEDVALUE_H__
5#define __UFORMATTEDVALUE_H__
6
7#include "unicode/utypes.h"
8
9#if !UCONFIG_NO_FORMATTING
10
11#include "unicode/ufieldpositer.h"
12
34 typedef enum UFieldCategory {
40 UFIELD_CATEGORY_UNDEFINED = 0,
41
47 UFIELD_CATEGORY_DATE,
48
54 UFIELD_CATEGORY_NUMBER,
55
61 UFIELD_CATEGORY_LIST,
62
68 UFIELD_CATEGORY_RELATIVE_DATETIME,
69
75 UFIELD_CATEGORY_DATE_INTERVAL,
76
77#ifndef U_HIDE_INTERNAL_API
79 UFIELD_CATEGORY_COUNT,
80#endif /* U_HIDE_INTERNAL_API */
81
87 UFIELD_CATEGORY_LIST_SPAN = 0x1000 + UFIELD_CATEGORY_LIST,
88
94 UFIELD_CATEGORY_DATE_INTERVAL_SPAN = 0x1000 + UFIELD_CATEGORY_DATE_INTERVAL,
95
96#ifndef U_HIDE_DRAFT_API
102 UFIELD_CATEGORY_NUMBER_RANGE_SPAN = 0x1000 + UFIELD_CATEGORY_NUMBER,
103#endif // U_HIDE_DRAFT_API
104
105} UFieldCategory;
106
107
108 struct UConstrainedFieldPosition;
120 typedef struct UConstrainedFieldPosition UConstrainedFieldPosition;
121
122
132 U_CAPI UConstrainedFieldPosition* U_EXPORT2
133 ucfpos_open(UErrorCode* ec);
134
135
145 U_CAPI void U_EXPORT2
146 ucfpos_reset(
147 UConstrainedFieldPosition* ucfpos,
148 UErrorCode* ec);
149
150
157 U_CAPI void U_EXPORT2
158 ucfpos_close(UConstrainedFieldPosition* ucfpos);
159
160
186 U_CAPI void U_EXPORT2
187 ucfpos_constrainCategory(
188 UConstrainedFieldPosition* ucfpos,
189 int32_t category,
190 UErrorCode* ec);
191
192
219 U_CAPI void U_EXPORT2
220 ucfpos_constrainField(
221 UConstrainedFieldPosition* ucfpos,
222 int32_t category,
223 int32_t field,
224 UErrorCode* ec);
225
226
239 U_CAPI int32_t U_EXPORT2
240 ucfpos_getCategory(
241 const UConstrainedFieldPosition* ucfpos,
242 UErrorCode* ec);
243
244
257 U_CAPI int32_t U_EXPORT2
258 ucfpos_getField(
259 const UConstrainedFieldPosition* ucfpos,
260 UErrorCode* ec);
261
262
274 U_CAPI void U_EXPORT2
275 ucfpos_getIndexes(
276 const UConstrainedFieldPosition* ucfpos,
277 int32_t* pStart,
278 int32_t* pLimit,
279 UErrorCode* ec);
280
281
294 U_CAPI int64_t U_EXPORT2
295 ucfpos_getInt64IterationContext(
296 const UConstrainedFieldPosition* ucfpos,
297 UErrorCode* ec);
298
299
310 U_CAPI void U_EXPORT2
311 ucfpos_setInt64IterationContext(
312 UConstrainedFieldPosition* ucfpos,
313 int64_t context,
314 UErrorCode* ec);
315
316
329 U_CAPI UBool U_EXPORT2
330 ucfpos_matchesField(
331 const UConstrainedFieldPosition* ucfpos,
332 int32_t category,
333 int32_t field,
334 UErrorCode* ec);
335
336
353 U_CAPI void U_EXPORT2
354 ucfpos_setState(
355 UConstrainedFieldPosition* ucfpos,
356 int32_t category,
357 int32_t field,
358 int32_t start,
359 int32_t limit,
360 UErrorCode* ec);
361
362
363 struct UFormattedValue;
370 typedef struct UFormattedValue UFormattedValue;
371
372
386 U_CAPI const UChar* U_EXPORT2
387 ufmtval_getString(
388 const UFormattedValue* ufmtval,
389 int32_t* pLength,
390 UErrorCode* ec);
391
392
416 U_CAPI UBool U_EXPORT2
417 ufmtval_nextPosition(
418 const UFormattedValue* ufmtval,
419 UConstrainedFieldPosition* ucfpos,
420 UErrorCode* ec);
421
422
423#if U_SHOW_CPLUSPLUS_API
424U_NAMESPACE_BEGIN
425
438 U_DEFINE_LOCAL_OPEN_POINTER(LocalUConstrainedFieldPositionPointer,
439 UConstrainedFieldPosition,
440 ucfpos_close);
441
442U_NAMESPACE_END
443#endif // U_SHOW_CPLUSPLUS_API
444
445
446#endif /* #if !UCONFIG_NO_FORMATTING */
447#endif // __UFORMATTEDVALUE_H__
LocalUConstrainedFieldPositionPointer
"Smart pointer" class; closes a UConstrainedFieldPosition via ucfpos_close().
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
ufieldpositer.h
C API: UFieldPositionIterator for use with format APIs.
ucfpos_constrainCategory
U_CAPI void ucfpos_constrainCategory(UConstrainedFieldPosition *ucfpos, int32_t category, UErrorCode *ec)
Sets a constraint on the field category.
ucfpos_constrainField
U_CAPI void ucfpos_constrainField(UConstrainedFieldPosition *ucfpos, int32_t category, int32_t field, UErrorCode *ec)
Sets a constraint on the category and field.
ucfpos_getIndexes
U_CAPI void ucfpos_getIndexes(const UConstrainedFieldPosition *ucfpos, int32_t *pStart, int32_t *pLimit, UErrorCode *ec)
Gets the INCLUSIVE start and EXCLUSIVE end index stored for the current position.
UFieldCategory
UFieldCategory
All possible field categories in ICU.
Definition: uformattedvalue.h:34
UFIELD_CATEGORY_DATE_INTERVAL
@ UFIELD_CATEGORY_DATE_INTERVAL
Reserved for possible future fields in UDateIntervalFormatField.
Definition: uformattedvalue.h:75
UFIELD_CATEGORY_DATE_INTERVAL_SPAN
@ UFIELD_CATEGORY_DATE_INTERVAL_SPAN
Category for spans in a date interval.
Definition: uformattedvalue.h:94
UFIELD_CATEGORY_DATE
@ UFIELD_CATEGORY_DATE
For fields in UDateFormatField (udat.h), from ICU 3.0.
Definition: uformattedvalue.h:47
UFIELD_CATEGORY_LIST_SPAN
@ UFIELD_CATEGORY_LIST_SPAN
Category for spans in a list.
Definition: uformattedvalue.h:87
UFIELD_CATEGORY_RELATIVE_DATETIME
@ UFIELD_CATEGORY_RELATIVE_DATETIME
For fields in URelativeDateTimeFormatterField (ureldatefmt.h), from ICU 64.
Definition: uformattedvalue.h:68
UFIELD_CATEGORY_UNDEFINED
@ UFIELD_CATEGORY_UNDEFINED
For an undefined field category.
Definition: uformattedvalue.h:40
UFIELD_CATEGORY_LIST
@ UFIELD_CATEGORY_LIST
For fields in UListFormatterField (ulistformatter.h), from ICU 63.
Definition: uformattedvalue.h:61
UFIELD_CATEGORY_NUMBER_RANGE_SPAN
@ UFIELD_CATEGORY_NUMBER_RANGE_SPAN
Category for spans in a number range.
Definition: uformattedvalue.h:102
UFIELD_CATEGORY_COUNT
@ UFIELD_CATEGORY_COUNT
Definition: uformattedvalue.h:79
UFIELD_CATEGORY_NUMBER
@ UFIELD_CATEGORY_NUMBER
For fields in UNumberFormatFields (unum.h), from ICU 49.
Definition: uformattedvalue.h:54
ucfpos_close
U_CAPI void ucfpos_close(UConstrainedFieldPosition *ucfpos)
Destroys a UConstrainedFieldPosition and releases its memory.
UConstrainedFieldPosition
struct UConstrainedFieldPosition UConstrainedFieldPosition
Represents a span of a string containing a given field.
Definition: uformattedvalue.h:120
ucfpos_open
U_CAPI UConstrainedFieldPosition * ucfpos_open(UErrorCode *ec)
Creates a new UConstrainedFieldPosition.
ucfpos_reset
U_CAPI void ucfpos_reset(UConstrainedFieldPosition *ucfpos, UErrorCode *ec)
Resets a UConstrainedFieldPosition to its initial state, as if it were newly created.
ucfpos_matchesField
U_CAPI UBool ucfpos_matchesField(const UConstrainedFieldPosition *ucfpos, int32_t category, int32_t field, UErrorCode *ec)
Determines whether a given field should be included given the constraints.
ucfpos_getCategory
U_CAPI int32_t ucfpos_getCategory(const UConstrainedFieldPosition *ucfpos, UErrorCode *ec)
Gets the field category for the current position.
ucfpos_setState
U_CAPI void ucfpos_setState(UConstrainedFieldPosition *ucfpos, int32_t category, int32_t field, int32_t start, int32_t limit, UErrorCode *ec)
Sets new values for the primary public getters.
ucfpos_getField
U_CAPI int32_t ucfpos_getField(const UConstrainedFieldPosition *ucfpos, UErrorCode *ec)
Gets the field for the current position.
ufmtval_getString
U_CAPI const UChar * ufmtval_getString(const UFormattedValue *ufmtval, int32_t *pLength, UErrorCode *ec)
Returns a pointer to the formatted string.
ucfpos_getInt64IterationContext
U_CAPI int64_t ucfpos_getInt64IterationContext(const UConstrainedFieldPosition *ucfpos, UErrorCode *ec)
Gets an int64 that FormattedValue implementations may use for storage.
ufmtval_nextPosition
U_CAPI UBool ufmtval_nextPosition(const UFormattedValue *ufmtval, UConstrainedFieldPosition *ucfpos, UErrorCode *ec)
Iterates over field positions in the UFormattedValue.
UFormattedValue
struct UFormattedValue UFormattedValue
An abstract formatted value: a string with associated field attributes.
Definition: uformattedvalue.h:370
ucfpos_setInt64IterationContext
U_CAPI void ucfpos_setInt64IterationContext(UConstrainedFieldPosition *ucfpos, int64_t context, UErrorCode *ec)
Sets an int64 that FormattedValue implementations may use for storage.
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