icu::CheckedArrayByteSink Class Reference

Implementation of ByteSink that writes to a flat byte array, with bounds-checking: This sink will not write more than capacity bytes to outbuf. More...

`#include <bytestream.h>`

Inheritance diagram for icu::CheckedArrayByteSink:

## Public Member Functions

| CheckedArrayByteSink (char *outbuf, int32_t capacity)
| Constructs a ByteSink that will write to outbuf[0..capacity-1].
virtual | ~CheckedArrayByteSink ()
| Destructor.
virtual CheckedArrayByteSink & | Reset ()
| Returns the sink to its original state, without modifying the buffer.
virtual void | Append (const char *bytes, int32_t n) override
| Append "bytes[0,n-1]" to this.
virtual char * | GetAppendBuffer (int32_t min_capacity, int32_t desired_capacity_hint, char *scratch, int32_t scratch_capacity, int32_t *result_capacity) override
| Returns a writable buffer for appending and writes the buffer's capacity to *result_capacity.
int32_t | NumberOfBytesWritten () const
| Returns the number of bytes actually written to the sink.
UBool | Overflowed () const
| Returns true if any bytes were discarded, i.e., if there was an attempt to write more than 'capacity' bytes.
int32_t | NumberOfBytesAppended () const
| Returns the number of bytes appended to the sink.
Public Member Functions inherited from icu::ByteSink
| ByteSink ()
| Default constructor.
virtual | ~ByteSink ()
| Virtual destructor.
void | AppendU8 (const char *bytes, int32_t n)
| Appends n bytes to this.
void | AppendU8 (const char8_t *bytes, int32_t n)
| Appends n bytes to this.
virtual void | Flush ()
| Flush internal buffers.

## Detailed Description

Implementation of ByteSink that writes to a flat byte array, with bounds-checking: This sink will not write more than capacity bytes to outbuf.

If more than capacity bytes are Append()ed, then excess bytes are ignored, and Overflowed() will return true. Overflow does not cause a runtime error.

Stable:
  ICU 4.2

Definition at line 180 of file bytestream.h.

## Constructor & Destructor Documentation

## CheckedArrayByteSink()

icu::CheckedArrayByteSink::CheckedArrayByteSink | ( | char * | outbuf,
|  | int32_t | capacity
| ) |  |

Constructs a ByteSink that will write to outbuf[0..capacity-1].

Parameters

  outbuf | buffer to write to
  capacity | size of the buffer

Stable:
  ICU 4.2

## ~CheckedArrayByteSink()

virtual icu::CheckedArrayByteSink::~CheckedArrayByteSink | ( |  | ) |

virtual

Destructor.

Stable:
  ICU 4.2

## Member Function Documentation

## Append()

virtual void icu::CheckedArrayByteSink::Append | ( | const char * | bytes,
|  | int32_t | n
| ) |  |

override virtual

Append "bytes[0,n-1]" to this.

Parameters

  bytes | the pointer to the bytes
  n | the number of bytes; must be non-negative

Stable:
  ICU 4.2

Implements icu::ByteSink.

## GetAppendBuffer()

virtual char * icu::CheckedArrayByteSink::GetAppendBuffer | ( | int32_t | min_capacity,
|  | int32_t | desired_capacity_hint,
|  | char * | scratch,
|  | int32_t | scratch_capacity,
|  | int32_t * | result_capacity
| ) |  |

override virtual

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

For details see the base class documentation.

Parameters

  min_capacity | required minimum capacity of the returned buffer; must be non-negative
  desired_capacity_hint | desired capacity of the returned buffer; must be non-negative
  scratch | default caller-owned buffer
  scratch_capacity | capacity of the scratch buffer
  result_capacity | pointer to an integer which will be set to the capacity of the returned buffer

Returns
  a buffer with *result_capacity>=min_capacity

Stable:
  ICU 4.2

Reimplemented from icu::ByteSink.

## NumberOfBytesAppended()

int32_t icu::CheckedArrayByteSink::NumberOfBytesAppended | ( |  | ) | const

inline

Returns the number of bytes appended to the sink.

If Overflowed() then NumberOfBytesAppended()>NumberOfBytesWritten() else they return the same number.

Returns
  number of bytes written to the buffer

Stable:
  ICU 4.6

Definition at line 248 of file bytestream.h.

## NumberOfBytesWritten()

int32_t icu::CheckedArrayByteSink::NumberOfBytesWritten | ( |  | ) | const

inline

Returns the number of bytes actually written to the sink.

Returns
  number of bytes written to the buffer

Stable:
  ICU 4.2

Definition at line 233 of file bytestream.h.

## Overflowed()

UBool icu::CheckedArrayByteSink::Overflowed | ( |  | ) | const

inline

Returns true if any bytes were discarded, i.e., if there was an attempt to write more than 'capacity' bytes.

Returns
  true if more than 'capacity' bytes were Append()ed

Stable:
  ICU 4.2

Definition at line 240 of file bytestream.h.

## Reset()

virtual CheckedArrayByteSink & icu::CheckedArrayByteSink::Reset | ( |  | ) |

virtual

Returns the sink to its original state, without modifying the buffer.

Useful for reusing both the buffer and the sink for multiple streams. Resets the state to NumberOfBytesWritten()=NumberOfBytesAppended()=0 and Overflowed()=false.

Returns
  *this

Stable:
  ICU 4.6

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

- common/unicode/bytestream.h