# Titanium.Buffer

Buffer is a mutable, resizable container for raw data.

Availability
1.7
1.7
9.2.0

# Overview

A Buffer works like a resizable array of byte values.

Use the Titanium.createBuffer method to create a buffer.

# Properties

# apiName READONLY

Availability
3.2.0
3.2.0
9.2.0
apiName :String

The name of the API that this proxy corresponds to.

The value of this property is the fully qualified name of the API. For example, Titanium.UI.Button returns Ti.UI.Button.


# bubbleParent

Availability
3.0.0
3.0.0
9.2.0
bubbleParent :Boolean

Indicates if the proxy will bubble an event to its parent.

Some proxies (most commonly views) have a relationship to other proxies, often established by the add() method. For example, for a button added to a window, a click event on the button would bubble up to the window. Other common parents are table sections to their rows, table views to their sections, and scrollable views to their views. Set this property to false to disable the bubbling to the proxy's parent.

Default: true


# byteOrder CREATION ONLY

Availability
1.7
1.7
9.2.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
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.


# lifecycleContainer

Availability
3.6.0

The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.

If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks will also be called on the proxy. Proxies that require the activity lifecycle will need this property set to the appropriate containing Window or TabGroup.


# type CREATION ONLY

Availability
1.7
1.7
9.2.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
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

# addEventListener

Availability
1.7
1.7
9.2.0
addEventListener(name, callback) void

Adds the specified callback as an event listener for the named event.

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to invoke when the event is fired.

Returns

Type
void

# append

Availability
1.7
1.7
9.2.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

# applyProperties

Availability
3.0.0
3.0.0
9.2.0
applyProperties(props) void

Applies the properties to the proxy.

Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that myproxy[key] = value.

Parameters

Name Type Description
props Dictionary

A dictionary of properties to apply.

Returns

Type
void

# clear

Availability
1.7
1.7
9.2.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
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
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
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

# fireEvent

Availability
1.7
1.7
9.2.0
fireEvent(name[, event]) void

Fires a synthesized event to any registered listeners.

Parameters

Name Type Description
name String

Name of the event.

event Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

Returns

Type
void

# insert

Availability
1.7
1.7
9.2.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
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

# removeEventListener

Availability
1.7
1.7
9.2.0
removeEventListener(name, callback) void

Removes the specified callback as an event listener for the named event.

Multiple listeners can be registered for the same event, so the callback parameter is used to determine which listener to remove.

When adding a listener, you must save a reference to the callback function in order to remove the listener later:

var listener = function() { Ti.API.info("Event listener called."); }
window.addEventListener('click', listener);

To remove the listener, pass in a reference to the callback function:

window.removeEventListener('click', listener);

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

Returns

Type
void

# toBlob

Availability
1.7
1.7
9.2.0
toBlob() Titanium.Blob

Converts this buffer to a Titanium.Blob.

Returns


# toString

Availability
1.7
1.7
9.2.0
toString() String

Converts this buffer to a String.

Returns

Type
String