Unigine::Blob Class
Header: | #include <UnigineStreams.h> |
Inherits: | Stream |
This class is used to store data in the memory (unlike File which 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)
Casts a Blob out of the Stream instance.Arguments
Return value
Pointer to Blob.Blob.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.void setData(unsigned char * data, size_t size)
Sets new data to the Blob instance.You should manage the previously stored data manually.
Arguments
- unsigned char * data - Data to set to the Blob instance.
- size_t size - The size of the blob.
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.The blob 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
1 if the data is compressed successfully; otherwise, 0.int compressLz4(const Ptr<Stream> & dest, int quality)
Compresses the blob with Lz4 algorithm 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
1 if the data is successfully compressed; 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
1 if the blob is decompressed successfully; otherwise, 0.int decompressLz4(const Ptr<Stream> & src)
Reads and decompresses a previously compressed blob with Lz4 algorithm from a given stream.Arguments
- const Ptr<Stream> & src - Source stream to read data from.
Return value
1 if the blob is successfully decompressed; 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
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)