swig/Tools/javascript/js_shell.h
Oliver Buchtala 10dc758cad Refactored javascript shell implementation to support JSC and v8.
Also changed configuration in examples Makefile.in to allow switching modes.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13783 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-09-08 01:03:42 +00:00

49 lines
787 B
C++

#ifndef JS_SHELL_H
#define JS_SHELL_H
#include <vector>
#include <string>
typedef void* HANDLE;
class JSShell {
public:
enum Engine {
JSC,
V8
};
public:
JSShell() {}
virtual ~JSShell();
bool ImportModule(const std::string& name);
virtual bool RunScript(const std::string& scriptPath);
virtual bool RunShell();
protected:
virtual bool RegisterModule(HANDLE library, const std::string& module_name) = 0;
virtual bool InitializeEngine() = 0;
virtual bool ExecuteScript(const std::string& source, const std::string& name) = 0;
virtual bool DisposeEngine() = 0;
static std::string ReadFile(const std::string& fileName);
protected:
std::vector<HANDLE> loaded_modules;
};
typedef JSShell* (*JSShellFactory)();
#endif // JS_SHELL_H