Public Member Functions | List of all members
pp::VarArrayBuffer Class Reference

#include <var_array_buffer.h>

Inheritance diagram for pp::VarArrayBuffer:
Inheritance graph
Collaboration diagram for pp::VarArrayBuffer:
Collaboration graph

Public Member Functions

 VarArrayBuffer ()
 VarArrayBuffer (const Var &var)
 VarArrayBuffer (uint32_t size_in_bytes)
 VarArrayBuffer (const VarArrayBuffer &buffer)
 Copy constructor. More...
virtual ~VarArrayBuffer ()
VarArrayBufferoperator= (const VarArrayBuffer &other)
virtual Varoperator= (const Var &other)
uint32_t ByteLength () const
void * Map ()
void Unmap ()
- Public Member Functions inherited from pp::Var
 Var ()
 Var (Null)
 A constructor used to create a Var of type Null. More...
 Var (bool b)
 Var (int32_t i)
 Var (double d)
 Var (const char *utf8_str)
 A constructor used to create a UTF-8 character Var. More...
 Var (const std::string &utf8_str)
 A constructor used to create a UTF-8 character Var. More...
 Var (PassRef, const PP_Var &var)
 Var (const PP_Var &var)
 A constructor that increments the reference count. More...
 Var (DontManage, const PP_Var &var)
 Var (const Var &other)
 A constructor for copying a Var. More...
virtual ~Var ()
 Destructor. More...
bool operator== (const Var &other) const
bool is_undefined () const
bool is_null () const
bool is_bool () const
bool is_string () const
bool is_object () const
bool is_array () const
bool is_dictionary () const
bool is_int () const
bool is_double () const
bool is_number () const
bool is_array_buffer () const
 This function determines if this Var is an ArrayBuffer. More...
bool AsBool () const
int32_t AsInt () const
double AsDouble () const
std::string AsString () const
const PP_Varpp_var () const
PP_Var Detach ()
std::string DebugString () const

Additional Inherited Members

- Protected Attributes inherited from pp::Var
PP_Var var_
bool is_managed_

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.

Definition at line 20 of file var_array_buffer.h.

Constructor & Destructor Documentation

pp::VarArrayBuffer::VarArrayBuffer ( )

The default constructor constructs a VarArrayBuffer which is 0 byte long.

pp::VarArrayBuffer::VarArrayBuffer ( const Var var)

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]varAn ArrayBuffer var.
pp::VarArrayBuffer::VarArrayBuffer ( uint32_t  size_in_bytes)

Construct a new VarArrayBuffer which is size_in_bytes bytes long and initialized to zero.

[in]size_in_bytesThe size of the constructed ArrayBuffer in bytes.
pp::VarArrayBuffer::VarArrayBuffer ( const VarArrayBuffer buffer)

Copy constructor.

Definition at line 42 of file var_array_buffer.h.

virtual pp::VarArrayBuffer::~VarArrayBuffer ( )

Definition at line 44 of file var_array_buffer.h.

Member Function Documentation

uint32_t pp::VarArrayBuffer::ByteLength ( ) const

ByteLength() retrieves the length of the VarArrayBuffer in bytes.

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.


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';
A pointer to the internal buffer for this ArrayBuffer.
VarArrayBuffer& pp::VarArrayBuffer::operator= ( const VarArrayBuffer other)

This function assigns one VarArrayBuffer to another VarArrayBuffer.

[in]otherThe VarArrayBuffer to be assigned.
The resulting VarArrayBuffer.
virtual Var& pp::VarArrayBuffer::operator= ( const Var other)

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]otherThe VarArrayBuffer to be assigned.
The resulting VarArrayBuffer (as a Var&).

Reimplemented from pp::Var.

void pp::VarArrayBuffer::Unmap ( )

Unmap() unmaps this 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 documentation for this class was generated from the following file: