scuffed-code/icu4c/source/i18n/dbbi_tbl.h
2000-07-12 05:01:53 +00:00

86 lines
2.7 KiB
C++

/*
**********************************************************************
* Copyright (C) 1999-2000 IBM Corp. All rights reserved.
**********************************************************************
* Date Name Description
* 12/1/99 rgillam Complete port from Java.
* 01/13/2000 helena Added UErrorCode to ctors.
**********************************************************************
*/
#ifndef DBBI_TBL_H
#define DBBI_TBL_H
#include "rbbi_tbl.h"
#include "brkdict.h"
#include "unicode/udata.h"
/* forward declaration */
class DictionaryBasedBreakIterator;
/**
* This subclass of RuleBasedBreakIteratorTables contains the additional
* static data that is used by DictionaryBasedBreakIterator. This comprises
* the dictionary itself and an array of flags that indicate which characters
* are in the dictionary.
*
* @author Richard Gillam
*/
class DictionaryBasedBreakIteratorTables : public RuleBasedBreakIteratorTables {
private:
/**
* a list of known words that is used to divide up contiguous ranges of letters,
* stored in a compressed, indexed, format that offers fast access
*/
BreakDictionary dictionary;
/**
* a list of flags indicating which character categories are contained in
* the dictionary file (this is used to determine which ranges of characters
* to apply the dictionary to)
*/
int8_t* categoryFlags;
//=======================================================================
// constructor
//=======================================================================
DictionaryBasedBreakIteratorTables(UDataMemory* tablesMemory,
char* dictionaryFilename,
UErrorCode& status);
/**
* The copy constructor is declared private and not implemented.
* THIS CLASS MAY NOT BE COPIED.
*/
DictionaryBasedBreakIteratorTables(const DictionaryBasedBreakIteratorTables& that);
//=======================================================================
// boilerplate
//=======================================================================
/**
* Destructor
*/
virtual ~DictionaryBasedBreakIteratorTables();
/**
* The assignment operator is declared private and not implemented.
* THIS CLASS MAY NOT BE COPIED.
*/
DictionaryBasedBreakIteratorTables& operator=(
const DictionaryBasedBreakIteratorTables& that);
protected:
/**
* Looks up a character's category (i.e., its category for breaking purposes,
* not its Unicode category)
*/
virtual int32_t lookupCategory(UChar c, BreakIterator* bi) const;
friend class DictionaryBasedBreakIterator;
};
#endif