]> git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/ufieldpositer.cpp
ICU-551.51.4.tar.gz
[apple/icu.git] / icuSources / i18n / ufieldpositer.cpp
1 /*
2 *****************************************************************************************
3 * Copyright (C) 2015, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 *****************************************************************************************
6 */
7
8 #include "unicode/utypes.h"
9
10 #if !UCONFIG_NO_FORMATTING
11
12 #include "unicode/ufieldpositer.h"
13 #include "unicode/fpositer.h"
14 #include "unicode/localpointer.h"
15
16 U_NAMESPACE_USE
17
18
19 U_CAPI UFieldPositionIterator* U_EXPORT2
20 ufieldpositer_open(UErrorCode* status)
21 {
22 if (U_FAILURE(*status)) {
23 return NULL;
24 }
25 FieldPositionIterator* fpositer = new FieldPositionIterator();
26 if (fpositer == NULL) {
27 *status = U_MEMORY_ALLOCATION_ERROR;
28 }
29 return (UFieldPositionIterator*)fpositer;
30 }
31
32
33 U_CAPI void U_EXPORT2
34 ufieldpositer_close(UFieldPositionIterator *fpositer)
35 {
36 delete (FieldPositionIterator*)fpositer;
37 }
38
39
40 U_CAPI int32_t U_EXPORT2
41 ufieldpositer_next(UFieldPositionIterator *fpositer,
42 int32_t *beginIndex, int32_t *endIndex)
43 {
44 FieldPosition fp;
45 int32_t field = -1;
46 if (((FieldPositionIterator*)fpositer)->next(fp)) {
47 field = fp.getField();
48 if (beginIndex) {
49 *beginIndex = fp.getBeginIndex();
50 }
51 if (endIndex) {
52 *endIndex = fp.getEndIndex();
53 }
54 }
55 return field;
56 }
57
58
59 #endif /* #if !UCONFIG_NO_FORMATTING */