Data Fields
| struct PP_Var(* | Create )(uint32_t size_in_bytes) |
| PP_Bool(* | ByteLength )(struct PP_Var array, uint32_t *byte_length) |
| void *(* | Map )(struct PP_Var array) |
| void(* | Unmap )(struct PP_Var array) |
Detailed Description
The PPB_VarArrayBuffer interface provides a way to interact with JavaScript ArrayBuffers, which represent a contiguous sequence of bytes.
Use PPB_Var to manage the reference count for a VarArrayBuffer. 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 pp::Instance.
Field Documentation
| PP_Bool(* PPB_VarArrayBuffer::ByteLength)(struct PP_Var array, uint32_t *byte_length) |
ByteLength() retrieves the length of the VarArrayBuffer in bytes.
On success, byte_length is set to the length of the given ArrayBuffer var. On failure, byte_length is unchanged (this could happen, for instance, if the given PP_Var is not of type PP_VARTYPE_ARRAY_BUFFER). Note that ByteLength() will successfully retrieve the size of an ArrayBuffer even if the ArrayBuffer is not currently mapped.
- Parameters:
[in] array The ArrayBufferwhose length should be returned.[out] byte_length A variable which is set to the length of the given ArrayBufferon success.
- Returns:
PP_TRUEon success,PP_FALSEon failure.
struct PP_Var(* PPB_VarArrayBuffer::Create)(uint32_t size_in_bytes) [read] |
| void*(* PPB_VarArrayBuffer::Map)(struct PP_Var array) |
Map() maps the ArrayBuffer in to the module's address space and returns a pointer to the beginning of the buffer for the given ArrayBuffer PP_Var.
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 = (char*)(array_buffer_if.Map(array_buffer_var)); uint32_t byte_length = 0; PP_Bool ok = array_buffer_if.ByteLength(array_buffer_var, &byte_length); if (!ok) return DoSomethingBecauseMyVarIsNotAnArrayBuffer(); for (uint32_t i = 0; i < byte_length; ++i) data[i] = 'A';
- Parameters:
[in] array The ArrayBufferwhose internal buffer should be returned.
- Returns:
- A pointer to the internal buffer for this
ArrayBuffer. ReturnsNULLif the givenPP_Varis not of typePP_VARTYPE_ARRAY_BUFFER.
| void(* PPB_VarArrayBuffer::Unmap)(struct PP_Var array) |
Unmap() unmaps the given ArrayBuffer var from the module address space.
Use this if you want to save memory but might want to call Map() to map the buffer again later. The PP_Var remains valid and should still be released using PPB_Var when you are done with the ArrayBuffer.
- Parameters:
[in] array The ArrayBufferto be released.
The documentation for this struct was generated from the following file: