# Titanium.Buffer

Buffer is a mutable, resizable container for raw data.

Availability
1.7
1.7
9.2.0
4.1.0

# Overview

A Buffer works like a resizable array of byte values.

Use the Titanium.createBuffer method to create a buffer.

# Properties

# byteOrder CREATION ONLY

Availability
1.7
1.7
9.2.0
4.1.0
byteOrder :Number

Byte order of this buffer.

Specify either BIG_ENDIAN or LITTLE_ENDIAN.

Default: OS native byte order.


# length

Availability
1.7
1.7
9.2.0
4.1.0
length :Number

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

Availability
1.7
1.7
9.2.0
4.1.0
type :String

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

Availability
1.7
1.7
9.2.0
4.1.0
value :Number | String

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

Availability
1.7
1.7
9.2.0
4.1.0
append(sourceBuffer[, sourceOffset[, sourceLength]]) Number

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 must also be specified.

sourceLength Number

Number of bytes to read from sourceBuffer. If specified, sourceOffset must also be specified.

Returns

The number of bytes appended.

Type
Number

# clear

Availability
1.7
1.7
9.2.0
4.1.0
clear() void

Clears this buffer's contents but does not change the size of the buffer.

Returns

Type
void

# clone

Availability
1.7
1.7
9.2.0
4.1.0
clone([offset[, length]]) Titanium.Buffer

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 must be specified as well.

length Number

Number of bytes of data to clone.

Returns


# copy

Availability
1.7
1.7
9.2.0
4.1.0
copy(sourceBuffer, offset[, sourceOffset[, sourceLength]]) Number

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 sourceBuffer to copy data from. If specified, sourceLength must be specified as well.

sourceLength Number

Number of bytes to copy from sourceBuffer. If specified, sourceOffset must be specified as well.

Returns

The number of bytes copied.

Type
Number

# fill

Availability
1.7
1.7
9.2.0
4.1.0
fill(fillByte[, offset[, length]]) void

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 fillByte.

length Number

Number of bytes to fill.

Returns

Type
void

# insert

Availability
1.7
1.7
9.2.0
4.1.0
insert(sourceBuffer, offset[, sourceOffset[, sourceLength]]) Number

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 sourceBuffer.

sourceOffset Number

Offset in sourceBuffer of the first byte to insert. If specified, sourceLength must be specified as well.

sourceLength Number

Number of bytes to insert from sourceBuffer. If specified, sourceOffset must be specified as well.

Returns

The number of bytes inserted.

Type
Number

# release

Availability
1.7
1.7
9.2.0
4.1.0
release() void

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

Availability
1.7
1.7
9.2.0
4.1.0
toBlob() Titanium.Blob

Converts this buffer to a Titanium.Blob.

Returns


# toString

Availability
1.7
1.7
9.2.0
4.1.0
toString() String

Converts this buffer to a String.

Returns

Type
String