Base Module: Buffer Class Reference
Author: Steinberg

Base Module VST 3.7 SDK for developing VST plug-in

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
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

## ◆ swapSize

enum swapSize

Enumerator
kSwap16 |
kSwap32 |
kSwap64 |

## Constructor & Destructor Documentation

## ◆ Buffer() [1/5]

Buffer | ( |  | ) |

Default constructor, allocates no memory at all.

## ◆ Buffer() [2/5]

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() [3/5]

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() [4/5]

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() [5/5]

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()

~Buffer | ( |  | ) |
| virtual

Destructor - deallocates the internal memory.

## Member Function Documentation

## ◆ operator=() [1/5]

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

## ◆ operator==()

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

## ◆ getSize()

uint32 getSize | ( |  | ) | const
| inline

Returns
  the actual size of the Buffer's memory, in bytes.

## ◆ setSize()

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

## ◆ grow()

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

## ◆ setMaxSize()

bool setMaxSize | ( | uint32 | size | ) |
| inline

see grow()

## ◆ fillup()

void fillup | ( | uint8 | initVal = 0 | ) |

set from fillSize to end

## ◆ getFillSize()

uint32 getFillSize | ( |  | ) | const
| inline

Returns
  the actual fill size

## ◆ setFillSize()

bool setFillSize | ( | uint32 | c | ) |

sets a new fill size, does not change any memory

## ◆ flush()

void flush | ( |  | ) |
| inline

sets fill size to zero

## ◆ truncateToFillSize()

bool truncateToFillSize | ( |  | ) |

Returns
  always true, truncates the size of the Buffer to the actual fill size

## ◆ isFull()

bool isFull | ( |  | ) | const
| inline

Returns
  true, if all memory is filled up, else false

## ◆ getFree()

uint32 getFree | ( |  | ) | const
| inline

Returns
  remaining memory

## ◆ shiftStart()

void shiftStart | ( | int32 | amount | ) |
| inline

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

## ◆ shiftAt()

void shiftAt | ( | uint32 | position,
|  | int32 | amount )

moves memory starting at the given position

## ◆ move()

void move | ( | int32 | amount,
|  | uint8 | initVal = 0 )

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

## ◆ copy()

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

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

## ◆ get()

uint32 get | ( | void * | b,
|  | uint32 | size )

copy to buffer from fillSize, and shift fillSize

## ◆ setDelta()

void setDelta | ( | uint32 | d | ) |
| inline

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

## ◆ put() [1/10]

bool put | ( | uint8 | byte | ) |

append value at end, grows Buffer if necessary

## ◆ put() [2/10]

bool put | ( | char16 | c | ) |

append value at end, grows Buffer if necessary

## ◆ put() [3/10]

bool put | ( | char | c | ) |

append value at end, grows Buffer if necessary

## ◆ put() [4/10]

bool put | ( | const void * | toPut,
|  | uint32 | size )

append bytes from a given buffer, grows Buffer if necessary

## ◆ put() [5/10]

bool put | ( | void * | p,
|  | uint32 | size )
| inline

append bytes from a given buffer, grows Buffer if necessary

## ◆ put() [6/10]

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

append bytes from a given buffer, grows Buffer if necessary

## ◆ put() [7/10]

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

append bytes from a given buffer, grows Buffer if necessary

## ◆ put() [8/10]

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

append bytes from a given buffer, grows Buffer if necessary

## ◆ put() [9/10]

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

append bytes from a given buffer, grows Buffer if necessary

## ◆ put() [10/10]

bool put | ( | const String & | str | ) |

append String at end, grows Buffer if necessary

## ◆ set()

void set | ( | uint8 | value | ) |

fills complete Buffer with given value

## ◆ appendString() [1/3]

bool appendString | ( | const char * | s | ) |
| inline

## ◆ appendString() [2/3]

bool appendString | ( | char * | s | ) |
| inline

## ◆ appendString() [3/3]

bool appendString | ( | char | c | ) |
| inline

## ◆ appendString8() [1/6]

bool appendString8 | ( | const char8 * | s | ) |

## ◆ appendString16() [1/3]

bool appendString16 | ( | const char16 * | s | ) |

## ◆ appendString8() [2/6]

bool appendString8 | ( | char8 * | s | ) |
| inline

## ◆ appendString8() [3/6]

bool appendString8 | ( | unsigned char * | s | ) |
| inline

## ◆ appendString8() [4/6]

bool appendString8 | ( | const unsigned char * | s | ) |
| inline

## ◆ appendString8() [5/6]

bool appendString8 | ( | char8 | c | ) |
| inline

## ◆ appendString8() [6/6]

bool appendString8 | ( | unsigned char | c | ) |
| inline

## ◆ appendString16() [2/3]

bool appendString16 | ( | char16 | c | ) |
| inline

