![]() |
Boron 2.1.0
|
The binary datatype is a series of bytes. More...
Functions | |
UIndex | ur_makeBinary (UThread *ut, int size) |
Generate and initialize a single binary buffer. | |
UBuffer * | ur_makeBinaryCell (UThread *ut, int size, UCell *cell) |
Generate a single binary and set cell to reference it. | |
void | ur_binInit (UBuffer *buf, int size) |
Initialize buffer to type UT_BINARY. | |
void | ur_binFree (UBuffer *buf) |
Free binary data. | |
void | ur_binReserve (UBuffer *buf, int size) |
Allocates enough memory to hold size bytes. | |
void | ur_binErase (UBuffer *buf, int start, int count) |
Remove bytes from the binary. | |
void | ur_binExpand (UBuffer *buf, int index, int count) |
Create space in the binary for count bytes starting at index. | |
void | ur_binAppendData (UBuffer *buf, const uint8_t *data, int len) |
Append data to binary buffer. | |
void | ur_binAppendArray (UBuffer *buf, const USeriesIter *si) |
Append array slice to binary buffer. | |
const char * | ur_binAppendBase (UBuffer *buf, const char *it, const char *end, enum UrlanBinaryEncoding enc) |
Append encoded ASCII string to binary buffer. | |
void | ur_binSlice (UThread *ut, UBinaryIter *bi, const UCell *cell) |
Set UBinaryIter to binary slice. | |
UStatus | ur_binSliceM (UThread *ut, UBinaryIterM *bi, const UCell *cell) |
Set UBinaryIterM to binary slice. | |
void | ur_binToStr (UBuffer *buf, int encoding) |
Convert binary buffer to string buffer. | |
The binary datatype is a series of bytes.
void ur_binAppendArray | ( | UBuffer * | buf, |
const USeriesIter * | si ) |
Append array slice to binary buffer.
buf | Initialized binary buffer. |
si | Data to append. si.buf->elemSize must be valid. |
const char * ur_binAppendBase | ( | UBuffer * | buf, |
const char * | it, | ||
const char * | end, | ||
enum UrlanBinaryEncoding | enc ) |
Append encoded ASCII string to binary buffer.
buf | Initialized binary buffer. |
it | Start of string |
end | End of string |
enc | Encoding of string. |
void ur_binAppendData | ( | UBuffer * | buf, |
const uint8_t * | data, | ||
int | len ) |
Append data to binary buffer.
buf | Initialized binary buffer. |
data | Data to append. |
len | Number of bytes from data to append. |
void ur_binErase | ( | UBuffer * | buf, |
int | start, | ||
int | count ) |
Remove bytes from the binary.
buf | Initialized binary buffer. |
start | Start index of erase. |
count | Number of bytes to remove. |
void ur_binExpand | ( | UBuffer * | buf, |
int | index, | ||
int | count ) |
Create space in the binary for count bytes starting at index.
The memory in the new space is uninitialized.
buf | Initialized binary buffer. |
index | Position to expand at. |
count | Number of bytes to expand. |
void ur_binFree | ( | UBuffer * | buf | ) |
Free binary data.
buf->ptr and buf->used are set to zero.
void ur_binInit | ( | UBuffer * | buf, |
int | size ) |
Initialize buffer to type UT_BINARY.
size | Number of bytes to reserve. |
void ur_binReserve | ( | UBuffer * | buf, |
int | size ) |
Allocates enough memory to hold size bytes.
buf->used is not changed.
buf | Initialized binary buffer. |
size | Total number of bytes. |
Set UBinaryIter to binary slice.
bi | Iterator struct to fill. |
cell | Pointer to a valid binary cell. |
Set UBinaryIterM to binary slice.
If cell references a binary in shared storage then an error is generated and UR_THROW is returned. Otherwise, bi is initialized. If the slice is empty then bi->it and bi->end are set to zero.
bi | Iterator struct to fill. |
cell | Pointer to a valid binary cell. |
void ur_binToStr | ( | UBuffer * | buf, |
int | encoding ) |
Convert binary buffer to string buffer.
The data that buf->ptr points to is not touched.
buf | Initialized binary buffer. |
encoding | Encoding |
Generate and initialize a single binary buffer.
If you need multiple buffers then ur_genBuffers() should be used.
The caller must create a UCell for this block in a held block before the next ur_recycle() or else it will be garbage collected.
size | Number of bytes to reserve. |
Generate a single binary and set cell to reference it.
If you need multiple buffers then ur_genBuffers() should be used.
size | Number of bytes to reserve. |
cell | Cell to initialize. |