# Titanium.Buffer
Buffer is a mutable, resizable container for raw data.
# Overview
A Buffer
works like a resizable array of byte values.
Use the Titanium.createBuffer method to create a buffer.
# Properties
# byteOrder CREATION ONLY
Byte order of this buffer.
Specify either BIG_ENDIAN or LITTLE_ENDIAN.
Default: OS native byte order.
# length
Length of the buffer in bytes.
When length
is modified the buffer will be re-sized while preserving existing data where
possible. If the new buffer length is smaller than the length of the existing data then the
existing data will be truncated down to the size of the new buffer.
Resizing a buffer by setting its length should be used sparingly due to the associated overhead.
Default: 0 unless `value` is specified, in which case the length of the encoded data is used.
# type CREATION ONLY
The type of data encoding to use with value
.
Required when value
is a Number. For numbers, specify a TYPE
constant
from Titanium.Codec, for example, TYPE_DOUBLE.
When value
is a String, specify a CHARSET
constant from Titanium.Codec.
Default: For string values, defaults to <Titanium.Codec.CHARSET_UTF8>.
# value CREATION ONLY
Data to be encoded.
If value
is a Number, type
must also be set. (This is simply a convenient way of
calling encodeString or encodeNumber.)
# Methods
# append
Appends sourceBuffer
to the this buffer.
This buffer is grown dynamically to accommodate the additional data if need be.
If sourceOffset
and sourceLength
are specified, data from sourceBuffer
is
copied starting at position sourceOffset
, and no more than sourceLength
bytes
are copied.
Parameters
Name | Type | Description |
---|---|---|
sourceBuffer | Titanium.Buffer | Buffer to append to this buffer. |
sourceOffset | Number | Offset to start reading buffer data from.
If specified, |
sourceLength | Number | Number of bytes to read from |
Returns
The number of bytes appended.
- Type
- Number
# clear
Clears this buffer's contents but does not change the size of the buffer.
Returns
- Type
- void
# clone
Creates a complete or partial copy of this buffer.
If called with no arguments, retuns a complete copy of the current buffer.
If offset
and length
are specified, creates a new buffer from the original
buffer contents starting at offset
and ending at offset
+length
-1.
Parameters
Name | Type | Description |
---|---|---|
offset | Number | Offset of first byte of this buffer to clone.
If specified, |
length | Number | Number of bytes of data to clone. |
Returns
- Type
- Titanium.Buffer
# copy
Copies data from sourceBuffer
into the current buffer at offset
.
Does not expand this buffer if there is not enough room to accomodate the data
from sourceBuffer
.
If sourceOffset
and sourceLength
are specified, bytes are copied from
sourceBuffer
starting at sourceOffset
, and a maximum of sourceLength
bytes
are copied.
Parameters
Name | Type | Description |
---|---|---|
sourceBuffer | Titanium.Buffer | Buffer to copy data from. |
offset | Number | Offset in this buffer for the first byte of the copied data. |
sourceOffset | Number | Offset in |
sourceLength | Number | Number of bytes to copy from |
Returns
The number of bytes copied.
- Type
- Number
# fill
Fills this buffer with the specified byte value.
Fills the buffer by setting byte values to fillByte
.
If offset
and length
are specified, fills the buffer starting at
offset
and ending at offset
+length
-1.
If offset
and length
are omitted, fills the entire buffer.
Parameters
Name | Type | Description |
---|---|---|
fillByte | Number | Byte to fill buffer with. |
offset | Number | Offset of the first byte to set to |
length | Number | Number of bytes to fill. |
Returns
- Type
- void
# insert
Inserts data from sourceBuffer
into this buffer at offset
.
Buffer is grown to accommodate the new data.
If sourceOffset
and sourceLength
are specified, sourceLength
bytes
of data are copied from sourceBuffer
, with the first byte at sourceOffset
.
Parameters
Name | Type | Description |
---|---|---|
sourceBuffer | Titanium.Buffer | Buffer holding data to insert into this buffer. |
offset | Number | Offset in this buffer to insert the first byte copied from
|
sourceOffset | Number | Offset in |
sourceLength | Number | Number of bytes to insert from |
Returns
The number of bytes inserted.
- Type
- Number
# release
Releases the space allocated to the buffer, and sets its length to 0.
This is effectively the same as buffer.length = 0
.
Returns
- Type
- void
# toBlob
Converts this buffer to a Titanium.Blob.
Returns
- Type
- Titanium.Blob