00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef USEARCH_H
00010 #define USEARCH_H
00011
00012 #include "unicode/utypes.h"
00013 #include "unicode/ucol.h"
00014 #include "unicode/ucoleitr.h"
00015 #include "unicode/ubrk.h"
00016
00126 #define USEARCH_DONE -1
00127
00131 struct UStringSearch;
00132 typedef struct UStringSearch UStringSearch;
00133
00134 typedef enum {
00136 USEARCH_OVERLAP,
00141 USEARCH_CANONICAL_MATCH,
00142 USEARCH_ATTRIBUTE_COUNT
00143 } USearchAttribute;
00144
00145 typedef enum {
00147 USEARCH_DEFAULT = -1,
00149 USEARCH_OFF,
00151 USEARCH_ON,
00152 USEARCH_ATTRIBUTE_VALUE_COUNT
00153 } USearchAttributeValue;
00154
00155
00156
00179 U_CAPI UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
00180 int32_t patternlength,
00181 const UChar *text,
00182 int32_t textlength,
00183 const char *locale,
00184 UBreakIterator *breakiter,
00185 UErrorCode *status);
00186
00209 U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator(
00210 const UChar *pattern,
00211 int32_t patternlength,
00212 const UChar *text,
00213 int32_t textlength,
00214 const UCollator *collator,
00215 UBreakIterator *breakiter,
00216 UErrorCode *status);
00217
00224 U_CAPI void U_EXPORT2 usearch_close(UStringSearch *strsrch);
00225
00226
00227
00241 U_CAPI void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
00242 UTextOffset position,
00243 UErrorCode *status);
00244
00252 U_CAPI UTextOffset U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
00253
00265 U_CAPI void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
00266 USearchAttribute attribute,
00267 USearchAttributeValue value,
00268 UErrorCode *status);
00269
00278 U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute(
00279 const UStringSearch *strsrch,
00280 USearchAttribute attribute);
00281
00296 U_CAPI UTextOffset U_EXPORT2 usearch_getMatchedStart(
00297 const UStringSearch *strsrch);
00298
00311 U_CAPI int32_t U_EXPORT2 usearch_getMatchedLength(
00312 const UStringSearch *strsrch);
00313
00334 U_CAPI int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
00335 UChar *result,
00336 int32_t resultCapacity,
00337 UErrorCode *status);
00338
00354 U_CAPI void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
00355 UBreakIterator *breakiter,
00356 UErrorCode *status);
00357
00369 U_CAPI const UBreakIterator * U_EXPORT2 usearch_getBreakIterator(
00370 const UStringSearch *strsrch);
00371
00385 U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
00386 const UChar *text,
00387 int32_t textlength,
00388 UErrorCode *status);
00389
00398 U_CAPI const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
00399 int32_t *length);
00400
00411 U_CAPI UCollator * U_EXPORT2 usearch_getCollator(
00412 const UStringSearch *strsrch);
00413
00424 U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
00425 const UCollator *collator,
00426 UErrorCode *status);
00427
00440 U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
00441 const UChar *pattern,
00442 int32_t patternlength,
00443 UErrorCode *status);
00444
00453 U_CAPI const UChar * U_EXPORT2 usearch_getPattern(
00454 const UStringSearch *strsrch,
00455 int32_t *length);
00456
00457
00458
00472 U_CAPI UTextOffset U_EXPORT2 usearch_first(UStringSearch *strsrch,
00473 UErrorCode *status);
00474
00493 U_CAPI UTextOffset U_EXPORT2 usearch_following(UStringSearch *strsrch,
00494 UTextOffset position,
00495 UErrorCode *status);
00496
00510 U_CAPI UTextOffset U_EXPORT2 usearch_last(UStringSearch *strsrch,
00511 UErrorCode *status);
00512
00530 U_CAPI UTextOffset U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
00531 UTextOffset position,
00532 UErrorCode *status);
00533
00549 U_CAPI UTextOffset U_EXPORT2 usearch_next(UStringSearch *strsrch,
00550 UErrorCode *status);
00551
00566 U_CAPI UTextOffset U_EXPORT2 usearch_previous(UStringSearch *strsrch,
00567 UErrorCode *status);
00568
00578 U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
00579
00580 #endif
00581
00582