dbbi_tbl.cpp   [plain text]


/*
**********************************************************************
*   Copyright (C) 1999-2002 IBM Corp. All rights reserved.
**********************************************************************
*   Date        Name        Description
*   12/1/99    rgillam     Complete port from Java.
*   01/13/2000 helena      Added UErrorCode to ctors.
*   06/14/2002 andy        Gutted for new RBBI impl.
**********************************************************************
*/

#include "unicode/utypes.h"

#if !UCONFIG_NO_BREAK_ITERATION

#include "dbbi_tbl.h"
#include "unicode/dbbi.h"
#include "umutex.h"

U_NAMESPACE_BEGIN

//=======================================================================
// constructor
//=======================================================================

DictionaryBasedBreakIteratorTables::DictionaryBasedBreakIteratorTables(
                                 const char* dictionaryFilename, 
                                 UErrorCode &status) {
    fDictionary = new BreakDictionary(dictionaryFilename, status);
    fRefCount = 1;
}


void DictionaryBasedBreakIteratorTables::addReference() {
    umtx_atomic_inc(&fRefCount);
}


void DictionaryBasedBreakIteratorTables::removeReference() {
    if (umtx_atomic_dec(&fRefCount) == 0) {
        delete this;
    }
}


/**
 * Destructor
 */
DictionaryBasedBreakIteratorTables::~DictionaryBasedBreakIteratorTables() {
    delete fDictionary;
    fDictionary = NULL;
}


U_NAMESPACE_END

#endif /* #if !UCONFIG_NO_BREAK_ITERATION */

/* eof */