ICU 56.1: usearch.h Source File

ICU 56.1 56.1

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

- File List
- Globals

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
145 #define USEARCH_DONE -1
146
151 struct UStringSearch;
156 typedef struct UStringSearch UStringSearch;
157
161 typedef enum {
166 USEARCH_OVERLAP = 0,
167 #ifndef U_HIDE_DEPRECATED_API
168
182 USEARCH_CANONICAL_MATCH = 1,
183 #endif /* U_HIDE_DEPRECATED_API */
184
189 USEARCH_ELEMENT_COMPARISON = 2,
190
195 USEARCH_ATTRIBUTE_COUNT = 3
196 } USearchAttribute;
197
201 typedef enum {
206 USEARCH_DEFAULT = -1,
211 USEARCH_OFF,
216 USEARCH_ON,
223 USEARCH_STANDARD_ELEMENT_COMPARISON,
242 USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD,
263 USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD,
264
269 USEARCH_ATTRIBUTE_VALUE_COUNT
270 } USearchAttributeValue;
271
272 /* open and close ------------------------------------------------------ */
273
296 U_STABLE UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern,
297 int32_t patternlength,
298 const UChar *text,
299 int32_t textlength,
300 const char *locale,
301 UBreakIterator *breakiter,
302 UErrorCode *status);
303
328 U_STABLE UStringSearch * U_EXPORT2 usearch_openFromCollator(
329 const UChar *pattern,
330 int32_t patternlength,
331 const UChar *text,
332 int32_t textlength,
333 const UCollator *collator,
334 UBreakIterator *breakiter,
335 UErrorCode *status);
336
343 U_STABLE void U_EXPORT2 usearch_close(UStringSearch *searchiter);
344
345 #if U_SHOW_CPLUSPLUS_API
346
347 U_NAMESPACE_BEGIN
348
358 U_DEFINE_LOCAL_OPEN_POINTER(LocalUStringSearchPointer, UStringSearch, usearch_close);
359
360 U_NAMESPACE_END
361
362 #endif
363
364 /* get and set methods -------------------------------------------------- */
365
381 U_STABLE void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
382 int32_t position,
383 UErrorCode *status);
384
393 U_STABLE int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
394
406 U_STABLE void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch,
407 USearchAttribute attribute,
408 USearchAttributeValue value,
409 UErrorCode *status);
410
419 U_STABLE USearchAttributeValue U_EXPORT2 usearch_getAttribute(
420 const UStringSearch *strsrch,
421 USearchAttribute attribute);
422
442 U_STABLE int32_t U_EXPORT2 usearch_getMatchedStart(
443 const UStringSearch *strsrch);
444
462 U_STABLE int32_t U_EXPORT2 usearch_getMatchedLength(
463 const UStringSearch *strsrch);
464
490 U_STABLE int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch,
491 UChar *result,
492 int32_t resultCapacity,
493 UErrorCode *status);
494
495 #if !UCONFIG_NO_BREAK_ITERATION
496
512 U_STABLE void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch,
513 UBreakIterator *breakiter,
514 UErrorCode *status);
515
527 U_STABLE const UBreakIterator * U_EXPORT2 usearch_getBreakIterator(
528 const UStringSearch *strsrch);
529
530 #endif
531
545 U_STABLE void U_EXPORT2 usearch_setText( UStringSearch *strsrch,
546 const UChar *text,
547 int32_t textlength,
548 UErrorCode *status);
549
558 U_STABLE const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch,
559 int32_t *length);
560
571 U_STABLE UCollator * U_EXPORT2 usearch_getCollator(
572 const UStringSearch *strsrch);
573
584 U_STABLE void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch,
585 const UCollator *collator,
586 UErrorCode *status);
587
600 U_STABLE void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch,
601 const UChar *pattern,
602 int32_t patternlength,
603 UErrorCode *status);
604
613 U_STABLE const UChar * U_EXPORT2 usearch_getPattern(
614 const UStringSearch *strsrch,
615 int32_t *length);
616
617 /* methods ------------------------------------------------------------- */
618
634 U_STABLE int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch,
635 UErrorCode *status);
636
658 U_STABLE int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch,
659 int32_t position,
660 UErrorCode *status);
661
677 U_STABLE int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch,
678 UErrorCode *status);
679
705 U_STABLE int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch,
706 int32_t position,
707 UErrorCode *status);
708
726 U_STABLE int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch,
727 UErrorCode *status);
728
746 U_STABLE int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch,
747 UErrorCode *status);
748
759 U_STABLE void U_EXPORT2 usearch_reset(UStringSearch *strsrch);
760
761 #ifndef U_HIDE_INTERNAL_API
762
816 U_INTERNAL UBool U_EXPORT2 usearch_search(UStringSearch *strsrch,
817 int32_t startIdx,
818 int32_t *matchStart,
819 int32_t *matchLimit,
820 UErrorCode *status);
821
876 U_INTERNAL UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch,
877 int32_t startIdx,
878 int32_t *matchStart,
879 int32_t *matchLimit,
880 UErrorCode *status);
881 #endif /* U_HIDE_INTERNAL_API */
882
883 #endif /* #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION */
884
885 #endif
UBreakIterator
struct UBreakIterator UBreakIterator
Opaque type representing an ICU Break iterator object.
Definition: ubrk.h:26
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:216
USEARCH_ATTRIBUTE_COUNT
Count of attribute types.
Definition: usearch.h:195
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:117
USearchAttribute
USearchAttribute
Definition: usearch.h:161
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:166
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:211
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:129
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:535
USEARCH_CANONICAL_MATCH
Option for canonical matches; option 1 in header documentation.
Definition: usearch.h:182
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
USEARCH_DEFAULT
Default value for any USearchAttribute.
Definition: usearch.h:206
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:242
USearchAttributeValue
USearchAttributeValue
Definition: usearch.h:201
ucol.h
C API: Collator.
USEARCH_ATTRIBUTE_VALUE_COUNT
Count of attribute values.
Definition: usearch.h:269
USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD
Value for USEARCH_ELEMENT_COMPARISON.
Definition: usearch.h:263
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:312
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:130
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:476
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:223
USEARCH_ELEMENT_COMPARISON
Option to control how collation elements are compared.
Definition: usearch.h:189
UCollator
struct UCollator UCollator
structure representing a collator object instance
Definition: ucol.h:56
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:156
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:109
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
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. ...