blocxx
BLOCXX_NAMESPACE::StringBuffer Class Reference

#include <StringBuffer.hpp>

Public Member Functions

 StringBuffer (size_t allocSize=BLOCXX_DEFAULT_ALLOCATION_UNIT)
 
 StringBuffer (const char *arg)
 
 StringBuffer (const String &arg)
 
 StringBuffer (const StringBuffer &arg)
 
 ~StringBuffer ()
 
StringBufferoperator= (const StringBuffer &arg)
 
StringBufferoperator= (const String &arg)
 
StringBufferoperator= (const char *str)
 
void swap (StringBuffer &x)
 
StringBufferappend (char c)
 
StringBufferappend (const char *str)
 
StringBufferappend (const char *str, const size_t len)
 
StringBufferappend (const String &arg)
 
StringBufferappend (const StringBuffer &arg)
 
StringBufferoperator+= (char c)
 
StringBufferoperator+= (Char16 c)
 
StringBufferoperator+= (const char *str)
 
StringBufferoperator+= (const String &arg)
 
StringBufferoperator+= (Bool v)
 
StringBufferoperator+= (UInt8 v)
 
StringBufferoperator+= (Int8 v)
 
StringBufferoperator+= (UInt16 v)
 
StringBufferoperator+= (Int16 v)
 
StringBufferoperator+= (UInt32 v)
 
StringBufferoperator+= (Int32 v)
 
StringBufferoperator+= (UInt64 v)
 
StringBufferoperator+= (Int64 v)
 
StringBufferoperator+= (Real32 v)
 
StringBufferoperator+= (Real64 v)
 
StringBufferoperator+= (const StringBuffer &arg)
 
char operator[] (size_t ndx) const
 
String toString () const
 
String releaseString ()
 
size_t length () const
 
void truncate (size_t index)
 Truncate the string at the given index.
 
const char * getLine (std::istream &is, bool resetBuffer=true)
 Fill this StringBuffer object with the next line from the given input stream.
 
bool endsWith (char ch) const
 
bool startsWith (char ch) const
 
void chop ()
 
void trim ()
 
size_t allocated () const
 
void reset ()
 
const char * c_str () const
 
bool equals (const char *arg) const
 
bool equals (const StringBuffer &arg) const
 

Static Public Attributes

static const size_t BLOCXX_DEFAULT_ALLOCATION_UNIT = 128
 

Private Member Functions

void checkAvail (size_t len=1)
 

Private Attributes

size_t m_len
 
size_t m_allocated
 
char * m_bfr
 

Friends

BLOCXX_COMMON_API std::ostream & operator<< (std::ostream &ostr, const StringBuffer &b)
 

Detailed Description

Definition at line 51 of file StringBuffer.hpp.

Constructor & Destructor Documentation

◆ StringBuffer() [1/4]

BLOCXX_NAMESPACE::StringBuffer::StringBuffer ( size_t allocSize = BLOCXX_DEFAULT_ALLOCATION_UNIT)

Definition at line 62 of file StringBuffer.cpp.

Referenced by operator=(), operator=(), and operator=().

◆ StringBuffer() [2/4]

BLOCXX_NAMESPACE::StringBuffer::StringBuffer ( const char * arg)

Definition at line 70 of file StringBuffer.cpp.

References m_bfr.

◆ StringBuffer() [3/4]

BLOCXX_NAMESPACE::StringBuffer::StringBuffer ( const String & arg)

Definition at line 78 of file StringBuffer.cpp.

References BLOCXX_NAMESPACE::String::c_str(), and m_bfr.

◆ StringBuffer() [4/4]

BLOCXX_NAMESPACE::StringBuffer::StringBuffer ( const StringBuffer & arg)

Definition at line 86 of file StringBuffer.cpp.

References m_bfr, and m_len.

◆ ~StringBuffer()

BLOCXX_NAMESPACE::StringBuffer::~StringBuffer ( )
inline

