00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef BRKITER_H
00021 #define BRKITER_H
00022
00023
00024 #include "unicode/unistr.h"
00025 #include "unicode/chariter.h"
00026 #include "unicode/locid.h"
00027
00028
00029 U_NAMESPACE_BEGIN
00030
00180 class U_COMMON_API BreakIterator {
00181 public:
00182 virtual ~BreakIterator();
00183
00197 virtual UBool operator==(const BreakIterator&) const = 0;
00198
00203 UBool operator!=(const BreakIterator& rhs) const { return !operator==(rhs); }
00204
00210 virtual BreakIterator* clone(void) const = 0;
00211
00217 virtual UClassID getDynamicClassID(void) const = 0;
00218
00223 virtual const CharacterIterator& getText(void) const = 0;
00224
00225 #ifdef ICU_ENABLE_DEPRECATED_BREAKITERATOR
00226
00230 virtual CharacterIterator* createText(void) const = 0;
00231
00237 virtual void setText(const UnicodeString* it) = 0;
00238 #endif
00239
00245 virtual void setText(const UnicodeString &text) = 0;
00246
00252 virtual void adoptText(CharacterIterator* it) = 0;
00253
00259 static const UTextOffset DONE;
00260
00265 virtual UTextOffset first(void) = 0;
00266
00271 virtual UTextOffset last(void) = 0;
00272
00279 virtual UTextOffset previous(void) = 0;
00280
00287 virtual UTextOffset next(void) = 0;
00288
00295 virtual UTextOffset current(void) const = 0;
00296
00305 virtual UTextOffset following(UTextOffset offset) = 0;
00306
00315 virtual UTextOffset preceding(UTextOffset offset) = 0;
00316
00323 virtual UBool isBoundary(UTextOffset offset) = 0;
00324
00334 virtual UTextOffset next(int32_t n) = 0;
00335
00355 static BreakIterator* createWordInstance(const Locale& where,
00356 UErrorCode& status);
00357
00378 static BreakIterator* createLineInstance(const Locale& where,
00379 UErrorCode& status);
00380
00399 static BreakIterator* createCharacterInstance(const Locale& where,
00400 UErrorCode& status);
00401
00419 static BreakIterator* createSentenceInstance(const Locale& where,
00420 UErrorCode& status);
00421
00439 static BreakIterator* createTitleInstance(const Locale& where,
00440 UErrorCode& status);
00441
00448 static const Locale* getAvailableLocales(int32_t& count);
00449
00459 static UnicodeString& getDisplayName(const Locale& objectLocale,
00460 const Locale& displayLocale,
00461 UnicodeString& name);
00462
00471 static UnicodeString& getDisplayName(const Locale& objectLocale,
00472 UnicodeString& name);
00473
00492 virtual BreakIterator * createBufferClone(void *stackBuffer,
00493 int32_t &BufferSize,
00494 UErrorCode &status) = 0;
00495 inline UBool isBufferClone(void);
00496
00497
00498 protected:
00499 BreakIterator();
00500 UBool fBufferClone;
00501 private:
00506 BreakIterator& operator=(const BreakIterator&) { return *this; }
00507 BreakIterator (const BreakIterator&) {}
00508 };
00509
00510 inline UBool BreakIterator::isBufferClone()
00511 {
00512 return fBufferClone;
00513 }
00514
00515 U_NAMESPACE_END
00516
00517 #endif // _BRKITER
00518
00519