# 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
# apiName READONLY
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
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
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.
# lifecycleContainer
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
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
# addEventListener
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
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
 
# applyProperties
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
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
 
# fireEvent
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
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
 
# removeEventListener
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   | 
Returns
- Type
 - void
 
# toBlob
Converts this buffer to a Titanium.Blob.
Returns
- Type
 - Titanium.Blob