ICU 58.2 58.2

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

usearch.h
Go to the documentation of this file.
1 // Copyright (C) 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,
267 USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD,
268
269 #ifndef U_HIDE_DEPRECATED_API
270
274 USEARCH_ATTRIBUTE_VALUE_COUNT
275 #endif // U_HIDE_DEPRECATED_API
276 } USearchAttributeValue;
277
278 /* open and close ------------------------------------------------------ */
279
302 U_STABLE UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
303 int32_t patternlength,
304 const UChar *text,
305 int32_t textlength,
306 const char *locale,
307 UBreakIterator *breakiter,
308 UErrorCode *status);
309
334 U_STABLE UStringSearch * U_EXPORT2 usearch_openFromCollator(
335 const UChar *pattern,
336 int32_t patternlength,
337 const UChar *text,
338 int32_t textlength,
339 const UCollator *collator,
340 UBreakIterator *breakiter,
341 UErrorCode *status);
342
349 U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
350
351 #if U_SHOW_CPLUSPLUS_API
352
353 U_NAMESPACE_BEGIN
354
364 U_DEFINE_LOCAL_OPEN_POINTER(LocalUStringSearchPointer, UStringSearch, usearch_close);
365
366 U_NAMESPACE_END
367
368 #endif
369
370 /* get and set methods -------------------------------------------------- */
371
387 U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
388 int32_t position,
389 UErrorCode *status);
390
399 U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
400
412 U_STABLE void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
413 USearchAttribute attribute,
414 USearchAttributeValue value,
415 UErrorCode *status);
416
425 U_STABLE USearchAttributeValue U_EXPORT2 usearch_getAttribute(
426 const UStringSearch *strsrch,
427 USearchAttribute attribute);
428
448 U_STABLE int32_t U_EXPORT2 usearch_getMatchedStart(
449 const UStringSearch *strsrch);
450
468 U_STABLE int32_t U_EXPORT2 usearch_getMatchedLength(
469 const UStringSearch *strsrch);
470
496 U_STABLE int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
497 UChar *result,
498 int32_t resultCapacity,
499 UErrorCode *status);
500
501 #if !UCONFIG_NO_BREAK_ITERATION
502
518 U_STABLE void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
519 UBreakIterator *breakiter,
520 UErrorCode *status);
521
533 U_STABLE const UBreakIterator * U_EXPORT2 usearch_getBreakIterator(
534 const UStringSearch *strsrch);
535
536 #endif
537
551 U_STABLE void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
552 const UChar *text,
553 int32_t textlength,
554 UErrorCode *status);
555
564 U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
565 int32_t *length);
566
577 U_STABLE UCollator * U_EXPORT2 usearch_getCollator(
578 const UStringSearch *strsrch);
579
590 U_STABLE void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
591 const UCollator *collator,
592 UErrorCode *status);
593
606 U_STABLE void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
607 const UChar *pattern,
608 int32_t patternlength,
609 UErrorCode *status);
610
619 U_STABLE const UChar * U_EXPORT2 usearch_getPattern(
620 const UStringSearch *strsrch,
621 int32_t *length);
622
623 /* methods ------------------------------------------------------------- */
624
640 U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
641 UErrorCode *status);
642
664 U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
665 int32_t position,
666 UErrorCode *status);
667
683 U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
684 UErrorCode *status);
685
711 U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
712 int32_t position,
713 UErrorCode *status);
714
732 U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
733 UErrorCode *status);
734
752 U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
753 UErrorCode *status);
754
765 U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
766
767 #ifndef U_HIDE_INTERNAL_API
768
822 U_INTERNAL UBool U_EXPORT2 usearch_search(UStringSearch *strsrch,
823 int32_t startIdx,
824 int32_t *matchStart,
825 int32_t *matchLimit,
826 UErrorCode *status);
827
882 U_INTERNAL UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch,
883 int32_t startIdx,
884 int32_t *matchStart,
885 int32_t *matchLimit,
886 UErrorCode *status);
887 #endif /* U_HIDE_INTERNAL_API */
888
889 #endif /* #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION */
890
891 #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:142
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:131
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:530
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:274
USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON.
Definition: usearch.h:267
UChar
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
Definition: umachine.h:337
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:132
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:396
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:134
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:259
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. ...