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