Definition at line 63 of file StringBuffer.hpp.

Member Function Documentation

◆ allocated()

size_t BLOCXX_NAMESPACE::StringBuffer::allocated ( ) const
inline

Definition at line 152 of file StringBuffer.hpp.

◆ append() [1/5]

◆ append() [2/5]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::append ( const char * str)
inline

Definition at line 75 of file StringBuffer.hpp.

◆ append() [3/5]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::append ( const char * str,
const size_t len )

Definition at line 284 of file StringBuffer.cpp.

References checkAvail(), m_bfr, and m_len.

◆ append() [4/5]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::append ( const String & arg)
inline

◆ append() [5/5]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::append ( const StringBuffer & arg)
inline

Definition at line 86 of file StringBuffer.hpp.

References c_str(), and length().

◆ c_str()

const char * BLOCXX_NAMESPACE::StringBuffer::c_str ( ) const
inline

◆ checkAvail()

void BLOCXX_NAMESPACE::StringBuffer::checkAvail ( size_t len = 1)
inlineprivate

Definition at line 159 of file StringBuffer.hpp.

Referenced by append().

◆ chop()

void BLOCXX_NAMESPACE::StringBuffer::chop ( )

Definition at line 322 of file StringBuffer.cpp.

References m_len, and truncate().

◆ endsWith()

bool BLOCXX_NAMESPACE::StringBuffer::endsWith ( char ch) const

Definition at line 308 of file StringBuffer.cpp.

References m_bfr, and m_len.

Referenced by BLOCXX_NAMESPACE::SafeCString::fget_string().

◆ equals() [1/2]

bool BLOCXX_NAMESPACE::StringBuffer::equals ( const char * arg) const

Definition at line 294 of file StringBuffer.cpp.

References m_bfr.

Referenced by BLOCXX_NAMESPACE::operator==(), and BLOCXX_NAMESPACE::operator==().

◆ equals() [2/2]

bool BLOCXX_NAMESPACE::StringBuffer::equals ( const StringBuffer & arg) const

Definition at line 301 of file StringBuffer.cpp.

References m_bfr.

◆ getLine()

const char * BLOCXX_NAMESPACE::StringBuffer::getLine ( std::istream & is,
bool resetBuffer = true )

Fill this StringBuffer object with the next line from the given input stream.

Parameters
isThe input stream to retrieve the next line from
Returns
const char* pointer to the line of text just read.

Definition at line 362 of file StringBuffer.cpp.

References append(), m_bfr, reset(), and truncate().

Referenced by BLOCXX_NAMESPACE::String::getLine().

◆ length()

◆ operator+=() [1/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Bool v)

Definition at line 149 of file StringBuffer.cpp.

References append(), and BLOCXX_NAMESPACE::Bool::toString().

