Pepper_56_C++_interfaces
Pepper_56_C++_interfaces
 All Classes Namespaces Files Functions Typedefs Enumerations Macros Groups
pp::CompletionCallbackWithOutput< T > Class Template Reference

#include <completion_callback.h>

Inheritance diagram for pp::CompletionCallbackWithOutput< T >:
pp::CompletionCallback

Public Types

typedef
internal::CallbackOutputTraits
< T >::StorageType 
OutputStorageType
 
typedef
internal::CallbackOutputTraits
< T >::APIArgType 
APIArgType
 

Public Member Functions

 CompletionCallbackWithOutput (OutputStorageType *output)
 
 CompletionCallbackWithOutput (PP_CompletionCallback_Func func, void *user_data, OutputStorageType *output)
 
 CompletionCallbackWithOutput (PP_CompletionCallback_Func func, void *user_data, int32_t flags, OutputStorageType *output)
 
APIArgType output () const
 
- Public Member Functions inherited from pp::CompletionCallback
 CompletionCallback ()
 
 CompletionCallback (PP_CompletionCallback_Func func, void *user_data)
 
 CompletionCallback (PP_CompletionCallback_Func func, void *user_data, int32_t flags)
 
void set_flags (int32_t flags)
 
void Run (int32_t result)
 
void RunAndClear (int32_t result)
 
bool IsOptional () const
 
const PP_CompletionCallback & pp_completion_callback () const
 
int32_t flags () const
 
int32_t MayForce (int32_t result) const
 

Additional Inherited Members

- Protected Attributes inherited from pp::CompletionCallback
PP_CompletionCallback cc_
 

Detailed Description

template<typename T>
class pp::CompletionCallbackWithOutput< T >

A CompletionCallbackWithOutput defines a completion callback that additionally stores a pointer to some output data. Some C++ wrappers take a CompletionCallbackWithOutput when the browser is returning a bit of data as part of the function call. The "output" parameter stored in the CompletionCallbackWithOutput will receive the data from the browser.

You can create this yourself, but it is most common to use with the CompletionCallbackFactory's NewCallbackWithOutput, which manages the storage for the output parameter for you and passes it as an argument to your callback function.

Note that this class doesn't actually do anything with the output data, it just stores a pointer to it. C++ wrapper objects that accept a CompletionCallbackWithOutput will retrieve this pointer and pass it to the browser as the output parameter.

Member Typedef Documentation

template<typename T>
typedef internal::CallbackOutputTraits<T>::StorageType pp::CompletionCallbackWithOutput< T >::OutputStorageType

The type that will actually be stored in the completion callback. In the common case, this will be equal to the template parameter (for example, CompletionCallbackWithOutput<int> would obviously take an int*. However, resources are passed as PP_Resource, vars as PP_Var, and arrays as our special ArrayOutputAdapter object. The CallbackOutputTraits defines specializations for all of these cases.

Constructor & Destructor Documentation

template<typename T>
pp::CompletionCallbackWithOutput< T >::CompletionCallbackWithOutput ( OutputStorageType output)
inline

The default constructor will create a blocking CompletionCallback that references the given output data.

Parameters
[in]outputA pointer to the data associated with the callback. The caller must ensure that this pointer outlives the completion callback.

Note: Blocking completion callbacks are only allowed from from background threads.

template<typename T>
pp::CompletionCallbackWithOutput< T >::CompletionCallbackWithOutput ( PP_CompletionCallback_Func  func,
void *  user_data,
OutputStorageType output 
)
inline

A constructor for creating a CompletionCallback that references the given output data.

Parameters
[in]funcThe function to be called on completion.
[in]user_dataThe user data to be passed to the callback function. This is optional and is typically used to help track state in case of multiple pending callbacks.
[in]outputA pointer to the data associated with the callback. The caller must ensure that this pointer outlives the completion callback.
template<typename T>
pp::CompletionCallbackWithOutput< T >::CompletionCallbackWithOutput ( PP_CompletionCallback_Func  func,
void *  user_data,
int32_t  flags,
OutputStorageType output 
)
inline

A constructor for creating a CompletionCallback that references the given output data.

Parameters
[in]funcThe function to be called on completion.
[in]user_dataThe user data to be passed to the callback function. This is optional and is typically used to help track state in case of multiple pending callbacks.
[in]flagsBit field combination of PP_CompletionCallback_Flag flags used to control how non-NULL callbacks are scheduled by asynchronous methods.
[in]outputA pointer to the data associated with the callback. The caller must ensure that this pointer outlives the completion callback.

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