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=c1013fe60ebb30938ae3e084ff0171e47f5cf57a;hp=e576f4ba8af6876071fd580edbd4b91156b328b6;hb=428cb5932b23d06d1871c0935d2462cc362828ea;hpb=ab869e145811677c75d4c0ce33c83ea72fcc9b86 diff --git a/plugins/dali-script-v8/src/dali-wrapper.h b/plugins/dali-script-v8/src/dali-wrapper.h index e576f4b..c1013fe 100644 --- a/plugins/dali-script-v8/src/dali-wrapper.h +++ b/plugins/dali-script-v8/src/dali-wrapper.h @@ -2,7 +2,7 @@ #define __DALI_V8PLUGIN_DALI_WRAP_H__ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,10 +20,11 @@ // EXTERNAL INCLUDES #include -#include // INTERNAL INCLUDES +#include #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; };