Sirikata
|
00001 00002 #ifndef __SIRIKATA_JS_SUSPENDABLE_HPP__ 00003 #define __SIRIKATA_JS_SUSPENDABLE_HPP__ 00004 00005 #include <map> 00006 #include <vector> 00007 #include <v8.h> 00008 00009 00010 00011 namespace Sirikata { 00012 namespace JS { 00013 00014 00015 struct JSSuspendable 00016 { 00017 JSSuspendable(); 00018 virtual ~JSSuspendable(); 00019 virtual v8::Handle<v8::Value> suspend(); 00020 virtual v8::Handle<v8::Value> resume(); 00021 virtual v8::Handle<v8::Value> clear(); 00022 00023 //suspended boolean accessors 00024 v8::Handle<v8::Boolean> getIsSuspendedV8(); 00025 bool getIsSuspended(); 00026 00027 //cleared boolean accessors 00028 v8::Handle<v8::Boolean> getIsClearedV8(); 00029 bool getIsCleared(); 00030 00031 private: 00032 bool isSuspended; 00033 bool isCleared; 00034 }; 00035 00036 typedef std::map<JSSuspendable*, int> SuspendableMap; 00037 typedef SuspendableMap::iterator SuspendableIter; 00038 00039 typedef std::vector<JSSuspendable*> SuspendableVec; 00040 typedef SuspendableVec::iterator SuspendableVecIter; 00041 00042 } //end namespace js 00043 } //end sirikata 00044 00045 00046 #endif