Programming
Fundamentals
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes

Unigine::Blob Class

Header:#include <UnigineStreams.h>
Inherits:Stream

This class is used to store data in the memory (unlike Filewhich is stored on the disk). The blob uses either an Unigine allocator (if #define USE_MEMORY is set, by default) or a system allocator.

Blob Class

Members


static BlobPtr create(size_t size = 0)

Constructor. Creates a new blob of the specified size.

Arguments

  • size_t size - Blob size.

Ptr<Blob> cast(const Ptr<Stream> & stream)

Arguments

  • const Ptr<Stream> & stream

void set(size_t offset, unsigned char value)

Sets the value of the specified byte in the blob.

Arguments

  • size_t offset - The offset in the blob.
  • unsigned char value - The byte value.

unsigned char get(size_t offset)

Returns the value of the specified byte in the blob.

Arguments

  • size_t offset - The offset, in bytes.

Return value

The byte value.

int getc()

Gets a next symbol from the blob.

Return value

Character read from the blob.

String getCRC32()

Returns the 32-bit CRC checksum.

Return value

The 32-bit CRC checksum.

unsigned char * getData()

Returns the current blob data.

Return value

Blob data.

String getMD5()

Returns the 128-bit MD5 checksum.

Return value

The 128-bit MD5 checksum.

String getSHA1()

Returns the 160-bit SHA1 checksum.

Return value

The 160-bit SHA1 checksum.

size_t getSize()

Returns the current blob size.

Return value

Blob size.

void allocate(size_t size)

Allocates the required memory without resizing the blob. It will be resized dynamically when the allocated memory is filled.

Arguments

  • size_t size - Size of the allocated memory in bytes.

void clear()

Clears the blob size to 0.

int compress(const Ptr<Stream> & dest, int quality)

Compresses the blob and writes it into the given stream.

Arguments

  • const Ptr<Stream> & dest - Destination stream.
  • int quality - Compression quality (0 is for fast compression, 1 is for a small size).

Return value

Returns 1 if the data is compressed successfully; otherwise, 0.

int decode(const char * src)

Decodes a base64 encoded string into the blob.

Arguments

  • const char * src - Source base64 encoded string.

Return value

Returns 1 if the data is decoded successfully; otherwise, 0.

int decompress(const Ptr<Stream> & src)

Reads the compressed blob from a stream and decompresses it.

Arguments

  • const Ptr<Stream> & src - Source stream to read data from.

Return value

Returns 1 if the blob is decompressed successfully; otherwise, 0.

String encode()

Encodes the blob into the base64 encoded string.

Return value

Base64 encoded string.

int eof()

Tests if the end of the blob has been reached.

Return value

Returns 1 if the end of the blob is reached; otherwise, 0.

int flush()

Flushes the blob.

Return value

Returns 1 if the blob is flushed successfully; otherwise, 0.

void reserve(size_t size)

Reserves the blob, i.e. allocates (size * 1.5) bytes without resizing the blob. It will be resized dynamically when the allocated memory is filled.

Arguments

  • size_t size - Size of the allocated memory.

void resize(size_t size)

Allocates the required memory and resizes the blob.

Arguments

  • size_t size - Size of the blob in bytes.

int seekCur(size_t offset)

Seeks to position relative to the current offset.

Arguments

  • size_t offset - Offset in bytes from the current position of indicator.

Return value

Returns 1 if the blob position indicator is set successfully; otherwise, 0.

int seekEnd(size_t offset)

Seeks to position relative to the end of the blob.

Arguments

  • size_t offset - Offset in bytes from the end of the blob.

Return value

Returns 1 if the blob position indicator is set successfully; otherwise, 0.

int seekSet(size_t offset)

Seeks to position relative to the start of the blob.

Arguments

  • size_t offset - Offset in bytes from the beginning of the blob.

Return value

Returns 1 if the blob position indicator is set successfully; otherwise, 0.

size_t tell()

Gets the current blob offset position indicator.

Return value

Returns the current blob offset.
Last update: 2017-07-03