Base Module: Buffer Class Reference
Author: Steinberg

Base Module VST 3.7 SDK for developing VST plug-in

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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

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.