"Fossies" - the Fresh Open Source Software Archive

Member "search_8h_source.html" (3 Oct 2019, 33930 Bytes) of package /linux/misc/icu4c-65_1-docs.zip:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

ICU 65.1  65.1
search.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 IBM and others. All rights reserved.
6 **********************************************************************
7 * Date Name Description
8 * 03/22/2000 helena Creation.
9 **********************************************************************
10 */
11 
12 #ifndef SEARCH_H
13 #define SEARCH_H
14 
15 #include "unicode/utypes.h"
16 
17 #if U_SHOW_CPLUSPLUS_API
18 
24 #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION
25 
26 #include "unicode/uobject.h"
27 #include "unicode/unistr.h"
28 #include "unicode/chariter.h"
29 #include "unicode/brkiter.h"
30 #include "unicode/usearch.h"
31 
35 struct USearch;
39 typedef struct USearch USearch;
40 
41 U_NAMESPACE_BEGIN
42 
83 
84 public:
85 
86  // public constructors and destructors -------------------------------
87 
94  SearchIterator(const SearchIterator &other);
95 
100  virtual ~SearchIterator();
101 
102  // public get and set methods ----------------------------------------
103 
117  virtual void setOffset(int32_t position, UErrorCode &status) = 0;
118 
127  virtual int32_t getOffset(void) const = 0;
128 
138  void setAttribute(USearchAttribute attribute,
139  USearchAttributeValue value,
140  UErrorCode &status);
141 
148  USearchAttributeValue getAttribute(USearchAttribute attribute) const;
149 
166  int32_t getMatchedStart(void) const;
167 
182  int32_t getMatchedLength(void) const;
183 
198  void getMatchedText(UnicodeString &result) const;
199 
215  void setBreakIterator(BreakIterator *breakiter, UErrorCode &status);
216 
227  const BreakIterator * getBreakIterator(void) const;
228 
239  virtual void setText(const UnicodeString &text, UErrorCode &status);
240 
256  virtual void setText(CharacterIterator &text, UErrorCode &status);
257 
263  const UnicodeString & getText(void) const;
264 
265  // operator overloading ----------------------------------------------
266 
275  virtual UBool operator==(const SearchIterator &that) const;
276 
283  UBool operator!=(const SearchIterator &that) const;
284 
285  // public methods ----------------------------------------------------
286 
294  virtual SearchIterator* safeClone(void) const = 0;
295 
309  int32_t first(UErrorCode &status);
310 
328  int32_t following(int32_t position, UErrorCode &status);
329 
343  int32_t last(UErrorCode &status);
344 
368  int32_t preceding(int32_t position, UErrorCode &status);
369 
384  int32_t next(UErrorCode &status);
385 
399  int32_t previous(UErrorCode &status);
400 
409  virtual void reset();
410 
411 protected:
412  // protected data members ---------------------------------------------
413 
419 
429 
435 
436  // protected constructors and destructors -----------------------------
437 
443  SearchIterator();
444 
460  SearchIterator(const UnicodeString &text,
461  BreakIterator *breakiter = NULL);
462 
482  SearchIterator(CharacterIterator &text, BreakIterator *breakiter = NULL);
483 
484  // protected methods --------------------------------------------------
485 
492  SearchIterator & operator=(const SearchIterator &that);
493 
513  virtual int32_t handleNext(int32_t position, UErrorCode &status)
514  = 0;
515 
535  virtual int32_t handlePrev(int32_t position, UErrorCode &status)
536  = 0;
537 
548  virtual void setMatchLength(int32_t length);
549 
560  virtual void setMatchStart(int32_t position);
561 
566  void setMatchNotFound();
567 };
568 
570 {
571  return !operator==(that);
572 }
573 U_NAMESPACE_END
574 
575 #endif /* #if !UCONFIG_NO_COLLATION */
576 
577 #endif /* U_SHOW_CPLUSPLUS_API */
578 
579 #endif
580 
C++ API: Break Iterator.
C++ API: Unicode String.
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
C API: StringSearch.
USearchAttribute
Definition: usearch.h:163
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:301
Abstract class that defines an API for iteration on text objects.
Definition: chariter.h:361
The BreakIterator class implements methods for finding the location of boundaries in text...
Definition: brkiter.h:106
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
Definition: stringpiece.h:251
USearchAttributeValue
Definition: usearch.h:205
UBool operator!=(const SearchIterator &that) const
Not-equal operator.
Definition: search.h:569
#define NULL
Define NULL if necessary, to nullptr for C++ and to ((void *)0) for C.
Definition: utypes.h:188
UnicodeString m_text_
Unicode string version of the search text.
Definition: search.h:434
C++ API: Common ICU base class UObject.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
Basic definitions for ICU, for both C and C++ APIs.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
C++ API: Character Iterator.
struct USearch USearch
Definition: search.h:39
USearch * m_search_
C search data struct.
Definition: search.h:418
SearchIterator is an abstract base class that provides methods to search for a pattern within a text ...
Definition: search.h:82
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:223
BreakIterator * m_breakiterator_
Break iterator.
Definition: search.h:428
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261