1*0e209d39SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others. 2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html 3*0e209d39SAndroid Build Coastguard Worker /* 4*0e209d39SAndroid Build Coastguard Worker ***************************************************************************************** 5*0e209d39SAndroid Build Coastguard Worker * Copyright (C) 2015, International Business Machines 6*0e209d39SAndroid Build Coastguard Worker * Corporation and others. All Rights Reserved. 7*0e209d39SAndroid Build Coastguard Worker ***************************************************************************************** 8*0e209d39SAndroid Build Coastguard Worker */ 9*0e209d39SAndroid Build Coastguard Worker 10*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h" 11*0e209d39SAndroid Build Coastguard Worker 12*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_FORMATTING 13*0e209d39SAndroid Build Coastguard Worker 14*0e209d39SAndroid Build Coastguard Worker #include "unicode/ufieldpositer.h" 15*0e209d39SAndroid Build Coastguard Worker #include "unicode/fpositer.h" 16*0e209d39SAndroid Build Coastguard Worker #include "unicode/localpointer.h" 17*0e209d39SAndroid Build Coastguard Worker 18*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_USE 19*0e209d39SAndroid Build Coastguard Worker 20*0e209d39SAndroid Build Coastguard Worker 21*0e209d39SAndroid Build Coastguard Worker U_CAPI UFieldPositionIterator* U_EXPORT2 ufieldpositer_open(UErrorCode * status)22*0e209d39SAndroid Build Coastguard Workerufieldpositer_open(UErrorCode* status) 23*0e209d39SAndroid Build Coastguard Worker { 24*0e209d39SAndroid Build Coastguard Worker if (U_FAILURE(*status)) { 25*0e209d39SAndroid Build Coastguard Worker return nullptr; 26*0e209d39SAndroid Build Coastguard Worker } 27*0e209d39SAndroid Build Coastguard Worker FieldPositionIterator* fpositer = new FieldPositionIterator(); 28*0e209d39SAndroid Build Coastguard Worker if (fpositer == nullptr) { 29*0e209d39SAndroid Build Coastguard Worker *status = U_MEMORY_ALLOCATION_ERROR; 30*0e209d39SAndroid Build Coastguard Worker } 31*0e209d39SAndroid Build Coastguard Worker return (UFieldPositionIterator*)fpositer; 32*0e209d39SAndroid Build Coastguard Worker } 33*0e209d39SAndroid Build Coastguard Worker 34*0e209d39SAndroid Build Coastguard Worker 35*0e209d39SAndroid Build Coastguard Worker U_CAPI void U_EXPORT2 ufieldpositer_close(UFieldPositionIterator * fpositer)36*0e209d39SAndroid Build Coastguard Workerufieldpositer_close(UFieldPositionIterator *fpositer) 37*0e209d39SAndroid Build Coastguard Worker { 38*0e209d39SAndroid Build Coastguard Worker delete (FieldPositionIterator*)fpositer; 39*0e209d39SAndroid Build Coastguard Worker } 40*0e209d39SAndroid Build Coastguard Worker 41*0e209d39SAndroid Build Coastguard Worker 42*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 ufieldpositer_next(UFieldPositionIterator * fpositer,int32_t * beginIndex,int32_t * endIndex)43*0e209d39SAndroid Build Coastguard Workerufieldpositer_next(UFieldPositionIterator *fpositer, 44*0e209d39SAndroid Build Coastguard Worker int32_t *beginIndex, int32_t *endIndex) 45*0e209d39SAndroid Build Coastguard Worker { 46*0e209d39SAndroid Build Coastguard Worker FieldPosition fp; 47*0e209d39SAndroid Build Coastguard Worker int32_t field = -1; 48*0e209d39SAndroid Build Coastguard Worker if (((FieldPositionIterator*)fpositer)->next(fp)) { 49*0e209d39SAndroid Build Coastguard Worker field = fp.getField(); 50*0e209d39SAndroid Build Coastguard Worker if (beginIndex) { 51*0e209d39SAndroid Build Coastguard Worker *beginIndex = fp.getBeginIndex(); 52*0e209d39SAndroid Build Coastguard Worker } 53*0e209d39SAndroid Build Coastguard Worker if (endIndex) { 54*0e209d39SAndroid Build Coastguard Worker *endIndex = fp.getEndIndex(); 55*0e209d39SAndroid Build Coastguard Worker } 56*0e209d39SAndroid Build Coastguard Worker } 57*0e209d39SAndroid Build Coastguard Worker return field; 58*0e209d39SAndroid Build Coastguard Worker } 59*0e209d39SAndroid Build Coastguard Worker 60*0e209d39SAndroid Build Coastguard Worker 61*0e209d39SAndroid Build Coastguard Worker #endif /* #if !UCONFIG_NO_FORMATTING */ 62