| OLD | NEW |
| 1 // Copyright 2007-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2009 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 template <class T> class Persistent; | 125 template <class T> class Persistent; |
| 126 class FunctionTemplate; | 126 class FunctionTemplate; |
| 127 class ObjectTemplate; | 127 class ObjectTemplate; |
| 128 class Data; | 128 class Data; |
| 129 | 129 |
| 130 namespace internal { | 130 namespace internal { |
| 131 | 131 |
| 132 class Arguments; | 132 class Arguments; |
| 133 class Object; | 133 class Object; |
| 134 class Top; | 134 class Top; |
| 135 class V8Context; |
| 135 | 136 |
| 136 } | 137 } |
| 137 | 138 |
| 138 | 139 |
| 139 // --- W e a k H a n d l e s | 140 // --- W e a k H a n d l e s |
| 140 | 141 |
| 141 | 142 |
| 142 /** | 143 /** |
| 143 * A weak reference callback function. | 144 * A weak reference callback function. |
| 144 * | 145 * |
| (...skipping 2609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2754 static void StopPreemption(); | 2755 static void StopPreemption(); |
| 2755 | 2756 |
| 2756 /** | 2757 /** |
| 2757 * Returns whether or not the locker is locked by the current thread. | 2758 * Returns whether or not the locker is locked by the current thread. |
| 2758 */ | 2759 */ |
| 2759 static bool IsLocked(); | 2760 static bool IsLocked(); |
| 2760 | 2761 |
| 2761 /** | 2762 /** |
| 2762 * Returns whether v8::Locker is being used by this V8 instance. | 2763 * Returns whether v8::Locker is being used by this V8 instance. |
| 2763 */ | 2764 */ |
| 2764 static bool IsActive() { return active_; } | 2765 static bool IsActive(); |
| 2765 | 2766 |
| 2766 private: | 2767 private: |
| 2767 bool has_lock_; | 2768 bool has_lock_; |
| 2768 bool top_level_; | 2769 bool top_level_; |
| 2769 | 2770 |
| 2770 static bool active_; | |
| 2771 | |
| 2772 // Disallow copying and assigning. | 2771 // Disallow copying and assigning. |
| 2773 Locker(const Locker&); | 2772 Locker(const Locker&); |
| 2774 void operator=(const Locker&); | 2773 void operator=(const Locker&); |
| 2775 }; | 2774 }; |
| 2776 | 2775 |
| 2777 | 2776 |
| 2778 | 2777 |
| 2779 // --- I m p l e m e n t a t i o n --- | 2778 // --- I m p l e m e n t a t i o n --- |
| 2780 | 2779 |
| 2781 | 2780 |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3200 return Local<Object>(reinterpret_cast<Object*>(&args_[0])); | 3199 return Local<Object>(reinterpret_cast<Object*>(&args_[0])); |
| 3201 } | 3200 } |
| 3202 | 3201 |
| 3203 | 3202 |
| 3204 Local<Object> AccessorInfo::Holder() const { | 3203 Local<Object> AccessorInfo::Holder() const { |
| 3205 return Local<Object>(reinterpret_cast<Object*>(&args_[-1])); | 3204 return Local<Object>(reinterpret_cast<Object*>(&args_[-1])); |
| 3206 } | 3205 } |
| 3207 | 3206 |
| 3208 | 3207 |
| 3209 /** | 3208 /** |
| 3209 * Encapsulates V8 instance |
| 3210 */ |
| 3211 class V8EXPORT V8ContextProvider { |
| 3212 public: |
| 3213 V8ContextProvider(); |
| 3214 ~V8ContextProvider(); |
| 3215 |
| 3216 operator internal::V8Context*() const { |
| 3217 return v8context_; |
| 3218 } |
| 3219 private: |
| 3220 V8ContextProvider(const V8ContextProvider&); |
| 3221 void operator=(const V8ContextProvider&); |
| 3222 void* operator new(size_t size); |
| 3223 void operator delete(void*, size_t); |
| 3224 |
| 3225 internal::V8Context* const v8context_; |
| 3226 friend class V8ContextBinder; |
| 3227 }; |
| 3228 |
| 3229 /** |
| 3230 * Manages binding of V8 instance (from V8ContextProvider) to current thread |
| 3231 * |
| 3232 * V8ContextProvider context_provider; |
| 3233 * ... |
| 3234 * V8ContextBinder context_binder(context_provider); |
| 3235 */ |
| 3236 class V8EXPORT V8ContextBinder { |
| 3237 public: |
| 3238 V8ContextBinder(internal::V8Context*, bool bind_default = false); |
| 3239 ~V8ContextBinder(); |
| 3240 private: |
| 3241 V8ContextBinder(const V8ContextBinder&); |
| 3242 void operator=(const V8ContextBinder&); |
| 3243 void* operator new(size_t size); |
| 3244 void operator delete(void*, size_t); |
| 3245 |
| 3246 internal::V8Context* const v8context_; |
| 3247 bool bound_default_; |
| 3248 }; |
| 3249 |
| 3250 /** |
| 3251 * Allocated statically, implies intent of V8 host to have several instances |
| 3252 * of V8 in process |
| 3253 */ |
| 3254 class V8EXPORT AllowSeveralV8InstancesInProcess { |
| 3255 public: |
| 3256 AllowSeveralV8InstancesInProcess(); |
| 3257 ~AllowSeveralV8InstancesInProcess(); |
| 3258 }; |
| 3259 |
| 3260 /** |
| 3210 * \example shell.cc | 3261 * \example shell.cc |
| 3211 * A simple shell that takes a list of expressions on the | 3262 * A simple shell that takes a list of expressions on the |
| 3212 * command-line and executes them. | 3263 * command-line and executes them. |
| 3213 */ | 3264 */ |
| 3214 | 3265 |
| 3215 | 3266 |
| 3216 /** | 3267 /** |
| 3217 * \example process.cc | 3268 * \example process.cc |
| 3218 */ | 3269 */ |
| 3219 | 3270 |
| 3220 | 3271 |
| 3221 } // namespace v8 | 3272 } // namespace v8 |
| 3222 | 3273 |
| 3223 | 3274 |
| 3224 #undef V8EXPORT | 3275 #undef V8EXPORT |
| 3225 #undef V8EXPORT_INLINE | 3276 #undef V8EXPORT_INLINE |
| 3226 #undef TYPE_CHECK | 3277 #undef TYPE_CHECK |
| 3227 | 3278 |
| 3228 | 3279 |
| 3229 #endif // V8_H_ | 3280 #endif // V8_H_ |
| OLD | NEW |