Base Module  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Buffer Class Reference

Buffer. More...

#include <fbuffer.h>

Public Types

enum  swapSize { kSwap16 = 2, kSwap32 = 4, kSwap64 = 8 }
 

Public Member Functions

 Buffer ()
 Default constructor, allocates no memory at all.
 
 Buffer (const void *b, uint32 size)
 Constructor - creates a new Buffer with a given size and copies contents from optional memory pointer.
 
 Buffer (uint32 size, uint8 initVal)
 Constructor - creates a new Buffer with a given size and fills it all with a given value.
 
 Buffer (uint32 size)
 Constructor - creates a new Buffer with a given size.
 
 Buffer (const Buffer &buff)
 Copy constructor - creates a new Buffer from a given Buffer.
 
virtual ~Buffer ()
 Destructor - deallocates the internal memory.
 
void operator= (const Buffer &buff)
 Assignment operator - copies contents from a given Buffer and increases the size if necessary.
 
bool operator== (const Buffer &buff) const
 Comparison operator - copies contents from a given Buffer and increases the size if necessary.
 
uint32 getSize () const
 
bool setSize (uint32 newSize)
 Sets a new size for this Buffer, keeping as much content as possible.
 
bool grow (uint32 memSize)
 Increases the Buffer to the next block, block size given by delta.
 
bool setMaxSize (uint32 size)
 see grow()
 
void fillup (uint8 initVal=0)
 set from fillSize to end
 
uint32 getFillSize () const
 
bool setFillSize (uint32 c)
 sets a new fill size, does not change any memory
 
void flush ()
 sets fill size to zero
 
bool truncateToFillSize ()
 
bool isFull () const
 
uint32 getFree () const
 
void shiftStart (int32 amount)
 moves all memory by given amount, grows the Buffer if necessary
 
void shiftAt (uint32 position, int32 amount)
 moves memory starting at the given position
 
void move (int32 amount, uint8 initVal=0)
 shifts memory at start without growing the buffer, so data is lost and initialized with init val
 
bool copy (uint32 from, uint32 to, uint32 bytes)
 copies a number of bytes from one position to another, the size may be adapted
 
uint32 get (void *b, uint32 size)
 copy to buffer from fillSize, and shift fillSize
 
void setDelta (uint32 d)
 define the block size by which the Buffer grows, see grow()
 
bool put (uint8)
 append value at end, grows Buffer if necessary
 
bool put (char16 c)
 append value at end, grows Buffer if necessary
 
bool put (char c)
 append value at end, grows Buffer if necessary
 
bool put (const void *, uint32 size)
 append bytes from a given buffer, grows Buffer if necessary
 
bool put (void *, uint32 size)
 append bytes from a given buffer, grows Buffer if necessary
 
bool put (uint8 *, uint32 size)
 append bytes from a given buffer, grows Buffer if necessary
 
bool put (char8 *, uint32 size)
 append bytes from a given buffer, grows Buffer if necessary
 
bool put (const uint8 *, uint32 size)
 append bytes from a given buffer, grows Buffer if necessary
 
bool put (const char8 *, uint32 size)
 append bytes from a given buffer, grows Buffer if necessary
 
bool put (const String &)
 append String at end, grows Buffer if necessary
 
void set (uint8 value)
 fills complete Buffer with given value
 
bool appendString (const char *s)
 
bool appendString (char *s)
 
bool appendString (char c)
 
bool appendString8 (const char8 *s)
 
bool appendString16 (const char16 *s)
 
bool appendString8 (char8 *s)
 
bool appendString8 (unsigned char *s)
 
bool appendString8 (const unsigned char *s)
 
bool appendString8 (char8 c)
 
bool appendString8 (unsigned char c)
 
bool appendString16 (char16 c)
 
bool appendString16 (char16 *s)
 
bool prependString (const char *s)
 
bool prependString (char *s)
 
bool prependString (char c)
 
bool prependString8 (const char8 *s)
 
bool prependString16 (const char16 *s)
 
bool prependString8 (char8 c)
 
bool prependString8 (unsigned char c)
 
bool prependString8 (char8 *s)
 
bool prependString8 (unsigned char *s)
 
bool prependString8 (const unsigned char *s)
 
bool prependString16 (char16 c)
 
bool prependString16 (char16 *s)
 
bool operator+= (const char *s)
 
bool operator+= (char c)
 
bool operator+= (const char16 *s)
 
bool operator+= (char16 c)
 
bool operator= (const char *s)
 
bool operator= (const char16 *s)
 
bool operator= (char8 c)
 
bool operator= (char16 c)
 
void endString ()
 
void endString8 ()
 
void endString16 ()
 
bool makeHexString (String &result)
 
bool fromHexString (const char8 *string)
 
 operator void * () const
 conversion
 
char * str () const
 conversion
 
char8 * str8 () const
 conversion
 
char16 * str16 () const
 conversion
 
int8 * int8Ptr () const
 conversion
 
