Chromium Code Reviews| Index: experimental/SkV8Example/Global.h |
| diff --git a/experimental/SkV8Example/Global.h b/experimental/SkV8Example/Global.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2c00bb8d378c9da1d630120ea923481a002b5c9d |
| --- /dev/null |
| +++ b/experimental/SkV8Example/Global.h |
| @@ -0,0 +1,74 @@ |
| +/* |
| + * Copyright 2013 Google Inc. |
| + * |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + * |
| + */ |
| + |
| +#ifndef SkV8Example_Global_DEFINED |
| +#define SkV8Example_Global_DEFINED |
| + |
| +#include <v8.h> |
| + |
| +using namespace v8; |
| + |
| +#include "SkTypes.h" |
| +#include "SkEvent.h" |
| + |
| +class SkOSWindow; |
| + |
| +// Provides the global isolate and context for our V8 instance. |
| +// Also implements all the global level functions. |
| +class Global : SkNoncopyable { |
| +public: |
| + Global(Isolate* isolate) |
| + : fIsolate(isolate) |
| + , fWindow(NULL) |
| + { |
| + gGlobal = this; |
| + } |
|
robertphillips
2013/12/17 23:35:53
virtual?
jcgregorio
2013/12/18 04:32:53
Done.
|
| + ~Global(); |
| + |
| + // The script will be parsed into the context this Global contains. |
| + bool parseScript(const char script[]); |
| + |
| + Local<Context> getContext() { |
| + return Local<Context>::New(fIsolate, fContext); |
| + } |
| + |
| + Isolate* getIsolate() { |
| + return fIsolate; |
| + } |
| + |
| + void setWindow(SkOSWindow* win) { |
| + fWindow = win; |
| + } |
| + SkOSWindow* getWindow() { |
| + return fWindow; |
| + } |
| + |
|
robertphillips
2013/12/17 23:35:53
tryCatch?
jcgregorio
2013/12/18 04:32:53
Done.
|
| + void reportException(TryCatch* try_catch); |
| + |
| +private: |
| + Handle<Context> createRootContext(); |
| + |
| + static bool TimeOutProc(const SkEvent& evt); |
| + |
| + // Static functions that implement the global JS functions we add to |
| + // the context. |
| + static void SetTimeout(const v8::FunctionCallbackInfo<v8::Value>& args); |
| + static void Print(const v8::FunctionCallbackInfo<v8::Value>& args); |
| + static void Inval(const v8::FunctionCallbackInfo<Value>& args); |
| + |
|
robertphillips
2013/12/17 23:35:53
line these guys up?
jcgregorio
2013/12/18 04:32:53
Done.
|
| + Persistent<Context> fContext; |
| + Isolate* fIsolate; |
| + SkOSWindow* fWindow; |
| + static Global* gGlobal; |
| + |
| + // Handle to the function to call when the timeout triggers. |
| + Persistent<Function> fTimeout; |
| +}; |
| + |
| +#endif |