## ◆ appendString16() [3/3]

bool appendString16 | ( | char16 * | s | ) |
| inline

## ◆ prependString() [1/3]

bool prependString | ( | const char * | s | ) |
| inline

## ◆ prependString() [2/3]

bool prependString | ( | char * | s | ) |
| inline

## ◆ prependString() [3/3]

bool prependString | ( | char | c | ) |
| inline

## ◆ prependString8() [1/6]

bool prependString8 | ( | const char8 * | s | ) |

## ◆ prependString16() [1/3]

bool prependString16 | ( | const char16 * | s | ) |

## ◆ prependString8() [2/6]

bool prependString8 | ( | char8 | c | ) |

## ◆ prependString8() [3/6]

bool prependString8 | ( | unsigned char | c | ) |
| inline

## ◆ prependString8() [4/6]

bool prependString8 | ( | char8 * | s | ) |
| inline

## ◆ prependString8() [5/6]

bool prependString8 | ( | unsigned char * | s | ) |
| inline

## ◆ prependString8() [6/6]

bool prependString8 | ( | const unsigned char * | s | ) |
| inline

## ◆ prependString16() [2/3]

bool prependString16 | ( | char16 | c | ) |

## ◆ prependString16() [3/3]

bool prependString16 | ( | char16 * | s | ) |
| inline

## ◆ operator+=() [1/4]

bool operator+= | ( | const char * | s | ) |
| inline

## ◆ operator+=() [2/4]

bool operator+= | ( | char | c | ) |
| inline

## ◆ operator+=() [3/4]

bool operator+= | ( | const char16 * | s | ) |
| inline

## ◆ operator+=() [4/4]

bool operator+= | ( | char16 | c | ) |
| inline

## ◆ operator=() [2/5]

bool operator= | ( | const char * | s | ) |
| inline

## ◆ operator=() [3/5]

bool operator= | ( | const char16 * | s | ) |
| inline

## ◆ operator=() [4/5]

bool operator= | ( | char8 | c | ) |
| inline

## ◆ operator=() [5/5]

bool operator= | ( | char16 | c | ) |
| inline

## ◆ endString()

void endString | ( |  | ) |
| inline

## ◆ endString8()

void endString8 | ( |  | ) |
| inline

## ◆ endString16()

void endString16 | ( |  | ) |
| inline

## ◆ makeHexString()

bool makeHexString | ( | String & | result | ) |

## ◆ fromHexString()

bool fromHexString | ( | const char8 * | string | ) |

## ◆ operator void *()

operator void * | ( |  | ) | const
| inline

conversion

## ◆ str()

char * str | ( |  | ) | const
| inline

conversion

## ◆ str8()

char8 * str8 | ( |  | ) | const
| inline

conversion

## ◆ str16()

char16 * str16 | ( |  | ) | const
| inline

conversion

## ◆ int8Ptr()

int8 * int8Ptr | ( |  | ) | const
| inline

conversion

## ◆ uint8Ptr()

uint8 * uint8Ptr | ( |  | ) | const
| inline

conversion

## ◆ int16Ptr()

int16 * int16Ptr | ( |  | ) | const
| inline

conversion

## ◆ uint16Ptr()

uint16 * uint16Ptr | ( |  | ) | const
| inline

conversion

## ◆ int32Ptr()

int32 * int32Ptr | ( |  | ) | const
| inline

conversion

## ◆ uint32Ptr()

uint32 * uint32Ptr | ( |  | ) | const
| inline

conversion

## ◆ floatPtr()

float * floatPtr | ( |  | ) | const
| inline

conversion

## ◆ doublePtr()

double * doublePtr | ( |  | ) | const
| inline

conversion

## ◆ wcharPtr()

char16 * wcharPtr | ( |  | ) | const
| inline

conversion

## ◆ operator+()

int8 * operator+ | ( | uint32 | i | ) |

Returns
  the internal Buffer's address plus the given offset i, zero if offset is out of range

## ◆ operator!()

int32 operator! | ( |  | ) |
| inline

## ◆ swap() [1/2]

bool swap | ( | int16 | swapSize | ) |

swap all bytes of this Buffer by the given swapSize

## ◆ swap() [2/2]

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

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

## ◆ take()

void take | ( | Buffer & | from | ) |

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

## ◆ pass()

int8 * pass | ( |  | ) |

pass the current Buffer's memory

## ◆ toWideString()

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

## ◆ toMultibyteString()

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

## ◆ defaultDelta

const uint32 defaultDelta = 0x1000
| staticprotected

## ◆ buffer

int8* buffer
| protected

## ◆ memSize

uint32 memSize
| protected

## ◆ fillSize

uint32 fillSize
| protected

## ◆ delta

uint32 delta
| protected

Empty

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