ICU 69.1 69.1

usearch.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 **********************************************************************
5 * Copyright (C) 2001-2011,2014 IBM and others. All rights reserved.
6 **********************************************************************
7 * Date Name Description
8 * 06/28/2001 synwee Creation.
9 **********************************************************************
10 */
11 #ifndef USEARCH_H
12 #define USEARCH_H
13
14 #include "unicode/utypes.h"
15
16 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
17
18 #include "unicode/ucol.h"
19 #include "unicode/ucoleitr.h"
20 #include "unicode/ubrk.h"
21
22 #if U_SHOW_CPLUSPLUS_API
23 #include "unicode/localpointer.h"
24 #endif // U_SHOW_CPLUSPLUS_API
25
150 #define USEARCH_DONE -1
151
156 struct UStringSearch;
161 typedef struct UStringSearch UStringSearch;
162
166 typedef enum {
171 USEARCH_OVERLAP = 0,
172 #ifndef U_HIDE_DEPRECATED_API
173
187 USEARCH_CANONICAL_MATCH = 1,
188 #endif /* U_HIDE_DEPRECATED_API */
189
194 USEARCH_ELEMENT_COMPARISON = 2,
195
196 #ifndef U_HIDE_DEPRECATED_API
197
201 USEARCH_ATTRIBUTE_COUNT = 3
202 #endif /* U_HIDE_DEPRECATED_API */
203 } USearchAttribute;
204
208 typedef enum {
213 USEARCH_DEFAULT = -1,
218 USEARCH_OFF,
223 USEARCH_ON,
230 USEARCH_STANDARD_ELEMENT_COMPARISON,
249 USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD,
269 USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD,
270
271 #ifndef U_HIDE_DEPRECATED_API
272
276 USEARCH_ATTRIBUTE_VALUE_COUNT
277 #endif /* U_HIDE_DEPRECATED_API */
278 } USearchAttributeValue;
279
280 /* open and close ------------------------------------------------------ */
281
308 U_CAPI UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
309 int32_t patternlength,
310 const UChar *text,
311 int32_t textlength,
312 const char *locale,
313 UBreakIterator *breakiter,
314 UErrorCode *status);
315
345 U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator(
346 const UChar *pattern,
347 int32_t patternlength,
348 const UChar *text,
349 int32_t textlength,
350 const UCollator *collator,
351 UBreakIterator *breakiter,
352 UErrorCode *status);
353
360 U_CAPI void U_EXPORT2 usearch_close(UStringSearch *searchiter);
361
362 #if U_SHOW_CPLUSPLUS_API
363
364 U_NAMESPACE_BEGIN
365
375 U_DEFINE_LOCAL_OPEN_POINTER(LocalUStringSearchPointer, UStringSearch, usearch_close);
376
377 U_NAMESPACE_END
378
379 #endif
380
381 /* get and set methods -------------------------------------------------- */
382
398 U_CAPI void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
399 int32_t position,
400 UErrorCode *status);
401
410 U_CAPI int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
411
423 U_CAPI void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
424 USearchAttribute attribute,
425 USearchAttributeValue value,
426 UErrorCode *status);
427
436 U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute(
437 const UStringSearch *strsrch,
438 USearchAttribute attribute);
439
459 U_CAPI int32_t U_EXPORT2 usearch_getMatchedStart(
460 const UStringSearch *strsrch);
461
479 U_CAPI int32_t U_EXPORT2 usearch_getMatchedLength(
480 const UStringSearch *strsrch);
481
507 U_CAPI int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
508 UChar *result,
509 int32_t resultCapacity,
510 UErrorCode *status);
511
512 #if !UCONFIG_NO_BREAK_ITERATION
513
529 U_CAPI void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
530 UBreakIterator *breakiter,
531 UErrorCode *status);
532
544 U_CAPI const UBreakIterator * U_EXPORT2 usearch_getBreakIterator(
545 const UStringSearch *strsrch);
546
547 #endif
548
566 U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
567 const UChar *text,
568 int32_t textlength,
569 UErrorCode *status);
570
579 U_CAPI const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
580 int32_t *length);
581
592 U_CAPI UCollator * U_EXPORT2 usearch_getCollator(
593 const UStringSearch *strsrch);
594
605 U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
606 const UCollator *collator,
607 UErrorCode *status);
608
625 U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
626 const UChar *pattern,
627 int32_t patternlength,
628 UErrorCode *status);
629
638 U_CAPI const UChar * U_EXPORT2 usearch_getPattern(
639 const UStringSearch *strsrch,
640 int32_t *length);
641
642 /* methods ------------------------------------------------------------- */
643
659 U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
660 UErrorCode *status);
661
683 U_CAPI int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
684 int32_t position,
685 UErrorCode *status);
686
702 U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
703 UErrorCode *status);
704
730 U_CAPI int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
731 int32_t position,
732 UErrorCode *status);
733
751 U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
752 UErrorCode *status);
753
771 U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
772 UErrorCode *status);
773
784 U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
785
786 #ifndef U_HIDE_INTERNAL_API
787
841 U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch,
842 int32_t startIdx,
843 int32_t *matchStart,
844 int32_t *matchLimit,
845 UErrorCode *status);
846
901 U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch,
902 int32_t startIdx,
903 int32_t *matchStart,
904 int32_t *matchLimit,
905 UErrorCode *status);
906 #endif /* U_HIDE_INTERNAL_API */
907
908 #endif /* #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION */
909
910 #endif
usearch_setText
U_CAPI void usearch_setText(UStringSearch *strsrch, const UChar *text, int32_t textlength, UErrorCode *status)
Set the string text to be searched.
usearch_getMatchedLength
U_CAPI int32_t usearch_getMatchedLength(const UStringSearch *strsrch)
Returns the length of text in the string which matches the search pattern.
usearch_setPattern
U_CAPI void usearch_setPattern(UStringSearch *strsrch, const UChar *pattern, int32_t patternlength, UErrorCode *status)
Sets the pattern used for matching.
USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD
@ USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON.
Definition: usearch.h:269
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
usearch_openFromCollator
U_CAPI UStringSearch * usearch_openFromCollator(const UChar *pattern, int32_t patternlength, const UChar *text, int32_t textlength, const UCollator *collator, UBreakIterator *breakiter, UErrorCode *status)
Creates a String Search iterator data struct using the argument collator language rule set.
ucoleitr.h
C API: UCollationElements.
USEARCH_ELEMENT_COMPARISON
@ USEARCH_ELEMENT_COMPARISON
Option to control how collation elements are compared.
Definition: usearch.h:194
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:269
ubrk.h
C API: BreakIterator.
usearch_getPattern
const U_CAPI UChar * usearch_getPattern(const UStringSearch *strsrch, int32_t *length)
Gets the search pattern.
usearch_setBreakIterator
U_CAPI void usearch_setBreakIterator(UStringSearch *strsrch, UBreakIterator *breakiter, UErrorCode *status)
Set the BreakIterator that will be used to restrict the points at which matches are detected.
LocalUStringSearchPointer
USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD
@ USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON; collation element comparison is modified to effectively provide...
Definition: usearch.h:249
usearch_first
U_CAPI int32_t usearch_first(UStringSearch *strsrch, UErrorCode *status)
Returns the first index at which the string text matches the search pattern.
usearch_setCollator
U_CAPI void usearch_setCollator(UStringSearch *strsrch, const UCollator *collator, UErrorCode *status)
Sets the collator used for the language rules.
USEARCH_OFF
@ USEARCH_OFF
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition: usearch.h:218
USEARCH_ON
@ USEARCH_ON
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition: usearch.h:223
USearchAttributeValue
USearchAttributeValue
Definition: usearch.h:208
usearch_last
U_CAPI int32_t usearch_last(UStringSearch *strsrch, UErrorCode *status)
Returns the last index in the target text at which it matches the search pattern.
usearch_close
U_CAPI void usearch_close(UStringSearch *searchiter)
Destroys and cleans up the String Search iterator data struct.
USearchAttribute
USearchAttribute
Definition: usearch.h:166
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
usearch_getText
const U_CAPI UChar * usearch_getText(const UStringSearch *strsrch, int32_t *length)
Return the string text to be searched.
usearch_preceding
U_CAPI int32_t usearch_preceding(UStringSearch *strsrch, int32_t position, UErrorCode *status)
Returns the first index less than position at which the string text matches the search pattern.
usearch_following
U_CAPI int32_t usearch_following(UStringSearch *strsrch, int32_t position, UErrorCode *status)
Returns the first index equal or greater than position at which the string text matches the search pa...
UCollator
struct UCollator UCollator
structure representing a collator object instance
Definition: ucol.h:61
usearch_reset
U_CAPI void usearch_reset(UStringSearch *strsrch)
Reset the iteration.
usearch_getBreakIterator
const U_CAPI UBreakIterator * usearch_getBreakIterator(const UStringSearch *strsrch)
Returns the BreakIterator that is used to restrict the points at which matches are detected.
USEARCH_CANONICAL_MATCH
@ USEARCH_CANONICAL_MATCH
Option for canonical matches; option 1 in header documentation.
Definition: usearch.h:187
usearch_getMatchedText
U_CAPI int32_t usearch_getMatchedText(const UStringSearch *strsrch, UChar *result, int32_t resultCapacity, UErrorCode *status)
Returns the text that was matched by the most recent call to usearch_first, usearch_next,...
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
Definition: localpointer.h:550
usearch_search
U_CAPI UBool usearch_search(UStringSearch *strsrch, int32_t startIdx, int32_t *matchStart, int32_t *matchLimit, UErrorCode *status)
Simple forward search for the pattern, starting at a specified index, and using a default set search ...
usearch_setAttribute
U_CAPI void usearch_setAttribute(UStringSearch *strsrch, USearchAttribute attribute, USearchAttributeValue value, UErrorCode *status)
Sets the text searching attributes located in the enum USearchAttribute with values from the enum USe...
usearch_next
U_CAPI int32_t usearch_next(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the next point at which the string text matches the search pattern,...
usearch_open
U_CAPI UStringSearch * usearch_open(const UChar *pattern, int32_t patternlength, const UChar *text, int32_t textlength, const char *locale, UBreakIterator *breakiter, UErrorCode *status)
Creates a String Search iterator data struct using the argument locale language rule set.
usearch_previous
U_CAPI int32_t usearch_previous(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the previous point at which the string text matches the search pattern,...
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
usearch_getMatchedStart
U_CAPI int32_t usearch_getMatchedStart(const UStringSearch *strsrch)
Returns the index to the match in the text string that was searched.
UStringSearch
struct UStringSearch UStringSearch
Data structure for searching.
Definition: usearch.h:161
usearch_getAttribute
U_CAPI USearchAttributeValue usearch_getAttribute(const UStringSearch *strsrch, USearchAttribute attribute)
Gets the text searching attributes.
UChar
char16_t UChar
Definition: umachine.h:418
UBreakIterator
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition: ubrk.h:31
USEARCH_STANDARD_ELEMENT_COMPARISON
@ USEARCH_STANDARD_ELEMENT_COMPARISON
Value (default) for USEARCH_ELEMENT_COMPARISON; standard collation element comparison at the specifie...
Definition: usearch.h:230
usearch_searchBackwards
U_CAPI UBool usearch_searchBackwards(UStringSearch *strsrch, int32_t startIdx, int32_t *matchStart, int32_t *matchLimit, UErrorCode *status)
Simple backwards search for the pattern, starting at a specified index, and using using a default set...
USEARCH_OVERLAP
@ USEARCH_OVERLAP
Option for overlapping matches.
Definition: usearch.h:171
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
usearch_getCollator
U_CAPI UCollator * usearch_getCollator(const UStringSearch *strsrch)
Gets the collator used for the language rules.
usearch_setOffset
U_CAPI void usearch_setOffset(UStringSearch *strsrch, int32_t position, UErrorCode *status)
Sets the current position in the text string which the next search will start from.
USEARCH_ATTRIBUTE_COUNT
@ USEARCH_ATTRIBUTE_COUNT
One more than the highest normal USearchAttribute value.
Definition: usearch.h:201
ucol.h
C API: Collator.
USEARCH_ATTRIBUTE_VALUE_COUNT
@ USEARCH_ATTRIBUTE_VALUE_COUNT
One more than the highest normal USearchAttributeValue value.
Definition: usearch.h:276
USEARCH_DEFAULT
@ USEARCH_DEFAULT
Default value for any USearchAttribute.
Definition: usearch.h:213
usearch_getOffset
U_CAPI int32_t usearch_getOffset(const UStringSearch *strsrch)
Return the current index in the string text being searched.