◆ operator+=() [2/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( char c)
inline

Definition at line 90 of file StringBuffer.hpp.

◆ operator+=() [3/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Char16 c)
inline

Definition at line 92 of file StringBuffer.hpp.

References BLOCXX_NAMESPACE::Char16::toString().

◆ operator+=() [4/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( const char * str)
inline

Definition at line 94 of file StringBuffer.hpp.

◆ operator+=() [5/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( const String & arg)
inline

Definition at line 96 of file StringBuffer.hpp.

◆ operator+=() [6/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( const StringBuffer & arg)
inline

Definition at line 114 of file StringBuffer.hpp.

◆ operator+=() [7/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Int16 v)

Definition at line 182 of file StringBuffer.cpp.

References append().

◆ operator+=() [8/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Int32 v)

Definition at line 198 of file StringBuffer.cpp.

References append().

◆ operator+=() [9/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Int64 v)

Definition at line 236 of file StringBuffer.cpp.

References append().

◆ operator+=() [10/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Int8 v)

Definition at line 166 of file StringBuffer.cpp.

References append().

◆ operator+=() [11/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Real32 v)

Definition at line 249 of file StringBuffer.cpp.

References append().

◆ operator+=() [12/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( Real64 v)

Definition at line 265 of file StringBuffer.cpp.

References append().

◆ operator+=() [13/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( UInt16 v)

Definition at line 174 of file StringBuffer.cpp.

References append().

◆ operator+=() [14/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( UInt32 v)

Definition at line 190 of file StringBuffer.cpp.

References append().

◆ operator+=() [15/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( UInt64 v)

Definition at line 224 of file StringBuffer.cpp.

References append().

◆ operator+=() [16/16]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator+= ( UInt8 v)

Definition at line 158 of file StringBuffer.cpp.

References append().

◆ operator=() [1/3]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator= ( const char * str)

Definition at line 101 of file StringBuffer.cpp.

References StringBuffer(), and swap().

◆ operator=() [2/3]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator= ( const String & arg)

Definition at line 94 of file StringBuffer.cpp.

References StringBuffer(), and swap().

◆ operator=() [3/3]

StringBuffer & BLOCXX_NAMESPACE::StringBuffer::operator= ( const StringBuffer & arg)

Definition at line 108 of file StringBuffer.cpp.

References StringBuffer(), and swap().

◆ operator[]()

char BLOCXX_NAMESPACE::StringBuffer::operator[] ( size_t ndx) const

Definition at line 142 of file StringBuffer.cpp.

References m_bfr, and m_len.

◆ releaseString()

◆ reset()

void BLOCXX_NAMESPACE::StringBuffer::reset ( )

Definition at line 123 of file StringBuffer.cpp.

References m_bfr, and m_len.

Referenced by getLine(), and BLOCXX_NAMESPACE::OStringStreamBuf::reset().

◆ startsWith()

bool BLOCXX_NAMESPACE::StringBuffer::startsWith ( char ch) const

Definition at line 315 of file StringBuffer.cpp.

References m_bfr, and m_len.

◆ swap()

void BLOCXX_NAMESPACE::StringBuffer::swap ( StringBuffer & x)

Definition at line 115 of file StringBuffer.cpp.

References m_allocated, m_bfr, and m_len.

Referenced by operator=(), operator=(), and operator=().

◆ toString()

String BLOCXX_NAMESPACE::StringBuffer::toString ( ) const
inline

◆ trim()

void BLOCXX_NAMESPACE::StringBuffer::trim ( )

Definition at line 332 of file StringBuffer.cpp.

References m_bfr, and m_len.

◆ truncate()

void BLOCXX_NAMESPACE::StringBuffer::truncate ( size_t index)

Truncate the string at the given index.

This doesn't change anything before the given index and does not free up any memory.

Parameters
indexThe index to truncate the string buffer at. If this value is greater than the current length of the StringBuffer, then nothing is done.

Definition at line 131 of file StringBuffer.cpp.

References m_bfr, and m_len.

Referenced by chop(), BLOCXX_NAMESPACE::LogMessagePatternFormatter::Converter::formatMessage(), and getLine().

Friends And Related Symbol Documentation

◆ operator<<

BLOCXX_COMMON_API std::ostream & operator<< ( std::ostream & ostr,
const StringBuffer & b )
friend

Definition at line 405 of file StringBuffer.cpp.

Member Data Documentation

◆ BLOCXX_DEFAULT_ALLOCATION_UNIT

const size_t BLOCXX_NAMESPACE::StringBuffer::BLOCXX_DEFAULT_ALLOCATION_UNIT = 128
static

Definition at line 57 of file StringBuffer.hpp.

◆ m_allocated

size_t BLOCXX_NAMESPACE::StringBuffer::m_allocated
private

Definition at line 174 of file StringBuffer.hpp.

Referenced by swap().

◆ m_bfr

char* BLOCXX_NAMESPACE::StringBuffer::m_bfr
private

◆ m_len

size_t BLOCXX_NAMESPACE::StringBuffer::m_len
private

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