Sirikata
|
00001 #ifndef __SIRIKATA_JS_JSCONTEXT_HPP__ 00002 #define __SIRIKATA_JS_JSCONTEXT_HPP__ 00003 00004 #include "../JSUtil.hpp" 00005 #include "../JSObjectScript.hpp" 00006 #include <v8.h> 00007 00008 namespace Sirikata { 00009 namespace JS { 00010 namespace JSContext{ 00011 00012 v8::Handle<v8::Value> ScriptExecute(const v8::Arguments& args); 00013 v8::Handle<v8::Value> ScriptSuspend(const v8::Arguments& args); 00014 v8::Handle<v8::Value> ScriptResume(const v8::Arguments& args); 00015 v8::Handle<v8::Value> ScriptClear(const v8::Arguments& args); 00016 00017 void setNullContext(const v8::Arguments& args); 00018 00019 00020 #define INLINE_DECODE_CONTEXT_ERROR(toConvert,whereError,whereWriteTo) \ 00021 JSContextStruct* whereWriteTo = NULL; \ 00022 { \ 00023 String _errMsg = "In " #whereError " of sandbox. Cannot complete because likely already cleared this sandbox."; \ 00024 whereWriteTo = JSContextStruct::decodeContextStruct(toConvert,_errMsg); \ 00025 if (whereWriteTo == NULL) \ 00026 { \ 00027 return v8::ThrowException(v8::Exception::Error(v8::String::New(_errMsg.c_str(), _errMsg.length()))); \ 00028 } \ 00029 } 00030 00031 00032 00033 00034 }//jscontext 00035 }//js 00036 }//sirikata 00037 00038 #endif