{{+bindTo:partials.standard_nacl_api}}
VarArrayBuffer () | |
VarArrayBuffer (const Var &var) | |
VarArrayBuffer (uint32_t size_in_bytes) | |
VarArrayBuffer (const VarArrayBuffer &buffer) | |
virtual | ~VarArrayBuffer () |
VarArrayBuffer & | operator= (const VarArrayBuffer &other) |
virtual Var & | operator= (const Var &other) |
uint32_t | ByteLength () const |
void * | Map () |
void | Unmap () |
VarArrayBuffer
provides a way to interact with JavaScript ArrayBuffers, which represent a contiguous sequence of bytes.
Note that these vars are not part of the embedding page's DOM, and can only be shared with JavaScript using the PostMessage
and HandleMessage
functions of Instance
.
The default constructor constructs a VarArrayBuffer
which is 0 byte long.
pp::VarArrayBuffer::VarArrayBuffer | ( | const Var & | var | ) | [explicit] |
Construct a VarArrayBuffer
given a var for which is_array_buffer() is true.
This will refer to the same ArrayBuffer
as var, but allows you to access methods specific to VarArrayBuffer
.
[in] | var | An ArrayBuffer var. |
pp::VarArrayBuffer::VarArrayBuffer | ( | uint32_t | size_in_bytes | ) | [explicit] |
Construct a new VarArrayBuffer
which is size_in_bytes
bytes long and initialized to zero.
[in] | size_in_bytes | The size of the constructed ArrayBuffer in bytes. |
pp::VarArrayBuffer::VarArrayBuffer | ( | const VarArrayBuffer & | buffer | ) | [inline] |
Copy constructor.
virtual pp::VarArrayBuffer::~VarArrayBuffer | ( | ) | [inline, virtual] |
uint32_t pp::VarArrayBuffer::ByteLength | ( | ) | const |
ByteLength() retrieves the length of the VarArrayBuffer
in bytes.
VarArrayBuffer
in bytes. void* pp::VarArrayBuffer::Map | ( | ) |
Map() maps the ArrayBuffer
in to the module's address space and returns a pointer to the beginning of the internal buffer for this ArrayBuffer
.
ArrayBuffers are copied when transmitted, so changes to the underlying memory are not automatically available to the embedding page.
Note that calling Map() can be a relatively expensive operation. Use care when calling it in performance-critical code. For example, you should call it only once when looping over an ArrayBuffer
.
Example:
char* data = static_cast<char*>(array_buffer_var.Map()); uint32_t byte_length = array_buffer_var.ByteLength(); for (uint32_t i = 0; i < byte_length; ++i) data[i] = 'A';
ArrayBuffer
. VarArrayBuffer& pp::VarArrayBuffer::operator= | ( | const VarArrayBuffer & | other | ) |
This function assigns one VarArrayBuffer
to another VarArrayBuffer
.
[in] | other | The VarArrayBuffer to be assigned. |
VarArrayBuffer
. This function assigns one VarArrayBuffer
to another VarArrayBuffer
.
A Var's assignment operator is overloaded here so that we can check for assigning a non-ArrayBuffer var to a VarArrayBuffer
.
[in] | other | The VarArrayBuffer to be assigned. |
VarArrayBuffer
(as a Var&). Reimplemented from pp::Var.
void pp::VarArrayBuffer::Unmap | ( | ) |