ICU 50.1.2  50.1.2
usearch.h
Go to the documentation of this file.
1 /*
2 **********************************************************************
3 * Copyright (C) 2001-2011 IBM and others. All rights reserved.
4 **********************************************************************
5 * Date Name Description
6 * 06/28/2001 synwee Creation.
7 **********************************************************************
8 */
9 #ifndef USEARCH_H
10 #define USEARCH_H
11 
12 #include "unicode/utypes.h"
13 
14 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
15 
16 #include "unicode/localpointer.h"
17 #include "unicode/ucol.h"
18 #include "unicode/ucoleitr.h"
19 #include "unicode/ubrk.h"
20 
140 #define USEARCH_DONE -1
141 
146 struct UStringSearch;
152 
156 typedef enum {
170 
171  USEARCH_ATTRIBUTE_COUNT
173 
177 typedef enum {
219 
220  USEARCH_ATTRIBUTE_VALUE_COUNT
222 
223 /* open and close ------------------------------------------------------ */
224 
247 U_STABLE UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
248  int32_t patternlength,
249  const UChar *text,
250  int32_t textlength,
251  const char *locale,
252  UBreakIterator *breakiter,
253  UErrorCode *status);
254 
280  const UChar *pattern,
281  int32_t patternlength,
282  const UChar *text,
283  int32_t textlength,
284  const UCollator *collator,
285  UBreakIterator *breakiter,
286  UErrorCode *status);
287 
294 U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
295 
296 #if U_SHOW_CPLUSPLUS_API
297 
299 
310 
312 
313 #endif
314 
315 /* get and set methods -------------------------------------------------- */
316 
332 U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
333  int32_t position,
334  UErrorCode *status);
335 
344 U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
345 
357 U_STABLE void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
358  USearchAttribute attribute,
359  USearchAttributeValue value,
360  UErrorCode *status);
361 
371  const UStringSearch *strsrch,
372  USearchAttribute attribute);
373 
393 U_STABLE int32_t U_EXPORT2 usearch_getMatchedStart(
394  const UStringSearch *strsrch);
395 
413 U_STABLE int32_t U_EXPORT2 usearch_getMatchedLength(
414  const UStringSearch *strsrch);
415 
441 U_STABLE int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
442  UChar *result,
443  int32_t resultCapacity,
444  UErrorCode *status);
445 
446 #if !UCONFIG_NO_BREAK_ITERATION
447 
463 U_STABLE void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
464  UBreakIterator *breakiter,
465  UErrorCode *status);
466 
479  const UStringSearch *strsrch);
480 
481 #endif
482 
496 U_STABLE void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
497  const UChar *text,
498  int32_t textlength,
499  UErrorCode *status);
500 
509 U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
510  int32_t *length);
511 
523  const UStringSearch *strsrch);
524 
535 U_STABLE void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
536  const UCollator *collator,
537  UErrorCode *status);
538 
551 U_STABLE void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
552  const UChar *pattern,
553  int32_t patternlength,
554  UErrorCode *status);
555 
564 U_STABLE const UChar * U_EXPORT2 usearch_getPattern(
565  const UStringSearch *strsrch,
566  int32_t *length);
567 
568 /* methods ------------------------------------------------------------- */
569 
585 U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
586  UErrorCode *status);
587 
609 U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
610  int32_t position,
611  UErrorCode *status);
612 
628 U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
629  UErrorCode *status);
630 
656 U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
657  int32_t position,
658  UErrorCode *status);
659 
677 U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
678  UErrorCode *status);
679 
697 U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
698  UErrorCode *status);
699 
710 U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
711 
712 #ifndef U_HIDE_INTERNAL_API
713 
767 U_INTERNAL UBool U_EXPORT2 usearch_search(UStringSearch *strsrch,
768  int32_t startIdx,
769  int32_t *matchStart,
770  int32_t *matchLimit,
771  UErrorCode *status);
772 
828  int32_t startIdx,
829  int32_t *matchStart,
830  int32_t *matchLimit,
831  UErrorCode *status);
832 #endif /* U_HIDE_INTERNAL_API */
833 
834 #endif /* #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION */
835 
836 #endif