ICU 62.1 62.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
19#include "unicode/ucol.h"
20#include "unicode/ucoleitr.h"
21#include "unicode/ubrk.h"
22
147#define USEARCH_DONE -1
148
153struct UStringSearch;
159
163typedef enum {
169#ifndef U_HIDE_DEPRECATED_API
185#endif /* U_HIDE_DEPRECATED_API */
192
193#ifndef U_HIDE_DEPRECATED_API
199#endif /* U_HIDE_DEPRECATED_API */
201
277
278/* open and close ------------------------------------------------------ */
279
302U_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
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
349U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
350
351#if U_SHOW_CPLUSPLUS_API
352
354
365
367
368#endif
369
370/* get and set methods -------------------------------------------------- */
371
387U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
388 int32_t position,
389 UErrorCode *status);
390
399U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
400
413 USearchAttribute attribute,
415 UErrorCode *status);
416
426 const UStringSearch *strsrch,
427 USearchAttribute attribute);
428
449 const UStringSearch *strsrch);
450
469 const UStringSearch *strsrch);
470
496U_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
519 UBreakIterator *breakiter,
520 UErrorCode *status);
521
534 const UStringSearch *strsrch);
535
536#endif
537
551U_STABLE void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
552 const UChar *text,
553 int32_t textlength,
554 UErrorCode *status);
555
564U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
565 int32_t *length);
566
578 const UStringSearch *strsrch);
579
591 const UCollator *collator,
592 UErrorCode *status);
593
606U_STABLE void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
607 const UChar *pattern,
608 int32_t patternlength,
609 UErrorCode *status);
610
620 const UStringSearch *strsrch,
621 int32_t *length);
622
623/* methods ------------------------------------------------------------- */
624
640U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
641 UErrorCode *status);
642
664U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
665 int32_t position,
666 UErrorCode *status);
667
683U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
684 UErrorCode *status);
685
711U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
712 int32_t position,
713 UErrorCode *status);
714
732U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
733 UErrorCode *status);
734
752U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
753 UErrorCode *status);
754
765U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
766
767#ifndef U_HIDE_INTERNAL_API
823 int32_t startIdx,
824 int32_t *matchStart,
825 int32_t *matchLimit,
826 UErrorCode *status);
827
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
"Smart pointer" class, closes a UStringSearch via usearch_close().
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
C API: BreakIterator.
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition ubrk.h:28
C API: Collator.
struct UCollator UCollator
structure representing a collator object instance
Definition ucol.h:58
C API: UCollationElements.
#define U_INTERNAL
This is used to declare a function as an internal ICU C API
Definition umachine.h:119
int8_t UBool
The ICU boolean type.
Definition umachine.h:236
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition umachine.h:353
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition umachine.h:111
void usearch_setText(UStringSearch *strsrch, const UChar *text, int32_t textlength, UErrorCode *status)
Set the string text to be searched.
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.
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,...
USearchAttributeValue usearch_getAttribute(const UStringSearch *strsrch, USearchAttribute attribute)
Gets the text searching attributes.
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...
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...
int32_t usearch_getMatchedLength(const UStringSearch *strsrch)
Returns the length of text in the string which matches the search pattern.
int32_t usearch_next(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the next point at which the string text matches the search pattern,...
void usearch_reset(UStringSearch *strsrch)
Reset the iteration.
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.
void usearch_close(UStringSearch *searchiter)
Destroying and cleaning up the search iterator data struct.
const UBreakIterator * usearch_getBreakIterator(const UStringSearch *strsrch)
Returns the BreakIterator that is used to restrict the points at which matches are detected.
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.
int32_t usearch_previous(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the previous point at which the string text matches the search pattern,...
UCollator * usearch_getCollator(const UStringSearch *strsrch)
Gets the collator used for the language rules.
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.
int32_t usearch_getMatchedStart(const UStringSearch *strsrch)
Returns the index to the match in the text string that was searched.
const UChar * usearch_getPattern(const UStringSearch *strsrch, int32_t *length)
Gets the search pattern.
void usearch_setPattern(UStringSearch *strsrch, const UChar *pattern, int32_t patternlength, UErrorCode *status)
Sets the pattern used for matching.
USearchAttribute
Definition usearch.h:163
@ USEARCH_CANONICAL_MATCH
Option for canonical matches; option 1 in header documentation.
Definition usearch.h:184
@ USEARCH_ELEMENT_COMPARISON
Option to control how collation elements are compared.
Definition usearch.h:191
@ USEARCH_OVERLAP
Option for overlapping matches.
Definition usearch.h:168
@ USEARCH_ATTRIBUTE_COUNT
One more than the highest normal USearchAttribute value.
Definition usearch.h:198
int32_t usearch_last(UStringSearch *strsrch, UErrorCode *status)
Returns the last index in the target text at which it matches the search pattern.
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...
struct UStringSearch UStringSearch
Data structure for searching.
Definition usearch.h:158
const UChar * usearch_getText(const UStringSearch *strsrch, int32_t *length)
Return the string text to be searched.
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.
void usearch_setCollator(UStringSearch *strsrch, const UCollator *collator, UErrorCode *status)
Sets the collator used for the language rules.
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...
int32_t usearch_getOffset(const UStringSearch *strsrch)
Return the current index in the string text being searched.
int32_t usearch_first(UStringSearch *strsrch, UErrorCode *status)
Returns the first index at which the string text matches the search pattern.
USearchAttributeValue
Definition usearch.h:205
@ USEARCH_ATTRIBUTE_VALUE_COUNT
One more than the highest normal USearchAttributeValue value.
Definition usearch.h:274
@ USEARCH_DEFAULT
Default value for any USearchAttribute.
Definition usearch.h:210
@ USEARCH_OFF
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition usearch.h:215
@ USEARCH_ON
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition usearch.h:220
@ USEARCH_STANDARD_ELEMENT_COMPARISON
Value (default) for USEARCH_ELEMENT_COMPARISON; standard collation element comparison at the specifie...
Definition usearch.h:227
@ USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON; collation element comparison is modified to effectively provide...
Definition usearch.h:246
@ USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON.
Definition usearch.h:267
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition utypes.h:396
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137