ICU 53.1  53.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
usearch.h
Go to the documentation of this file.
1 /*
2 **********************************************************************
3 * Copyright (C) 2001-2011,2014 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 
149 #define USEARCH_DONE -1
150 
155 struct UStringSearch;
161 
165 typedef enum {
171 #ifndef U_HIDE_DEPRECATED_API
172 
187 #endif /* U_HIDE_DEPRECATED_API */
188 
194 
201 
205 typedef enum {
268 
275 
276 /* open and close ------------------------------------------------------ */
277 
300 U_STABLE UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
301  int32_t patternlength,
302  const UChar *text,
303  int32_t textlength,
304  const char *locale,
305  UBreakIterator *breakiter,
306  UErrorCode *status);
307 
333  const UChar *pattern,
334  int32_t patternlength,
335  const UChar *text,
336  int32_t textlength,
337  const UCollator *collator,
338  UBreakIterator *breakiter,
339  UErrorCode *status);
340 
347 U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
348 
349 #if U_SHOW_CPLUSPLUS_API
350 
352 
363 
365 
366 #endif
367 
368 /* get and set methods -------------------------------------------------- */
369 
385 U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
386  int32_t position,
387  UErrorCode *status);
388 
397 U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
398 
410 U_STABLE void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
411  USearchAttribute attribute,
412  USearchAttributeValue value,
413  UErrorCode *status);
414 
424  const UStringSearch *strsrch,
425  USearchAttribute attribute);
426 
446 U_STABLE int32_t U_EXPORT2 usearch_getMatchedStart(
447  const UStringSearch *strsrch);
448 
466 U_STABLE int32_t U_EXPORT2 usearch_getMatchedLength(
467  const UStringSearch *strsrch);
468 
494 U_STABLE int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
495  UChar *result,
496  int32_t resultCapacity,
497  UErrorCode *status);
498 
499 #if !UCONFIG_NO_BREAK_ITERATION
500 
516 U_STABLE void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
517  UBreakIterator *breakiter,
518  UErrorCode *status);
519 
532  const UStringSearch *strsrch);
533 
534 #endif
535 
549 U_STABLE void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
550  const UChar *text,
551  int32_t textlength,
552  UErrorCode *status);
553 
562 U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
563  int32_t *length);
564 
576  const UStringSearch *strsrch);
577 
588 U_STABLE void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
589  const UCollator *collator,
590  UErrorCode *status);
591 
604 U_STABLE void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
605  const UChar *pattern,
606  int32_t patternlength,
607  UErrorCode *status);
608 
617 U_STABLE const UChar * U_EXPORT2 usearch_getPattern(
618  const UStringSearch *strsrch,
619  int32_t *length);
620 
621 /* methods ------------------------------------------------------------- */
622 
638 U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
639  UErrorCode *status);
640 
662 U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
663  int32_t position,
664  UErrorCode *status);
665 
681 U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
682  UErrorCode *status);
683 
709 U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
710  int32_t position,
711  UErrorCode *status);
712 
730 U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
731  UErrorCode *status);
732 
750 U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
751  UErrorCode *status);
752 
763 U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
764 
765 #ifndef U_HIDE_INTERNAL_API
766 
820 U_INTERNAL UBool U_EXPORT2 usearch_search(UStringSearch *strsrch,
821  int32_t startIdx,
822  int32_t *matchStart,
823  int32_t *matchLimit,
824  UErrorCode *status);
825 
881  int32_t startIdx,
882  int32_t *matchStart,
883  int32_t *matchLimit,
884  UErrorCode *status);
885 #endif /* U_HIDE_INTERNAL_API */
886 
887 #endif /* #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION */
888 
889 #endif
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition: ubrk.h:26
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...
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition: usearch.h:220
Count of attribute types.
Definition: usearch.h:199
void usearch_close(UStringSearch *searchiter)
Destroying and cleaning up the search iterator data struct.
"Smart pointer" class, closes a UStringSearch via usearch_close().
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.
int32_t usearch_getMatchedStart(const UStringSearch *strsrch)
Returns the index to the match in the text string that was searched.
const UBreakIterator * usearch_getBreakIterator(const UStringSearch *strsrch)
Returns the BreakIterator that is used to restrict the points at which matches are detected...
void usearch_setCollator(UStringSearch *strsrch, const UCollator *collator, UErrorCode *status)
Sets the collator used for the language rules.
void usearch_reset(UStringSearch *strsrch)
Reset the iteration.
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...
int32_t usearch_first(UStringSearch *strsrch, UErrorCode *status)
Returns the first index at which the string text matches the search pattern.
#define U_INTERNAL
This is used to declare a function as an internal ICU C API.
Definition: umachine.h:117
USearchAttribute
Definition: usearch.h:165
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...
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...
UCollator * usearch_getCollator(const UStringSearch *strsrch)
Gets the collator used for the language rules.
Option for overlapping matches.
Definition: usearch.h:170
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...
Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH.
Definition: usearch.h:215
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.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
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_getMatchedLength(const UStringSearch *strsrch)
Returns the length of text in the string which matches the search pattern.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:290
Option for canonical matches; option 1 in header documentation.
Definition: usearch.h:186
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
Default value for any USearchAttribute.
Definition: usearch.h:210
C API: UCollationElements.
Value for USEARCH_ELEMENT_COMPARISON; collation element comparison is modified to effectively provide...
Definition: usearch.h:246
USearchAttributeValue
Definition: usearch.h:205
C API: Collator.
Count of attribute values.
Definition: usearch.h:273
Value for USEARCH_ELEMENT_COMPARISON.
Definition: usearch.h:267
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:278
void usearch_setPattern(UStringSearch *strsrch, const UChar *pattern, int32_t patternlength, UErrorCode *status)
Sets the pattern used for matching.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
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
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:476
C API: BreakIterator.
Value (default) for USEARCH_ELEMENT_COMPARISON; standard collation element comparison at the specifie...
Definition: usearch.h:227
Option to control how collation elements are compared.
Definition: usearch.h:193
struct UCollator UCollator
structure representing a collator object instance
Definition: ucol.h:56
Basic definitions for ICU, for both C and C++ APIs.
const UChar * usearch_getText(const UStringSearch *strsrch, int32_t *length)
Return the string text to be searched.
int32_t usearch_getOffset(const UStringSearch *strsrch)
Return the current index in the string text being searched.
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.
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.
void usearch_setText(UStringSearch *strsrch, const UChar *text, int32_t textlength, UErrorCode *status)
Set the string text to be searched.
struct UStringSearch UStringSearch
Data structure for searching.
Definition: usearch.h:160
int32_t usearch_previous(UStringSearch *strsrch, UErrorCode *status)
Returns the index of the previous point at which the string text matches the search pattern...
const UChar * usearch_getPattern(const UStringSearch *strsrch, int32_t *length)
Gets the search pattern.
USearchAttributeValue usearch_getAttribute(const UStringSearch *strsrch, USearchAttribute attribute)
Gets the text searching attributes.
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:109
int8_t UBool
The ICU boolean type.
Definition: umachine.h:200
int32_t usearch_last(UStringSearch *strsrch, UErrorCode *status)
Returns the last index in the target text at which it matches the search pattern. ...