Movatterモバイル変換


[0]ホーム

URL:


ICU 78.2  78.2
Public Member Functions
icu::Appendable Class Referenceabstract

Base class for objects to which Unicode characters and strings can be appended.More...

#include <appendable.h>

Inheritance diagram for icu::Appendable:

Public Member Functions

 ~Appendable ()
 Destructor.More...
 
virtualUBool appendCodeUnit (char16_t c)=0
 Appends a 16-bit code unit.More...
 
virtualUBool appendCodePoint (UChar32 c)
 Appends a code point.More...
 
virtualUBool appendString (const char16_t *s, int32_t length)
 Appends a string.More...
 
virtualUBool reserveAppendCapacity (int32_t appendCapacity)
 Tells the object that the caller is going to append roughly appendCapacity char16_ts.More...
 
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.More...
 
- Public Member Functions inherited fromicu::UObject
virtual ~UObject ()
 Destructor.More...
 
virtualUClassID getDynamicClassID () const
 ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.More...
 

Detailed Description

Base class for objects to which Unicode characters and strings can be appended.

Combines elements of JavaAppendable and ICU4CByteSink.

This class can be used in APIs where it does not matter whether the actual destination is aUnicodeString, a char16_t[] array, aUnicodeSet, or any other object that receives and processes characters and/or strings.

Implementation classes must implement at leastappendCodeUnit(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 aUnicodeString bogus).

Stable:
ICU 4.8

Definition at line54 of fileappendable.h.

Constructor & Destructor Documentation

◆ ~Appendable()

icu::Appendable::~Appendable()

Destructor.

Stable:
ICU 4.8

Member Function Documentation

◆ appendCodePoint()

virtualUBool icu::Appendable::appendCodePoint(UChar32 c)
virtual

Appends a code point.

The default implementation callsappendCodeUnit(char16_t) once or twice.

Parameters
ccode point 0..0x10ffff
Returns
true if the operation succeeded
Stable:
ICU 4.8

Reimplemented inicu::UnicodeStringAppendable.

◆ appendCodeUnit()

virtualUBool icu::Appendable::appendCodeUnit(char16_t c)
pure virtual

Appends a 16-bit code unit.

Parameters
ccode unit
Returns
true if the operation succeeded
Stable:
ICU 4.8

Implemented inicu::UnicodeStringAppendable.

◆ appendString()

virtualUBool icu::Appendable::appendString(const char16_t * s,
int32_t length 
)
virtual

Appends a string.

The default implementation callsappendCodeUnit(char16_t) for each code unit.

Parameters
sstring, must not be nullptr if length!=0
lengthstring length, or -1 if NUL-terminated
Returns
true if the operation succeeded
Stable:
ICU 4.8

Reimplemented inicu::UnicodeStringAppendable.

◆ getAppendBuffer()

virtual char16_t* icu::Appendable::getAppendBuffer(int32_t minCapacity,
int32_t desiredCapacityHint,
char16_t * scratch,
int32_t scratchCapacity,
int32_t * resultCapacity 
)
virtual

Returns a writable buffer for appending and writes the buffer's capacity to *resultCapacity.

Guarantees *resultCapacity>=minCapacity. May return a pointer to the caller-owned scratch buffer which must have scratchCapacity>=minCapacity. The returned buffer is only valid until the next operation on thisAppendable.

After writing at most *resultCapacity char16_ts, callappendString() with the pointer returned from this function and the number of char16_ts written. ManyappendString() implementations will avoid copying char16_ts if this function returned an internal buffer.

Partial usage example:

int32_t capacity;
char16_t* buffer = app.getAppendBuffer(..., &capacity);
... Write n char16_ts into buffer, with n <= capacity.
app.appendString(buffer, n);

In many implementations, that call to append will avoid copying char16_ts.

If theAppendable allocates or reallocates an internal buffer, it should use the desiredCapacityHint if appropriate. If a caller cannot provide a reasonable guess at the desired capacity, it should pass desiredCapacityHint=0.

If a non-scratch buffer is returned, the caller may only pass a prefix to it toappendString(). That is, it is not correct to pass an interior pointer toappendString().

The default implementation always returns the scratch buffer.

Parameters
minCapacityrequired minimum capacity of the returned buffer; must be non-negative
desiredCapacityHintdesired capacity of the returned buffer; must be non-negative
scratchdefault caller-owned buffer
scratchCapacitycapacity of the scratch buffer
resultCapacitypointer to an integer which will be set to the capacity of the returned buffer
Returns
a buffer with *resultCapacity>=minCapacity
Stable:
ICU 4.8

Reimplemented inicu::UnicodeStringAppendable.

◆ reserveAppendCapacity()

virtualUBool icu::Appendable::reserveAppendCapacity(int32_t appendCapacity)
virtual

Tells the object that the caller is going to append roughly appendCapacity char16_ts.

A subclass might use this to pre-allocate a larger buffer if necessary. The default implementation does nothing. (It always returns true.)

Parameters
appendCapacityestimated number of char16_ts that will be appended
Returns
true if the operation succeeded
Stable:
ICU 4.8

Reimplemented inicu::UnicodeStringAppendable.


The documentation for this class was generated from the following file:

Generated by doxygen 1.9.1
[8]ページ先頭

©2009-2026 Movatter.jp