Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Side by Side Diff: ppapi/cpp/completion_callback.h

Issue 9728001: Make the file chooser use PP_ArrayOutput (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/cpp/array_output.h ('k') | ppapi/cpp/dev/file_chooser_dev.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PPAPI_CPP_COMPLETION_CALLBACK_H_ 5 #ifndef PPAPI_CPP_COMPLETION_CALLBACK_H_
6 #define PPAPI_CPP_COMPLETION_CALLBACK_H_ 6 #define PPAPI_CPP_COMPLETION_CALLBACK_H_
7 7
8 #include "ppapi/c/pp_completion_callback.h" 8 #include "ppapi/c/pp_completion_callback.h"
9 #include "ppapi/c/pp_errors.h" 9 #include "ppapi/c/pp_errors.h"
10 #include "ppapi/cpp/logging.h" 10 #include "ppapi/cpp/logging.h"
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 class CompletionCallbackWithOutput : public CompletionCallback { 178 class CompletionCallbackWithOutput : public CompletionCallback {
179 public: 179 public:
180 /// The type that will actually be stored in the completion callback. In the 180 /// The type that will actually be stored in the completion callback. In the
181 /// common case, this will be equal to the template parameter (for example, 181 /// common case, this will be equal to the template parameter (for example,
182 /// CompletionCallbackWithOutput<int> would obviously take an int*. However, 182 /// CompletionCallbackWithOutput<int> would obviously take an int*. However,
183 /// resources are passed as PP_Resource, vars as PP_Var, and arrays as our 183 /// resources are passed as PP_Resource, vars as PP_Var, and arrays as our
184 /// special ArrayOutputAdapter object. The CallbackOutputTraits defines 184 /// special ArrayOutputAdapter object. The CallbackOutputTraits defines
185 /// specializations for all of these cases. 185 /// specializations for all of these cases.
186 typedef typename internal::CallbackOutputTraits<T>::StorageType 186 typedef typename internal::CallbackOutputTraits<T>::StorageType
187 OutputStorageType; 187 OutputStorageType;
188 typedef typename internal::CallbackOutputTraits<T>::APIArgType
189 APIArgType;
188 190
189 /// The default constructor will create a blocking 191 /// The default constructor will create a blocking
190 /// <code>CompletionCallback</code> that references the given output 192 /// <code>CompletionCallback</code> that references the given output
191 /// data. 193 /// data.
192 /// 194 ///
193 /// @param[in] output A pointer to the data associated with the callback. The 195 /// @param[in] output A pointer to the data associated with the callback. The
194 /// caller must ensure that this pointer outlives the completion callback. 196 /// caller must ensure that this pointer outlives the completion callback.
195 /// 197 ///
196 /// <strong>Note:</strong> Blocking completion callbacks are only allowed from 198 /// <strong>Note:</strong> Blocking completion callbacks are only allowed from
197 /// from background threads. 199 /// from background threads.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 /// @param[in] output A pointer to the data associated with the callback. The 232 /// @param[in] output A pointer to the data associated with the callback. The
231 /// caller must ensure that this pointer outlives the completion callback. 233 /// caller must ensure that this pointer outlives the completion callback.
232 CompletionCallbackWithOutput(PP_CompletionCallback_Func func, 234 CompletionCallbackWithOutput(PP_CompletionCallback_Func func,
233 void* user_data, 235 void* user_data,
234 int32_t flags, 236 int32_t flags,
235 OutputStorageType* output) 237 OutputStorageType* output)
236 : CompletionCallback(func, user_data, flags), 238 : CompletionCallback(func, user_data, flags),
237 output_(output) { 239 output_(output) {
238 } 240 }
239 241
240 OutputStorageType* output() const { return output_; } 242 APIArgType output() const {
243 return internal::CallbackOutputTraits<T>::StorageToAPIArg(*output_);
244 }
241 245
242 private: 246 private:
243 OutputStorageType* output_; 247 OutputStorageType* output_;
244 }; 248 };
245 249
246 /// BlockUntilComplete() is used in place of an actual completion callback 250 /// BlockUntilComplete() is used in place of an actual completion callback
247 /// to request blocking behavior. If specified, the calling thread will block 251 /// to request blocking behavior. If specified, the calling thread will block
248 /// until the function completes. Blocking completion callbacks are only 252 /// until the function completes. Blocking completion callbacks are only
249 /// allowed from background threads. 253 /// allowed from background threads.
250 /// 254 ///
251 /// @return A <code>CompletionCallback</code> corresponding to a NULL callback. 255 /// @return A <code>CompletionCallback</code> corresponding to a NULL callback.
252 CompletionCallback BlockUntilComplete(); 256 CompletionCallback BlockUntilComplete();
253 257
254 } // namespace pp 258 } // namespace pp
255 259
256 #endif // PPAPI_CPP_COMPLETION_CALLBACK_H_ 260 #endif // PPAPI_CPP_COMPLETION_CALLBACK_H_
OLDNEW
« no previous file with comments | « ppapi/cpp/array_output.h ('k') | ppapi/cpp/dev/file_chooser_dev.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698