ICU 62.1 62.1
appendable.h
Go to the documentation of this file.
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4*******************************************************************************
5* Copyright (C) 2011-2012, International Business Machines
6* Corporation and others. All Rights Reserved.
7*******************************************************************************
8* file name: appendable.h
9* encoding: UTF-8
10* tab size: 8 (not used)
11* indentation:4
12*
13* created on: 2010dec07
14* created by: Markus W. Scherer
15*/
16
17#ifndef __APPENDABLE_H__
18#define __APPENDABLE_H__
19
25#include "unicode/utypes.h"
26#include "unicode/uobject.h"
27
29
30class UnicodeString;
31
52public:
58
65 virtual UBool appendCodeUnit(char16_t c) = 0;
66
75
84 virtual UBool appendString(const char16_t *s, int32_t length);
85
95 virtual UBool reserveAppendCapacity(int32_t appendCapacity);
96
141 virtual char16_t *getAppendBuffer(int32_t minCapacity,
142 int32_t desiredCapacityHint,
143 char16_t *scratch, int32_t scratchCapacity,
144 int32_t *resultCapacity);
145};
146
154public:
160 explicit UnicodeStringAppendable(UnicodeString &s) : str(s) {}
161
167
174 virtual UBool appendCodeUnit(char16_t c);
175
183
191 virtual UBool appendString(const char16_t *s, int32_t length);
192
200 virtual UBool reserveAppendCapacity(int32_t appendCapacity);
201
223 virtual char16_t *getAppendBuffer(int32_t minCapacity,
224 int32_t desiredCapacityHint,
225 char16_t *scratch, int32_t scratchCapacity,
226 int32_t *resultCapacity);
227
228private:
229 UnicodeString &str;
230};
231
233
234#endif // __APPENDABLE_H__
Base class for objects to which Unicode characters and strings can be appended.
Definition appendable.h:51
virtual UBool reserveAppendCapacity(int32_t appendCapacity)
Tells the object that the caller is going to append roughly appendCapacity char16_ts.
virtual UBool appendCodeUnit(char16_t c)=0
Appends a 16-bit code unit.
virtual UBool appendString(const char16_t *s, int32_t length)
Appends a string.
virtual char16_t * getAppendBuffer(int32_t minCapacity, int32_t desiredCapacityHint, char16_t *scratch, int32_t scratchCapacity, int32_t *resultCapacity)
Returns a writable buffer for appending and writes the buffer's capacity to *resultCapacity.
virtual UBool appendCodePoint(UChar32 c)
Appends a code point.
~Appendable()
Destructor.
UObject is the common ICU "boilerplate" class.
Definition uobject.h:223
An Appendable implementation which writes to a UnicodeString.
Definition appendable.h:153
virtual UBool appendCodePoint(UChar32 c)
Appends a code point to the string.
virtual char16_t * getAppendBuffer(int32_t minCapacity, int32_t desiredCapacityHint, char16_t *scratch, int32_t scratchCapacity, int32_t *resultCapacity)
Returns a writable buffer for appending and writes the buffer's capacity to *resultCapacity.
virtual UBool appendString(const char16_t *s, int32_t length)
Appends a string to the UnicodeString.
UnicodeStringAppendable(UnicodeString &s)
Aliases the UnicodeString (keeps its reference) for writing.
Definition appendable.h:160
virtual UBool reserveAppendCapacity(int32_t appendCapacity)
Tells the UnicodeString that the caller is going to append roughly appendCapacity char16_ts.
virtual UBool appendCodeUnit(char16_t c)
Appends a 16-bit code unit to the string.
~UnicodeStringAppendable()
Destructor.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:287
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition umachine.h:400
int8_t UBool
The ICU boolean type.
Definition umachine.h:236
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:359
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137