ICU 57.1 57.1
search.h
Go to the documentation of this file.
1/*
2**********************************************************************
3* Copyright (C) 2001-2011 IBM and others. All rights reserved.
4**********************************************************************
5* Date Name Description
6* 03/22/2000 helena Creation.
7**********************************************************************
8*/
9
10#ifndef SEARCH_H
11#define SEARCH_H
12
13#include "unicode/utypes.h"
14
19
20#if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
21
22#include "unicode/uobject.h"
23#include "unicode/unistr.h"
24#include "unicode/chariter.h"
25#include "unicode/brkiter.h"
26#include "unicode/usearch.h"
27
31struct USearch;
35typedef struct USearch USearch;
36
38
80
81public:
82
83 // public constructors and destructors -------------------------------
84
92
97 virtual ~SearchIterator();
98
99 // public get and set methods ----------------------------------------
100
114 virtual void setOffset(int32_t position, UErrorCode &status) = 0;
115
124 virtual int32_t getOffset(void) const = 0;
125
137 UErrorCode &status);
138
146
163 int32_t getMatchedStart(void) const;
164
179 int32_t getMatchedLength(void) const;
180
195 void getMatchedText(UnicodeString &result) const;
196
212 void setBreakIterator(BreakIterator *breakiter, UErrorCode &status);
213
224 const BreakIterator * getBreakIterator(void) const;
225
236 virtual void setText(const UnicodeString &text, UErrorCode &status);
237
253 virtual void setText(CharacterIterator &text, UErrorCode &status);
254
260 const UnicodeString & getText(void) const;
261
262 // operator overloading ----------------------------------------------
263
272 virtual UBool operator==(const SearchIterator &that) const;
273
280 UBool operator!=(const SearchIterator &that) const;
281
282 // public methods ----------------------------------------------------
283
291 virtual SearchIterator* safeClone(void) const = 0;
292
306 int32_t first(UErrorCode &status);
307
325 int32_t following(int32_t position, UErrorCode &status);
326
340 int32_t last(UErrorCode &status);
341
365 int32_t preceding(int32_t position, UErrorCode &status);
366
381 int32_t next(UErrorCode &status);
382
396 int32_t previous(UErrorCode &status);
397
406 virtual void reset();
407
408protected:
409 // protected data members ---------------------------------------------
410
416
426
432
433 // protected constructors and destructors -----------------------------
434
441
458 BreakIterator *breakiter = NULL);
459
480
481 // protected methods --------------------------------------------------
482
490
510 virtual int32_t handleNext(int32_t position, UErrorCode &status)
511 = 0;
512
532 virtual int32_t handlePrev(int32_t position, UErrorCode &status)
533 = 0;
534
545 virtual void setMatchLength(int32_t length);
546
557 virtual void setMatchStart(int32_t position);
558
564};
565
567{
568 return !operator==(that);
569}
571
572#endif /* #if !UCONFIG_NO_COLLATION */
573
574#endif
575
C++ API: Break Iterator.
C++ API: Character Iterator.
The BreakIterator class implements methods for finding the location of boundaries in text.
Definition brkiter.h:100
Abstract class that defines an API for iteration on text objects.
Definition chariter.h:356
SearchIterator(CharacterIterator &text, BreakIterator *breakiter=NULL)
Constructor for use by subclasses.
virtual void setMatchStart(int32_t position)
Sets the offset of the currently matched string in the text string to be searched.
virtual void setOffset(int32_t position, UErrorCode &status)=0
Sets the index to point to the given position, and clears any state that's affected.
void getMatchedText(UnicodeString &result) const
Returns the text that was matched by the most recent call to first, next, previous,...
virtual void setText(CharacterIterator &text, UErrorCode &status)
Set the string text to be searched.
int32_t getMatchedLength(void) const
Returns the length of text in the string which matches the search pattern.
UBool operator!=(const SearchIterator &that) const
Not-equal operator.
Definition search.h:566
virtual void setText(const UnicodeString &text, UErrorCode &status)
Set the string text to be searched.
const UnicodeString & getText(void) const
Return the string text to be searched.
virtual int32_t handleNext(int32_t position, UErrorCode &status)=0
Abstract method which subclasses override to provide the mechanism for finding the next match in the ...
virtual void setMatchLength(int32_t length)
Sets the length of the currently matched string in the text string to be searched.
void setMatchNotFound()
sets match not found
BreakIterator * m_breakiterator_
Break iterator.
Definition search.h:425
const BreakIterator * getBreakIterator(void) const
Returns the BreakIterator that is used to restrict the points at which matches are detected.
virtual SearchIterator * safeClone(void) const =0
Returns a copy of SearchIterator with the same behavior, and iterating over the same text,...
USearch * m_search_
C search data struct.
Definition search.h:415
virtual int32_t getOffset(void) const =0
Return the current index in the text being searched.
USearchAttributeValue getAttribute(USearchAttribute attribute) const
Gets the text searching attributes.
SearchIterator()
Default constructor.
int32_t preceding(int32_t position, UErrorCode &status)
Returns the first index less than position at which the string text matches the search pattern.
void setBreakIterator(BreakIterator *breakiter, UErrorCode &status)
Set the BreakIterator that will be used to restrict the points at which matches are detected.
int32_t previous(UErrorCode &status)
Returns the index of the previous point at which the string text matches the search pattern,...
int32_t following(int32_t position, UErrorCode &status)
Returns the first index equal or greater than position at which the string text matches the search pa...
int32_t last(UErrorCode &status)
Returns the last index in the target text at which it matches the search pattern.
SearchIterator(const UnicodeString &text, BreakIterator *breakiter=NULL)
Constructor for use by subclasses.
int32_t getMatchedStart(void) const
Returns the index to the match in the text string that was searched.
int32_t next(UErrorCode &status)
Returns the index of the next point at which the text matches the search pattern, starting from the c...
SearchIterator & operator=(const SearchIterator &that)
Assignment operator.
virtual ~SearchIterator()
Destructor.
SearchIterator(const SearchIterator &other)
Copy constructor that creates a SearchIterator instance with the same behavior, and iterating over th...
int32_t first(UErrorCode &status)
Returns the first index at which the string text matches the search pattern.
virtual void reset()
Resets the iteration.
virtual UBool operator==(const SearchIterator &that) const
Equality operator.
void setAttribute(USearchAttribute attribute, USearchAttributeValue value, UErrorCode &status)
Sets the text searching attributes located in the enum USearchAttribute with values from the enum USe...
UnicodeString m_text_
Unicode string version of the search text.
Definition search.h:431
virtual int32_t handlePrev(int32_t position, UErrorCode &status)=0
Abstract method which subclasses override to provide the mechanism for finding the previous match in ...
UObject is the common ICU "boilerplate" class.
Definition uobject.h:221
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:294
struct USearch USearch
Definition search.h:35
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
int8_t UBool
The ICU boolean type.
Definition umachine.h:234
C++ API: Unicode String.
C++ API: Common ICU base class UObject.
C API: StringSearch.
USearchAttribute
Definition usearch.h:161
USearchAttributeValue
Definition usearch.h:201
Basic definitions for ICU, for both C and C++ APIs.
#define NULL
Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.
Definition utypes.h:186
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition utypes.h:476
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition utypes.h:358
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:129