Index: ppapi/c/pp_completion_callback.h |
=================================================================== |
--- ppapi/c/pp_completion_callback.h (revision 96394) |
+++ ppapi/c/pp_completion_callback.h (working copy) |
@@ -3,7 +3,7 @@ |
* found in the LICENSE file. |
*/ |
-/* From pp_completion_callback.idl modified Sat Jul 16 16:50:26 2011. */ |
+/* From pp_completion_callback.idl modified Thu Aug 11 13:09:41 2011. */ |
#ifndef PPAPI_C_PP_COMPLETION_CALLBACK_H_ |
#define PPAPI_C_PP_COMPLETION_CALLBACK_H_ |
@@ -22,15 +22,14 @@ |
* @{ |
*/ |
/** |
- * PP_CompletionCallback_Func defines the function signature that you implement |
- * to receive callbacks on asynchronous completion of an operation. |
+ * This typedef defines the signature that you implement to receive callbacks |
+ * on asynchronous completion of an operation. |
* |
- * |user_data| is a pointer to user-specified data associated with this |
- * function at callback creation. See PP_MakeCompletionCallback() for details. |
- * |
- * |result| is the result of the operation. Non-positive values correspond to |
- * the error codes from pp_errors.h (excluding PP_OK_COMPLETIONPENDING). |
- * Positive values indicate additional information such as bytes read. |
+ * @param[in] user_data A pointer to user data passed to a callback function. |
+ * @param[in] result If result is 0 (PP_OK), the operation succeeded. Negative |
+ * values (other than -1 or PP_OK_COMPLETE) indicate error and are specified |
+ * in pp_errors.h. Positive values for result usually indicate success and have |
+ * some operation-dependent meaning (such as bytes read). |
*/ |
typedef void (*PP_CompletionCallback_Func)(void* user_data, int32_t result); |
/** |
@@ -78,17 +77,35 @@ |
* @{ |
*/ |
/** |
- * Any method that takes a PP_CompletionCallback can complete asynchronously. |
- * Refer to PP_CompletionCallback_Flag for more information. |
+ * Any method that takes a <code>PP_CompletionCallback</code> has the option of |
+ * completing asynchronously if the operation would block. Such a method |
+ * should return <code>PP_OK_COMPLETIONPENDING</code> to indicate that the |
+ * method will complete asynchronously and notify the caller and will always be |
+ * invoked from the main thread of PPAPI execution. If the completion callback |
+ * is NULL, then the operation will block if necessary to complete its work. |
+ * <code>PP_BlockUntilComplete()</code> provides a convenient way to specify |
+ * blocking behavior. Refer to <code>PP_BlockUntilComplete</code> for more |
+ * information. |
* |
- * If PP_CompletionCallback_Func is NULL, the operation might block if necessary |
- * to complete the work. Refer to PP_BlockUntilComplete for more information. |
- * |
- * See PP_MakeCompletionCallback() for the description of each field. |
+ * The result parameter passed to <code>func</code> is an int32_t that, if |
+ * negative indicates an error code whose meaning is specific to the calling |
+ * method (refer to <code>pp_error.h</code> for further information). A |
+ * positive or 0 value is a return result whose meaning depends on |
+ * the calling method (e.g. number of bytes read). |
*/ |
struct PP_CompletionCallback { |
+ /** |
+ * This value is a callback function that will be called. |
+ */ |
PP_CompletionCallback_Func func; |
+ /** |
+ * This value is a pointer to user data passed to a callback function. |
+ */ |
void* user_data; |
+ /** |
+ * Flags used to control how non-NULL callbacks are scheduled by |
+ * asynchronous methods. |
+ */ |
int32_t flags; |
}; |
/** |
@@ -102,20 +119,23 @@ |
* @{ |
*/ |
/** |
- * PP_MakeCompletionCallback() is used to create a PP_CompletionCallback |
- * without flags. If you want to alter the default callback behavior, set the |
- * flags to a bit field combination of PP_CompletionCallback_Flag's. |
+ * PP_MakeCompletionCallback() is used to create a |
+ * <code>PP_CompletionCallback</code>. |
* |
- * Example: |
- * struct PP_CompletionCallback cc = PP_MakeCompletionCallback(Foo, NULL); |
- * cc.flags = cc.flags | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL; |
+ * <strong>Example:</strong> |
* |
- * @param[in] func A PP_CompletionCallback_Func to be called on completion. |
- * @param[in] user_data A pointer to user data passed to be passed to the |
- * callback function. This is optional and is typically used to help track state |
- * in case of multiple pending callbacks. |
+ * <code> |
+ * struct PP_CompletionCallback cc = PP_MakeCompletionCallback(Foo, NULL); |
+ * cc.flags = cc.flags | PP_COMPLETIONCALLBACK_FLAG_OPTIONAL; |
+ * </code> |
* |
- * @return A PP_CompletionCallback structure. |
+ * @param[in] func A <code>PP_CompletionCallback_Func</code> that will be |
+ * called. |
+ * @param[in] user_data A pointer to user data passed to your callback |
+ * function. This is optional and is typically used to help track state |
+ * when you may have multiple callbacks pending. |
+ * |
+ * @return A <code>PP_CompletionCallback</code> structure. |
*/ |
PP_INLINE struct PP_CompletionCallback PP_MakeCompletionCallback( |
PP_CompletionCallback_Func func, |
@@ -159,7 +179,8 @@ |
* the callback function passing it user data specified on creation and |
* completion |result|. |
* |
- * @param[in] cc A pointer to a PP_CompletionCallback that will be run. |
+ * @param[in] cc A pointer to a <code>PP_CompletionCallback</code> that will be |
+ * run. |
* @param[in] result The result of the operation. Non-positive values correspond |
* to the error codes from pp_errors.h (excluding PP_OK_COMPLETIONPENDING). |
* Positive values indicate additional information such as bytes read. |
@@ -184,24 +205,24 @@ |
* until the function completes. Blocking completion callbacks are only allowed |
* from background threads. |
* |
- * @return A PP_CompletionCallback structure corresponding to a NULL callback. |
+ * @return A <code>PP_CompletionCallback</code> structure. |
*/ |
PP_INLINE struct PP_CompletionCallback PP_BlockUntilComplete() { |
return PP_MakeCompletionCallback(NULL, NULL); |
} |
/** |
- * Runs a callback and clears the reference to it. |
+ * PP_RunAndClearCompletionCallback() runs a callback and clears the reference |
+ * to that callback. |
* |
- * This is used when the null-ness of a completion callback is used as a signal |
- * for whether a completion callback has been registered. In this case, after |
- * the execution of the callback, it should be cleared. |
- * |
- * However, this introduces a conflict if the completion callback wants to |
- * schedule more work that involves the same completion callback again (for |
- * example, when reading data from an URLLoader, one would typically queue up |
- * another read callback). As a result, this function clears the pointer |
- * *before* the given callback is executed. |
+ * This function is used when the null-ness of a completion callback is used as |
+ * a signal for whether a completion callback has been registered. In this |
+ * case, after the execution of the callback, it should be cleared. However, |
+ * this introduces a conflict if the completion callback wants to schedule more |
+ * work that involves the same completion callback again (for example, when |
+ * reading data from an URLLoader, one would typically queue up another read |
+ * callback). As a result, this function clears the pointer |
+ * before the provided callback is executed. |
*/ |
PP_INLINE void PP_RunAndClearCompletionCallback( |
struct PP_CompletionCallback* cc, |
@@ -215,3 +236,4 @@ |
*/ |
#endif /* PPAPI_C_PP_COMPLETION_CALLBACK_H_ */ |
+ |