uint8 * uint8Ptr () const
 conversion
 
int16 * int16Ptr () const
 conversion
 
uint16 * uint16Ptr () const
 conversion
 
int32 * int32Ptr () const
 conversion
 
uint32 * uint32Ptr () const
 conversion
 
float * floatPtr () const
 conversion
 
double * doublePtr () const
 conversion
 
char16 * wcharPtr () const
 conversion
 
int8 * operator+ (uint32 i)
 
int32 operator! ()
 
bool swap (int16 swapSize)
 swap all bytes of this Buffer by the given swapSize
 
void take (Buffer &from)
 takes another Buffer's memory, frees the current Buffer's memory
 
int8 * pass ()
 pass the current Buffer's memory
 
virtual bool toWideString (int32 sourceCodePage)
 Converts a Buffer's content to UTF-16 from a given multi-byte code page, Buffer must contain char8 of given encoding.
 
virtual bool toMultibyteString (int32 destCodePage)
 Converts a Buffer's content from UTF-16 to a given multi-byte code page, Buffer must contain UTF-16 encoded characters.
 

Static Public Member Functions

static bool swap (void *buffer, uint32 bufferSize, int16 swapSize)
 utility, swap given number of bytes in given buffer by the given swapSize
 

Protected Attributes

int8 * buffer
 
uint32 memSize
 
uint32 fillSize
 
uint32 delta
 

Static Protected Attributes

static const uint32 defaultDelta = 0x1000
 

Detailed Description

Buffer.

A Buffer is an object-oriented wrapper for a piece of memory. It adds several utility functions, e.g. for managing the size of the Buffer, appending or prepending values or strings to it. Internally it uses the standard memory functions malloc(), free(), etc.

Member Enumeration Documentation

enum swapSize
Enumerator
kSwap16 
kSwap32 
kSwap64 

Constructor & Destructor Documentation

Buffer ( )

Default constructor, allocates no memory at all.

Buffer ( const void *  b,
uint32  size 
)

Constructor - creates a new Buffer with a given size and copies contents from optional memory pointer.

Parameters
[in]b: optional memory pointer with the size of at least the given size
[in]size: the size of the new Buffer to be allocated, in bytes.
Buffer ( uint32  size,
uint8  initVal 
)

Constructor - creates a new Buffer with a given size and fills it all with a given value.

Parameters
[in]size: the size of the new Buffer to be allocated, in bytes.
[in]initVal: the initial value the Buffer will be completely filled with
Buffer ( uint32  size)

Constructor - creates a new Buffer with a given size.

Parameters
[in]size: the size of the new Buffer to be allocated, in bytes.
Buffer ( const Buffer buff)

Copy constructor - creates a new Buffer from a given Buffer.

Parameters
[in]buff: the Buffer from which all memory will be copied to the new one
~Buffer ( )
virtual

Destructor - deallocates the internal memory.

Member Function Documentation

void operator= ( const Buffer buff)

Assignment operator - copies contents from a given Buffer and increases the size if necessary.

Parameters
[in]buff: the Buffer from which all memory will be copied
bool operator== ( const Buffer buff) const

Comparison operator - copies contents from a given Buffer and increases the size if necessary.

Parameters
[in]buff: the Buffer to be compared to
Returns
true, if the given Buffer's content is equal to this one, else false
uint32 getSize ( ) const
inline
Returns
the actual size of the Buffer's memory, in bytes.
bool setSize ( uint32  newSize)

Sets a new size for this Buffer, keeping as much content as possible.

Parameters
[in]newSize: the new size for the Buffer, in bytes, newSize maybe zero
Returns
true, if the new size could be adapted, else false
bool grow ( uint32  memSize)

Increases the Buffer to the next block, block size given by delta.

Parameters
[in]memSize: the new minimum size of the Buffer, newSize maybe zero
Returns
true, if the Buffer could be grown successfully, else false
bool setMaxSize ( uint32  size)
inline

see grow()

void fillup ( uint8  initVal = 0)

set from fillSize to end

uint32 getFillSize ( ) const
inline
Returns
the actual fill size
bool setFillSize ( uint32  c)

sets a new fill size, does not change any memory

void flush ( )
inline

sets fill size to zero

bool truncateToFillSize ( )
Returns
always true, truncates the size of the Buffer to the actual fill size
bool isFull ( ) const
inline
Returns
true, if all memory is filled up, else false
uint32 getFree ( ) const
inline
Returns
remaining memory
void shiftStart ( int32  amount)
inline

moves all memory by given amount, grows the Buffer if necessary

void shiftAt ( uint32  position,
int32  amount 
)

moves memory starting at the given position

void move ( int32  amount,
uint8  initVal = 0 
)

shifts memory at start without growing the buffer, so data is lost and initialized with init val

bool copy ( uint32  from,
uint32  to,
uint32  bytes 
)

copies a number of bytes from one position to another, the size may be adapted

