| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| #ifndef VM_DART_H_ |
| #define VM_DART_H_ |
| |
| #include "include/dart_api.h" |
| #include "vm/allocation.h" |
| |
| namespace dart { |
| |
| // Forward declarations. |
| class DebugInfo; |
| class Isolate; |
| class RawError; |
| class ReadOnlyHandles; |
| class ThreadPool; |
| |
| class Dart : public AllStatic { |
| public: |
| static const char* InitOnce( |
| Dart_IsolateCreateCallback create, |
| Dart_IsolateInterruptCallback interrupt, |
| Dart_IsolateUnhandledExceptionCallback unhandled, |
| Dart_IsolateShutdownCallback shutdown, |
| Dart_FileOpenCallback file_open, |
| Dart_FileWriteCallback file_write, |
| Dart_FileCloseCallback file_close); |
| |
| static Isolate* CreateIsolate(const char* name_prefix); |
| static RawError* InitializeIsolate(const uint8_t* snapshot, void* data); |
| static void ShutdownIsolate(); |
| |
| static Isolate* vm_isolate() { return vm_isolate_; } |
| static ThreadPool* thread_pool() { return thread_pool_; } |
| |
| static void set_pprof_symbol_generator(DebugInfo* value) { |
| pprof_symbol_generator_ = value; |
| } |
| static DebugInfo* pprof_symbol_generator() { return pprof_symbol_generator_; } |
| |
| static uword AllocateReadOnlyHandle(); |
| static bool IsReadOnlyHandle(uword address); |
| |
| private: |
| static Isolate* vm_isolate_; |
| static ThreadPool* thread_pool_; |
| static DebugInfo* pprof_symbol_generator_; |
| static ReadOnlyHandles* predefined_handles_; |
| }; |
| |
| } // namespace dart |
| |
| #endif // VM_DART_H_ |