Base Framework
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
BufferedOutputStream Class Reference

Buffered output stream. More...

#include <base/io/BufferedOutputStream.h>

Inherits FilterOutputStream.

Inherited by FormatOutputStream.

Public Member Functions

 BufferedOutputStream (OutputStream &out, unsigned int size=DEFAULT_BUFFER_SIZE)
 
void flush ()
 
unsigned int write (const uint8 *buffer, unsigned int size, bool nonblocking=false)
 
void unfoldValue (char value, unsigned int count)
 
 ~BufferedOutputStream ()
 
- Public Member Functions inherited from FilterOutputStream
 FilterOutputStream (OutputStream &out)
 
OutputStreamgetOutputStream () noexcept
 
void close ()
 
void flush ()
 
unsigned int write (const uint8 *buffer, unsigned int size, bool nonblocking=false)
 
- Public Member Functions inherited from Stream
virtual ~Stream () noexcept(false)
 
- Public Member Functions inherited from ReferenceCountedObject
 ReferenceCountedObject () noexcept
 
 ReferenceCountedObject (const ReferenceCountedObject &copy) noexcept
 
 ReferenceCountedObject (ReferenceCountedObject &&move) noexcept
 
ReferenceCountedObjectoperator= (const ReferenceCountedObject &copy) noexcept
 
ReferenceCountedObjectoperator= (ReferenceCountedObject &&move) noexcept
 
MemorySize getNumberOfReferences_INTERNAL () const noexcept
 
virtual bool useGarbageCollector () const noexcept
 
- Public Member Functions inherited from DynamicObject
 DynamicObject () noexcept
 
bool isValidObject () const noexcept
 
virtual ~DynamicObject () noexcept(false)
 
 _COM_AZURE_DEV__BASE__OVERRIDE_ALLOC ()
 

Static Public Attributes

static const unsigned int DEFAULT_BUFFER_SIZE = 4096
 
static const unsigned int MINIMUM_BUFFER_SIZE = 1024
 

Protected Attributes

Allocator< uint8 > buffer
 
unsigned int writeHead = 0
 
unsigned int readHead = 0
 
- Protected Attributes inherited from FilterOutputStream
OutputStreamout
 

Detailed Description

Buffered output stream.

A FilterOutputStream that adds buffer functionality to an OutputStream for added performance. MT-unsafe implementation.

Version
1.0

Constructor & Destructor Documentation

◆ BufferedOutputStream()

BufferedOutputStream::BufferedOutputStream ( OutputStream out,
unsigned int  size = DEFAULT_BUFFER_SIZE 
)

Initializes the buffered output stream.

Parameters
outThe output stream.
sizeThe size of the buffer. Default is given by DEFAULT_BUFFER_SIZE.

◆ ~BufferedOutputStream()

BufferedOutputStream::~BufferedOutputStream ( )

Flushes the buffer and releases any resources used by the output stream.

Member Function Documentation

◆ flush()

void BufferedOutputStream::flush ( )
virtual

Forces any buffered bytes to be written out.

Implements OutputStream.

Reimplemented in StringOutputStream.

◆ unfoldValue()

void BufferedOutputStream::unfoldValue ( char  value,
unsigned int  count 
)

Writes a single value multiple times to the stream.

Parameters
valueThe value to be written.
countThe number of bytes to be written.

◆ write()

unsigned int BufferedOutputStream::write ( const uint8 *  buffer,
unsigned int  size,
bool  nonblocking = false 
)
virtual

Writes bytes in the specified buffer to stream.

Parameters
bufferThe buffer containing the bytes to be written.
sizeThe number of bytes to be written.
nonblockingSpecifies that the method may not block.
Returns
The actual number of bytes written. Always the requested number of bytes in blocking mode unless an error occured.

Implements OutputStream.

Member Data Documentation

◆ buffer

Allocator<uint8> BufferedOutputStream::buffer
protected

The buffer.

◆ DEFAULT_BUFFER_SIZE

const unsigned int BufferedOutputStream::DEFAULT_BUFFER_SIZE = 4096
static

The default size of the buffer.

◆ MINIMUM_BUFFER_SIZE

const unsigned int BufferedOutputStream::MINIMUM_BUFFER_SIZE = 1024
static

The minimum buffer size.

◆ readHead

unsigned int BufferedOutputStream::readHead = 0
protected

The read head.

◆ writeHead

unsigned int BufferedOutputStream::writeHead = 0
protected

The write head.