pp_array_output.h File Reference

Include dependency graph for pp_array_output.h:

Data Structures

struct  PP_ArrayOutput
 A structure that defines a way for the browser to return arrays of data to the plugin. More...


typedef void *(* PP_ArrayOutput_GetDataBuffer )(void *user_data, uint32_t element_count, uint32_t element_size)

Detailed Description

PP_ArrayOutput_GetDataBuffer is a callback function to allocate plugin memory for an array.

It returns the allocated memory or null on failure.

This function will be called reentrantly. This means that if you call a function PPB_Foo.GetData(&array_output), GetData will call your GetDataBuffer function before it returns.

This function will be called even when returning 0-length arrays, so be sure your implementation can support that. You can return NULL for 0 length arrays and it will not be treated as a failure.

You should not perform any processing in this callback, including calling other PPAPI functions, outside of allocating memory. You should not throw any exceptions. In C++, this means using "new (nothrow)" or being sure to catch any exceptions before returning.

The C++ wrapper provides a convenient templatized implementation around std::vector which you should generally use instead of coding this specifically.

user_dataThe pointer provided in the PP_ArrayOutput structure. This has no meaning to the browser, it is intended to be used by the implementation to figure out where to put the data.
element_countThe number of elements in the array. This will be 0 if there is no data to return.
element_sizeThe size of each element in bytes.
Returns a pointer to the allocated memory. On failure, returns null. You can also return null if the element_count is 0. When a non-null value is returned, the buffer must remain valid until after the callback runs. If used with a blocking callback, the buffer must remain valid until after the function returns. The plugin can then free any memory that it allocated.