// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* * Copyright (C) 2011-2012, International Business Machines * Corporation and others. All Rights Reserved. ******************************************************************************* * file name: appendable.h * encoding: UTF-8 * tab size: 8 (not used) * indentation:4 * * created on: 2010dec07 * created by: Markus W. Scherer */ #ifndef __APPENDABLE_H__ #define __APPENDABLE_H__ /** * \file * \brief C++ API: Appendable class: Sink for Unicode code points and 16-bit code units (char16_ts). */ #include "unicode/utypes.h" #if U_SHOW_CPLUSPLUS_API #include "unicode/uobject.h" U_NAMESPACE_BEGIN class UnicodeString; /** * Base class for objects to which Unicode characters and strings can be appended. * Combines elements of Java Appendable and ICU4C ByteSink. * * This class can be used in APIs where it does not matter whether the actual destination is * a UnicodeString, a char16_t[] array, a UnicodeSet, or any other object * that receives and processes characters and/or strings. * * Implementation classes must implement at least appendCodeUnit(char16_t). * The base class provides default implementations for the other methods. * * The methods do not take UErrorCode parameters. * If an error occurs (e.g., out-of-memory), * in addition to returning false from failing operations, * the implementation must prevent unexpected behavior (e.g., crashes) * from further calls and should make the error condition available separately * (e.g., store a UErrorCode, make/keep a UnicodeString bogus). * @stable ICU 4.8 */ class U_COMMON_API Appendable : public UObject { … }; /** * An Appendable implementation which writes to a UnicodeString. * * This class is not intended for public subclassing. * @stable ICU 4.8 */ class U_COMMON_API UnicodeStringAppendable : public Appendable { … }; U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ #endif // __APPENDABLE_H__