| Index: source/i18n/sharedbreakiterator.h
|
| diff --git a/source/i18n/sharedbreakiterator.h b/source/i18n/sharedbreakiterator.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..09ba4312a3995ada41e7e428a4e2d90f56c1b032
|
| --- /dev/null
|
| +++ b/source/i18n/sharedbreakiterator.h
|
| @@ -0,0 +1,47 @@
|
| +/*
|
| +******************************************************************************
|
| +* Copyright (C) 2014, International Business Machines
|
| +* Corporation and others. All Rights Reserved.
|
| +******************************************************************************
|
| +* sharedbreakiterator.h
|
| +*/
|
| +
|
| +#ifndef __SHARED_BREAKITERATOR_H__
|
| +#define __SHARED_BREAKITERATOR_H__
|
| +
|
| +#include "unicode/utypes.h"
|
| +#include "sharedobject.h"
|
| +
|
| +#if !UCONFIG_NO_BREAK_ITERATION
|
| +
|
| +U_NAMESPACE_BEGIN
|
| +
|
| +class BreakIterator;
|
| +
|
| +// SharedBreakIterator encapsulates a shared BreakIterator. Because
|
| +// BreakIterator has mutable semantics, clients must ensure that all uses
|
| +// of a particular shared BreakIterator is protected by the same mutex
|
| +// ensuring that only one thread at a time gets access to that shared
|
| +// BreakIterator. Clients can accomplish this by creating a mutex for all
|
| +// uses of break iterator within a particular class. Then objects of that
|
| +// class may then freely share break iterators among themselves. However,
|
| +// these shared break iterators must never be exposed outside of that class.
|
| +class U_I18N_API SharedBreakIterator : public SharedObject {
|
| +public:
|
| + SharedBreakIterator(BreakIterator *biToAdopt);
|
| + virtual ~SharedBreakIterator();
|
| +
|
| + BreakIterator *get() const { return ptr; }
|
| + BreakIterator *operator->() const { return ptr; }
|
| + BreakIterator &operator*() const { return *ptr; }
|
| +private:
|
| + BreakIterator *ptr;
|
| + SharedBreakIterator(const SharedBreakIterator &);
|
| + SharedBreakIterator &operator=(const SharedBreakIterator &);
|
| +};
|
| +
|
| +U_NAMESPACE_END
|
| +
|
| +#endif
|
| +
|
| +#endif
|
|
|