ICU 63.1 63.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/localpointer.h"
19 #include "unicode/ucol.h"
20 #include "unicode/ucoleitr.h"
21 #include "unicode/ubrk.h"
22
147 #define USEARCH_DONE -1
148
153 struct UStringSearch;
158 typedef struct UStringSearch UStringSearch;
159
163 typedef enum {
168 USEARCH_OVERLAP = 0,
169 #ifndef U_HIDE_DEPRECATED_API
170
184 USEARCH_CANONICAL_MATCH = 1,
185 #endif /* U_HIDE_DEPRECATED_API */
186
191 USEARCH_ELEMENT_COMPARISON = 2,
192
193 #ifndef U_HIDE_DEPRECATED_API
194
198 USEARCH_ATTRIBUTE_COUNT = 3
199 #endif /* U_HIDE_DEPRECATED_API */
200 } USearchAttribute;
201
205 typedef enum {
210 USEARCH_DEFAULT = -1,
215 USEARCH_OFF,
220 USEARCH_ON,
227 USEARCH_STANDARD_ELEMENT_COMPARISON,
246 USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD,
266 USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD,
267
268 #ifndef U_HIDE_DEPRECATED_API
269
273 USEARCH_ATTRIBUTE_VALUE_COUNT
274 #endif /* U_HIDE_DEPRECATED_API */
275 } USearchAttributeValue;
276
277 /* open and close ------------------------------------------------------ */
278
301 U_STABLE UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
302 int32_t patternlength,
303 const UChar *text,
304 int32_t textlength,
305 const char *locale,
306 UBreakIterator *breakiter,
307 UErrorCode *status);
308
333 U_STABLE UStringSearch * U_EXPORT2 usearch_openFromCollator(
334 const UChar *pattern,
335 int32_t patternlength,
336 const UChar *text,
337 int32_t textlength,
338 const UCollator *collator,
339 UBreakIterator *breakiter,
340 UErrorCode *status);
341
348 U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
349
350 #if U_SHOW_CPLUSPLUS_API
351
352 U_NAMESPACE_BEGIN
353
363 U_DEFINE_LOCAL_OPEN_POINTER(LocalUStringSearchPointer, UStringSearch, usearch_close);
364
365 U_NAMESPACE_END
366
367 #endif
368
369 /* get and set methods -------------------------------------------------- */
370
386 U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
387 int32_t position,
388 UErrorCode *status);
389
398 U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
399
411 U_STABLE void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
412 USearchAttribute attribute,
413 USearchAttributeValue value,
414 UErrorCode *status);
415
424 U_STABLE USearchAttributeValue U_EXPORT2 usearch_getAttribute(
425 const UStringSearch *strsrch,
426 USearchAttribute attribute);
427
447 U_STABLE int32_t U_EXPORT2 usearch_getMatchedStart(
448 const UStringSearch *strsrch);
449
467 U_STABLE int32_t U_EXPORT2 usearch_getMatchedLength(
468 const UStringSearch *strsrch);
469
495 U_STABLE int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
496 UChar *result,
497 int32_t resultCapacity,
498 UErrorCode *status);
499
500 #if !UCONFIG_NO_BREAK_ITERATION
501
517 U_STABLE void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
518 UBreakIterator *breakiter,
519 UErrorCode *status);
520
532 U_STABLE const UBreakIterator * U_EXPORT2 usearch_getBreakIterator(
533 const UStringSearch *strsrch);
534
535 #endif
536
550 U_STABLE void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
551 const UChar *text,
552 int32_t textlength,
553 UErrorCode *status);
554
563 U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
564 int32_t *length);
565
576 U_STABLE UCollator * U_EXPORT2 usearch_getCollator(
577 const UStringSearch *strsrch);
578
589 U_STABLE void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
590 const UCollator *collator,
591 UErrorCode *status);
592
605 U_STABLE void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
606 const UChar *pattern,
607 int32_t patternlength,
608 UErrorCode *status);
609
618 U_STABLE const UChar * U_EXPORT2 usearch_getPattern(
619 const UStringSearch *strsrch,
620 int32_t *length);
621
622 /* methods ------------------------------------------------------------- */
623
639 U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
640 UErrorCode *status);
641
663 U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
664 int32_t position,
665 UErrorCode *status);
666
682 U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
683 UErrorCode *status);
684
710 U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
711 int32_t position,
712 UErrorCode *status);
713
731 U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
732 UErrorCode *status);
733
751 U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
752 UErrorCode *status);
753
764 U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
765
766 #ifndef U_HIDE_INTERNAL_API
767
821 U_INTERNAL UBool U_EXPORT2 usearch_search(UStringSearch *strsrch,
822 int32_t startIdx,
823 int32_t *matchStart,
824 int32_t *matchLimit,
825 UErrorCode *status);
826
881 U_INTERNAL UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch,
882 int32_t startIdx,
883 int32_t *matchStart,
884 int32_t *matchLimit,
885 UErrorCode *status);
886 #endif /* U_HIDE_INTERNAL_API */
887
888 #endif /* #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION */
889
890 #endif
UBreakIterator
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition: ubrk.h:28
usearch_following
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...
USEARCH_ON
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition: usearch.h:220
USEARCH_ATTRIBUTE_COUNT
One more than the highest normal USearchAttribute value.
Definition: usearch.h:198
usearch_close
void usearch_close(UStringSearch *searchiter)
Destroying and cleaning up the search iterator data struct.
LocalUStringSearchPointer
"Smart pointer" class, closes a UStringSearch via usearch_close().
usearch_openFromCollator
UStringSearch * usearch_openFromCollator(const UChar *pattern, int32_t patternlength, const UChar *text, int32_t textlength, const UCollator *collator, UBreakIterator *breakiter, UErrorCode *status)
Creating a search iterator data struct using the argument collator language rule set.
usearch_getMatchedStart
int32_t usearch_getMatchedStart(const UStringSearch *strsrch)
Returns the index to the match in the text string that was searched.
usearch_getBreakIterator
const UBreakIterator * usearch_getBreakIterator(const UStringSearch *strsrch)
Returns the BreakIterator that is used to restrict the points at which matches are detected...
usearch_setCollator
void usearch_setCollator(UStringSearch *strsrch, const UCollator *collator, UErrorCode *status)
Sets the collator used for the language rules.
usearch_reset
void usearch_reset(UStringSearch *strsrch)
Reset the iteration.
usearch_preceding
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_first
int32_t usearch_first(UStringSearch *strsrch, UErrorCode *status)
Returns the first index at which the string text matches the search pattern.
U_INTERNAL
#define U_INTERNAL
This is used to declare a function as an internal ICU C API.
Definition: umachine.h:119
USearchAttribute
USearchAttribute
Definition: usearch.h:163
usearch_setAttribute
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_searchBackwards
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_getCollator
UCollator * usearch_getCollator(const UStringSearch *strsrch)
Gets the collator used for the language rules.
USEARCH_OVERLAP
Option for overlapping matches.
Definition: usearch.h:168
usearch_search
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 using a default set s...
USEARCH_OFF
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition: usearch.h:215
usearch_getMatchedText
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, usearch_previous, or usearch_last.
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:137
usearch_setOffset
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_getMatchedLength
int32_t usearch_getMatchedLength(const UStringSearch *strsrch)
Returns the length of text in the string which matches the search pattern.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:487
USEARCH_CANONICAL_MATCH
Option for canonical matches; option 1 in header documentation.
Definition: usearch.h:184
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
USEARCH_DEFAULT
Default value for any USearchAttribute.
Definition: usearch.h:210
ucoleitr.h
C API: UCollationElements.
USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON; collation element comparison is modified to effectively provide...
Definition: usearch.h:246
USearchAttributeValue
USearchAttributeValue
Definition: usearch.h:205
ucol.h
C API: Collator.
USEARCH_ATTRIBUTE_VALUE_COUNT
One more than the highest normal USearchAttributeValue value.
Definition: usearch.h:273
USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON.
Definition: usearch.h:266
UChar
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:342
usearch_setPattern
void usearch_setPattern(UStringSearch *strsrch, const UChar *pattern, int32_t patternlength, UErrorCode *status)
Sets the pattern used for matching.
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:138
usearch_setBreakIterator
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...
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:401
ubrk.h
C API: BreakIterator.
USEARCH_STANDARD_ELEMENT_COMPARISON
Value (default) for USEARCH_ELEMENT_COMPARISON; standard collation element comparison at the specifie...
Definition: usearch.h:227
USEARCH_ELEMENT_COMPARISON
Option to control how collation elements are compared.
Definition: usearch.h:191
UCollator
struct UCollator UCollator
structure representing a collator object instance
Definition: ucol.h:58
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
usearch_getText
const UChar * usearch_getText(const UStringSearch *strsrch, int32_t *length)
Return the string text to be searched.
usearch_getOffset
int32_t usearch_getOffset(const UStringSearch *strsrch)
Return the current index in the string text being searched.
usearch_next
int32_t usearch_next(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the next point at which the string text matches the search pattern, starting from the current position.
usearch_open
UStringSearch * usearch_open(const UChar *pattern, int32_t patternlength, const UChar *text, int32_t textlength, const char *locale, UBreakIterator *breakiter, UErrorCode *status)
Creating a search iterator data struct using the argument locale language rule set.
usearch_setText
void usearch_setText(UStringSearch *strsrch, const UChar *text, int32_t textlength, UErrorCode *status)
Set the string text to be searched.
UStringSearch
struct UStringSearch UStringSearch
Data structure for searching.
Definition: usearch.h:158
usearch_previous
int32_t usearch_previous(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the previous point at which the string text matches the search pattern...
usearch_getPattern
const UChar * usearch_getPattern(const UStringSearch *strsrch, int32_t *length)
Gets the search pattern.
usearch_getAttribute
USearchAttributeValue usearch_getAttribute(const UStringSearch *strsrch, USearchAttribute attribute)
Gets the text searching attributes.
U_STABLE
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:225
usearch_last
int32_t usearch_last(UStringSearch *strsrch, UErrorCode *status)
Returns the last index in the target text at which it matches the search pattern. ...