X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=plugins%2Fdali-script-v8%2Fsrc%2Fdali-wrapper.h;h=f1767e4fd06265cec1c3930c97afc70d0903ea09;hp=e576f4ba8af6876071fd580edbd4b91156b328b6;hb=14a22ca35c26d5fadeffa9f37ee58cc1d663aa11;hpb=ab869e145811677c75d4c0ce33c83ea72fcc9b86 diff --git a/plugins/dali-script-v8/src/dali-wrapper.h b/plugins/dali-script-v8/src/dali-wrapper.h index e576f4b..f1767e4 100644 --- a/plugins/dali-script-v8/src/dali-wrapper.h +++ b/plugins/dali-script-v8/src/dali-wrapper.h @@ -24,6 +24,7 @@ // INTERNAL INCLUDES #include + #include namespace Dali @@ -65,12 +66,25 @@ namespace V8Plugin */ class DALI_INTERNAL DaliWrapper { + public: /** - * Constructor + * @brief whether the wrapper is running in standalone using V8, + * or inside Node.JS using V8 */ - DaliWrapper(); + enum RunMode + { + RUNNING_STANDALONE, + RUNNING_IN_NODE_JS + }; + + /** + * @brief Constructor + * @param[in] runMode whether the wrapper is running standalone or inside Node.JS + * @param[in] isolate v8 isolate ( can be null if running standalone ) + */ + DaliWrapper( RunMode runMode, v8::Isolate* isolate ); /** * non virtual destructor, not intended as a base class @@ -85,6 +99,12 @@ public: static DaliWrapper& Get(); /** + * Intialize DaliWrapper for running inside NodeJS + */ + static v8::Local CreateWrapperForNodeJS( v8::Isolate* isolate); + + + /** * Set V8 engine configuration flags * * @param[in] flags Configruation flags (See v8 documentation) @@ -124,14 +144,21 @@ public: private: /** - * Create V8 context + * @brief Apply global objects like console.log and require() to the context */ - void CreateContext(); + void ApplyGlobalObjectsToContext( v8::Local context ); /** - * Initialize DaliWrapper + * @brief Initialize DaliWrapper for running standalone + * Creates a new isolate + * */ - void Initialize(); + void InitializeStandAlone(); + + /** + * @brief create dali namespace/object + */ + v8::Local CreateDaliObject(); /** * Create Dali ObjectTemplate @@ -150,9 +177,8 @@ private: GarbageCollector mGarbageCollector; ///< DALi garbage collector ModuleLoader mModuleLoader; ///< Module loader v8::Persistent mContext; ///< A sandboxed execution context with its own set of built-in objects and functions. - v8::Persistent mGlobalObjectTemplate; ///< Global object template for storing things like dali global object v8::Isolate* mIsolate; ///< represents an isolated instance of the V8 engine. - + RunMode mRunMode; };