Chromium Code Reviews| Index: include/v8-platform.h |
| diff --git a/include/v8-defaults.h b/include/v8-platform.h |
| similarity index 56% |
| copy from include/v8-defaults.h |
| copy to include/v8-platform.h |
| index b55c07fbad86efa439d77bfd05b344c1d6864d56..31643866d0336119adeae4a5e1a2c38d46989841 100644 |
| --- a/include/v8-defaults.h |
| +++ b/include/v8-platform.h |
| @@ -25,24 +25,55 @@ |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| -#ifndef V8_V8_DEFAULTS_H_ |
| -#define V8_V8_DEFAULTS_H_ |
| +#ifndef V8_V8_PLATFROM_H_ |
| +#define V8_V8_PLATFORM_H_ |
| #include "v8.h" |
| +namespace v8 { |
| + |
| /** |
| - * Default configuration support for the V8 JavaScript engine. |
| + * A Task represents a unit of work. |
| */ |
| -namespace v8 { |
| +class Task { |
| + public: |
| + virtual ~Task() {} |
| + |
| + virtual void Run() = 0; |
| +}; |
| + |
| +/** |
| + * V8 Platform abstraction layer. |
| + * |
| + * The embedder has to provide an implementation of this interface before |
| + * initializing the rest of V8. |
| + */ |
| +class Platform { |
|
Benedikt Meurer
2013/11/18 15:34:44
Add private copy constructor and assign operator,
jochen (gone - plz use gerrit)
2013/11/18 16:27:56
It's a pure virtual interface, there's no point in
|
| + public: |
| + V8_EXPORT static void Initialize(Platform* platform); |
| + V8_EXPORT static void Shutdown(); |
| + V8_EXPORT static Platform* GetCurrent(); |
| -V8_DEPRECATED("Use ResourceConstraints::ConfigureDefaults instead", |
| - bool V8_EXPORT ConfigureResourceConstraintsForCurrentPlatform( |
| - ResourceConstraints* constraints)); |
| + /** |
| + * Schedules a task to be invoked on a background thread. |task_is_slow| |
| + * indicates that the task will run a long time. The Platform implementation |
| + * takes ownership of |task|. There is no guarantee about order of execution |
| + * of tasks wrt order of scheduling, nor is there a guarantee about the |
| + * thread the task will be run on. |
| + */ |
| + virtual void callOnBackgroundThread(Task* task, bool task_is_slow) = 0; |
|
Benedikt Meurer
2013/11/18 15:34:44
Nit: First letter should be upper-case.
jochen (gone - plz use gerrit)
2013/11/18 16:27:56
Done.
|
| + /** |
| + * Schedules a task to be invoked on a foreground thread wrt a specific |
| + * |isolate|. Tasks posted for the same isolate should be execute in order of |
| + * scheduling. The definition of "foreground" is opaque to V8. |
| + */ |
| + virtual void callOnForegroundThread(Isolate* isolate, Task* task) = 0; |
|
Benedikt Meurer
2013/11/18 15:34:44
Nit: First letter should be upper-case.
jochen (gone - plz use gerrit)
2013/11/18 16:27:56
Done.
|
| -V8_DEPRECATED("Use ResourceConstraints::ConfigureDefaults instead", |
| - bool V8_EXPORT SetDefaultResourceConstraintsForCurrentPlatform()); |
| + protected: |
| + virtual ~Platform() {} |
| +}; |
| } // namespace v8 |
| -#endif // V8_V8_DEFAULTS_H_ |
| +#endif // V8_V8_PLATFORM_H_ |