# 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