ICU 57.1 57.1
appendable.h
Go to the documentation of this file.
1/*
2*******************************************************************************
3* Copyright (C) 2011-2012, International Business Machines
4* Corporation and others. All Rights Reserved.
5*******************************************************************************
6* file name: appendable.h
7* encoding: US-ASCII
8* tab size: 8 (not used)
9* indentation:4
10*
11* created on: 2010dec07
12* created by: Markus W. Scherer
13*/
14
15#ifndef __APPENDABLE_H__
16#define __APPENDABLE_H__
17
22
23#include "unicode/utypes.h"
24#include "unicode/uobject.h"
25
27
28class UnicodeString;
29
50public:
56
63 virtual UBool appendCodeUnit(UChar c) = 0;
64
73
82 virtual UBool appendString(const UChar *s, int32_t length);
83
93 virtual UBool reserveAppendCapacity(int32_t appendCapacity);
94
139 virtual UChar *getAppendBuffer(int32_t minCapacity,
140 int32_t desiredCapacityHint,
141 UChar *scratch, int32_t scratchCapacity,
142 int32_t *resultCapacity);
143};
144
152public:
158 explicit UnicodeStringAppendable(UnicodeString &s) : str(s) {}
159
165
173
181
189 virtual UBool appendString(const UChar *s, int32_t length);
190
198 virtual UBool reserveAppendCapacity(int32_t appendCapacity);
199
221 virtual UChar *getAppendBuffer(int32_t minCapacity,
222 int32_t desiredCapacityHint,
223 UChar *scratch, int32_t scratchCapacity,
224 int32_t *resultCapacity);
225
226private:
227 UnicodeString &str;
228};
229
231
232#endif // __APPENDABLE_H__
Base class for objects to which Unicode characters and strings can be appended.
Definition appendable.h:49
virtual UBool appendCodePoint(UChar32 c)
Appends a code point.
virtual UBool appendCodeUnit(UChar c)=0
Appends a 16-bit code unit.
virtual UBool appendString(const UChar *s, int32_t length)
Appends a string.
virtual UChar * getAppendBuffer(int32_t minCapacity, int32_t desiredCapacityHint, UChar *scratch, int32_t scratchCapacity, int32_t *resultCapacity)
Returns a writable buffer for appending and writes the buffer's capacity to *resultCapacity.
~Appendable()
Destructor.
virtual UBool reserveAppendCapacity(int32_t appendCapacity)
Tells the object that the caller is going to append roughly appendCapacity UChars.
UObject is the common ICU "boilerplate" class.
Definition uobject.h:221
virtual UBool appendCodePoint(UChar32 c)
Appends a code point to the string.
virtual UChar * getAppendBuffer(int32_t minCapacity, int32_t desiredCapacityHint, UChar *scratch, int32_t scratchCapacity, int32_t *resultCapacity)
Returns a writable buffer for appending and writes the buffer's capacity to *resultCapacity.
~UnicodeStringAppendable()
Destructor.
UnicodeStringAppendable(UnicodeString &s)
Aliases the UnicodeString (keeps its reference) for writing.
Definition appendable.h:158
virtual UBool appendString(const UChar *s, int32_t length)
Appends a string to the UnicodeString.
virtual UBool appendCodeUnit(UChar c)
Appends a 16-bit code unit to the string.
virtual UBool reserveAppendCapacity(int32_t appendCapacity)
Tells the UnicodeString that the caller is going to append roughly appendCapacity UChars.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:294
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition umachine.h:332
int8_t UBool
The ICU boolean type.
Definition umachine.h:234
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
Definition umachine.h:312
C++ API: Common ICU base class UObject.
Basic definitions for ICU, for both C and C++ APIs.
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside.
Definition utypes.h:357
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:129