OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_CALLBACK_SOURCE_H | |
6 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_CALLBACK_SOURCE_H | |
7 | |
8 #include "ppapi/cpp/completion_callback.h" | |
9 | |
10 namespace plugin { | |
11 | |
12 // Classes that implement this interface can be used with FileDownloader's | |
13 // DOWNLOAD_STREAM mode. For each chunk of the file as it downloads, | |
14 // The FileDownloader will get a callback of type | |
15 // pp::CompletionCallbackWithOutput<std::vector<char>*> using the | |
16 // GetCallback function, and call it immediately, passing a pointer to a | |
17 // vector with the data as the output field. The class is templatized just | |
18 // in case there are any other use cases in the future. | |
19 // This class really only exists as a way to get callbacks | |
20 // bound to an object (i.e. we don't need the asynchronous behavior of PPAPI) | |
21 // All we really need is tr1::function or base::bind or some such, but we don't | |
22 // have those in the plugin. | |
23 | |
24 template<class T> | |
25 class CallbackSource { | |
26 public: | |
27 virtual ~CallbackSource(); | |
28 // Returns a callback from callback_factory's NewCallbackWithOutput, | |
29 // bound to the implementing object. | |
30 virtual pp::CompletionCallbackWithOutput<T> GetCallback() = 0; | |
31 }; | |
32 } | |
33 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_CALLBACK_SOURCE_H | |
OLD | NEW |