Sirikata
liboh/plugins/js/JSObjects/JSContext.hpp
Go to the documentation of this file.
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