| // Copyright (c) 2013, 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 BIN_VMSERVICE_IMPL_H_ |
| #define BIN_VMSERVICE_IMPL_H_ |
| |
| #include "bin/vmservice.h" |
| #include "platform/thread.h" |
| |
| |
| namespace dart { |
| namespace bin { |
| |
| class VmService { |
| public: |
| // Returns false if service could not be started. |
| static bool Start(intptr_t server_port); |
| // Error message if startup failed. |
| static const char* GetErrorMessage(); |
| |
| static Dart_Port port(); |
| |
| static bool IsRunning(); |
| |
| static bool SendIsolateStartupMessage(Dart_Port port); |
| static bool SendIsolateShutdownMessage(Dart_Port port); |
| |
| static void VmServiceShutdownCallback(void* callback_data); |
| |
| private: |
| static bool _Start(intptr_t server_port); |
| static void _Stop(); |
| static Dart_Handle LoadScript(const char* name); |
| static Dart_Handle LoadSources(Dart_Handle library, const char** names); |
| static Dart_Handle LoadSource(Dart_Handle library, const char* name); |
| static Dart_Handle LoadResources(Dart_Handle library); |
| static Dart_Handle LoadResource(Dart_Handle library, const char* name, |
| const char* prefix); |
| |
| static void ThreadMain(uword parameters); |
| |
| static Dart_Isolate isolate_; |
| static Dart_Port port_; |
| static const char* error_msg_; |
| static dart::Monitor* monitor_; |
| |
| DISALLOW_ALLOCATION(); |
| DISALLOW_IMPLICIT_CONSTRUCTORS(VmService); |
| }; |
| |
| |
| } // namespace bin |
| } // namespace dart |
| |
| #endif // BIN_VMSERVICE_IMPL_H_ |