uint32 get ( void *  b,
uint32  size 
)

copy to buffer from fillSize, and shift fillSize

void setDelta ( uint32  d)
inline

define the block size by which the Buffer grows, see grow()

bool put ( uint8  byte)

append value at end, grows Buffer if necessary

bool put ( char16  c)

append value at end, grows Buffer if necessary

bool put ( char  c)

append value at end, grows Buffer if necessary

bool put ( const void *  toPut,
uint32  size 
)

append bytes from a given buffer, grows Buffer if necessary

bool put ( void *  p,
uint32  size 
)
inline

append bytes from a given buffer, grows Buffer if necessary

bool put ( uint8 *  p,
uint32  size 
)
inline

append bytes from a given buffer, grows Buffer if necessary

bool put ( char8 *  p,
uint32  size 
)
inline

append bytes from a given buffer, grows Buffer if necessary

bool put ( const uint8 *  p,
uint32  size 
)
inline

append bytes from a given buffer, grows Buffer if necessary

bool put ( const char8 *  p,
uint32  size 
)
inline

append bytes from a given buffer, grows Buffer if necessary

bool put ( const String str)

append String at end, grows Buffer if necessary

void set ( uint8  value)

fills complete Buffer with given value

bool appendString ( const char *  s)
inline
bool appendString ( char *  s)
inline
bool appendString ( char  c)
inline
bool appendString8 ( const char8 *  s)
bool appendString16 ( const char16 *  s)
bool appendString8 ( char8 *  s)
inline
bool appendString8 ( unsigned char *  s)
inline
bool appendString8 ( const unsigned char *  s)
inline
bool appendString8 ( char8  c)
inline
bool appendString8 ( unsigned char  c)
inline
bool appendString16 ( char16  c)
inline
bool appendString16 ( char16 *  s)
inline
bool prependString ( const char *  s)
inline
bool prependString ( char *  s)
inline
bool prependString ( char  c)
inline
bool prependString8 ( const char8 *  s)
bool prependString16 ( const char16 *  s)
bool prependString8 ( char8  c)
bool prependString8 ( unsigned char  c)
inline
bool prependString8 ( char8 *  s)
inline
bool prependString8 ( unsigned char *  s)
inline
bool prependString8 ( const unsigned char *  s)
inline
bool prependString16 ( char16  c)
bool prependString16 ( char16 *  s)
inline
bool operator+= ( const char *  s)
inline
bool operator+= ( char  c)
inline
bool operator+= ( const char16 *  s)
inline
bool operator+= ( char16  c)
inline
bool operator= ( const char *  s)
inline
bool operator= ( const char16 *  s)
inline
bool operator= ( char8  c)
inline
bool operator= ( char16  c)
inline
void endString ( )
inline
void endString8 ( )
inline
void endString16 ( )
inline
bool makeHexString ( String result)
bool fromHexString ( const char8 *  string)
operator void * ( ) const
inline

conversion

char* str ( ) const
inline

conversion

char8* str8 ( ) const
inline

conversion

char16* str16 ( ) const
inline

conversion

int8* int8Ptr ( ) const
inline

conversion

uint8* uint8Ptr ( ) const
inline

conversion

int16* int16Ptr ( ) const
inline

conversion

uint16* uint16Ptr ( ) const
inline

conversion

int32* int32Ptr ( ) const
inline

conversion

uint32* uint32Ptr ( ) const
inline

conversion

float* floatPtr ( ) const
inline

conversion

double* doublePtr ( ) const
inline

conversion

char16* wcharPtr ( ) const
inline

conversion

int8 * operator+ ( uint32  i)
Returns
the internal Buffer's address plus the given offset i, zero if offset is out of range
int32 operator! ( )
inline
bool swap ( int16  swapSize)

swap all bytes of this Buffer by the given swapSize

bool swap ( void *  buffer,
uint32  bufferSize,
int16  swapSize 
)
static

utility, swap given number of bytes in given buffer by the given swapSize

void take ( Buffer from)

takes another Buffer's memory, frees the current Buffer's memory

int8 * pass ( )

pass the current Buffer's memory

bool toWideString ( int32  sourceCodePage)
virtual

Converts a Buffer's content to UTF-16 from a given multi-byte code page, Buffer must contain char8 of given encoding.

Parameters
[in]sourceCodePage: the actual code page of the Buffer's content
Returns
true, if the conversion was successful, else false
bool toMultibyteString ( int32  destCodePage)
virtual

Converts a Buffer's content from UTF-16 to a given multi-byte code page, Buffer must contain UTF-16 encoded characters.

Parameters
[in]destCodePage: the desired code page to convert the Buffer's content to
Returns
true, if the conversion was successful, else false

Member Data Documentation

const uint32 defaultDelta = 0x1000
staticprotected
int8* buffer
protected
uint32 memSize
protected
uint32 fillSize
protected
uint32 delta
protected
Empty

Copyright ©2024 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.