Shaka Player Embedded
Public Member Functions | Static Public Member Functions | List of all members
shaka::ByteBuffer Class Reference

#include <byte_buffer.h>

Inheritance diagram for shaka::ByteBuffer:
shaka::GenericConverter shaka::memory::Traceable

Public Member Functions

 ByteBuffer ()
 
 ByteBuffer (const uint8_t *data, size_t data_size)
 
 ~ByteBuffer () override
 
 ByteBuffer (const ByteBuffer &)=delete
 
 ByteBuffer (ByteBuffer &&)
 
ByteBufferoperator= (const ByteBuffer &other)=delete
 
ByteBufferoperator= (ByteBuffer &&other)
 
const uint8_t * data () const
 
size_t size () const
 
void Clear ()
 
void SetFromDynamicBuffer (const util::DynamicBuffer &other)
 
void SetFromBuffer (const void *buffer, size_t size)
 
bool TryConvert (Handle< JsValue > value) override
 
ReturnVal< JsValue > ToJsValue () const override
 
void Trace (memory::HeapTracer *tracer) const override
 
ReturnVal< JsValue > ToJsValue (proto::ValueType kind) const
 
- Public Member Functions inherited from shaka::GenericConverter
virtual ~GenericConverter ()
 
- Public Member Functions inherited from shaka::memory::Traceable
virtual ~Traceable ()
 
virtual bool IsRootedAlive () const
 
virtual bool IsShortLived () const
 

Static Public Member Functions

static std::string name ()
 

Additional Inherited Members

- Static Public Attributes inherited from shaka::memory::Traceable
static constexpr const uint64_t kShortLiveDurationMs = 5000
 

Detailed Description

Represents a buffer of data that is shared between C++ and JavaScript. This holds a single ArrayBuffer that refers to the data, which can be passed into JavaScript. Since ArrayBuffers are immutable, this type is read-only.

Definition at line 33 of file byte_buffer.h.

Constructor & Destructor Documentation

§ ByteBuffer() [1/4]

shaka::ByteBuffer::ByteBuffer ( )

Definition at line 35 of file byte_buffer.cc.

§ ByteBuffer() [2/4]

shaka::ByteBuffer::ByteBuffer ( const uint8_t *  data,
size_t  data_size 
)

Definition at line 37 of file byte_buffer.cc.

§ ~ByteBuffer()

shaka::ByteBuffer::~ByteBuffer ( )
override

Definition at line 49 of file byte_buffer.cc.

§ ByteBuffer() [3/4]

shaka::ByteBuffer::ByteBuffer ( const ByteBuffer )
delete

§ ByteBuffer() [4/4]

shaka::ByteBuffer::ByteBuffer ( ByteBuffer &&  other)

Definition at line 41 of file byte_buffer.cc.

Member Function Documentation

§ Clear()

void shaka::ByteBuffer::Clear ( )

Clears all the data stored in the buffer.

Definition at line 66 of file byte_buffer.cc.

§ data()

const uint8_t* shaka::ByteBuffer::data ( ) const
inline
Returns
A pointer to the buffer.

Definition at line 50 of file byte_buffer.h.

§ name()

static std::string shaka::ByteBuffer::name ( )
inlinestatic

Definition at line 35 of file byte_buffer.h.

§ operator=() [1/2]

ByteBuffer& shaka::ByteBuffer::operator= ( const ByteBuffer other)
delete

§ operator=() [2/2]

ByteBuffer & shaka::ByteBuffer::operator= ( ByteBuffer &&  other)

Definition at line 53 of file byte_buffer.cc.

§ SetFromBuffer()

void shaka::ByteBuffer::SetFromBuffer ( const void *  buffer,
size_t  size 
)

Similar to SetFromDynamicBuffer, except accepts a single buffer source.

Definition at line 77 of file byte_buffer.cc.

§ SetFromDynamicBuffer()

void shaka::ByteBuffer::SetFromDynamicBuffer ( const util::DynamicBuffer other)

Clears the buffer and sets the contents to a copy of the given buffer. This can be called from any thread.

This will allocate a block of memory the same as JavaScript expects and take ownership of it (own_ptr_). Then, when we need the ArrayBuffer, we create it then giving up ownership of the pointer so we don't have to copy it.

Definition at line 72 of file byte_buffer.cc.

§ size()

size_t shaka::ByteBuffer::size ( ) const
inline
Returns
The size of the buffer (in bytes).

Definition at line 55 of file byte_buffer.h.

§ ToJsValue() [1/2]

ReturnVal< JsValue > shaka::ByteBuffer::ToJsValue ( ) const
overridevirtual

Converts the current value into a JavaScript value.

Implements shaka::GenericConverter.

Definition at line 123 of file byte_buffer.cc.

§ ToJsValue() [2/2]

ReturnVal< JsValue > shaka::ByteBuffer::ToJsValue ( proto::ValueType  kind) const

Creates an ArrayBuffer/TypedArray of the given type.

Definition at line 139 of file byte_buffer.cc.

§ Trace()

void shaka::ByteBuffer::Trace ( memory::HeapTracer tracer) const
overridevirtual

Called during a GC run. This should call HeapTracer::Trace on all Traceable members. Be sure to call the base method when overriding.

Implements shaka::memory::Traceable.

Definition at line 240 of file byte_buffer.cc.

§ TryConvert()

bool shaka::ByteBuffer::TryConvert ( Handle< JsValue >  value)
overridevirtual

Tries to convert the given value into the required type, populating the members of this object as needed.

Returns
True on success, false on error.

Implements shaka::GenericConverter.

Definition at line 82 of file byte_buffer.cc.


The documentation for this class was generated from the following files: