Public Member Functions
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 () |
Detailed Description
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
.
Constructor & Destructor Documentation
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
.
- Parameters:
[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.
- Parameters:
[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] |
Member Function Documentation
uint32_t pp::VarArrayBuffer::ByteLength | ( | ) | const |
ByteLength() retrieves the length of the VarArrayBuffer
in bytes.
- Returns:
- The length of the
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';
- Returns:
- A pointer to the internal buffer for this
ArrayBuffer
.
VarArrayBuffer& pp::VarArrayBuffer::operator= | ( | const VarArrayBuffer & | other | ) |
This function assigns one VarArrayBuffer
to another VarArrayBuffer
.
- Parameters:
[in] other The VarArrayBuffer
to be assigned.
- Returns:
- The resulting
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
.
- Parameters:
[in] other The VarArrayBuffer
to be assigned.
- Returns:
- The resulting
VarArrayBuffer
(as a Var&).
Reimplemented from pp::Var.
void pp::VarArrayBuffer::Unmap | ( | ) |
The documentation for this class was generated from the following file: