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
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 int32_t DONE;
00260
00265 virtual int32_t first(
void) = 0;
00266
00271 virtual int32_t last(
void) = 0;
00272
00279 virtual int32_t previous(
void) = 0;
00280
00287 virtual int32_t next(
void) = 0;
00288
00295 virtual int32_t current(
void) const = 0;
00296
00305 virtual int32_t following(int32_t offset) = 0;
00306
00315 virtual int32_t preceding(int32_t offset) = 0;
00316
00323 virtual UBool isBoundary(int32_t offset) = 0;
00324
00334 virtual int32_t 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
00491 virtual BreakIterator * createBufferClone(
void *stackBuffer,
00492 int32_t &BufferSize,
00493 UErrorCode &status) = 0;
00494
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