// 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 RUNTIME_BIN_VMSERVICE_IMPL_H_ #define RUNTIME_BIN_VMSERVICE_IMPL_H_ #include "include/dart_api.h" #include "platform/globals.h" namespace dart { namespace bin { class VmService { public: static bool LoadForGenPrecompiled(bool use_dart_frontend); static bool Setup(const char* server_ip, intptr_t server_port, bool running_precompiled, bool dev_mode_server, bool trace_loading, bool deterministic); // Error message if startup failed. static const char* GetErrorMessage(); // HTTP Server's address. static const char* GetServerAddress() { return &server_uri_[0]; } private: static const intptr_t kServerUriStringBufferSize = 1024; friend void NotifyServerState(Dart_NativeArguments args); static void SetServerAddress(const char* server_uri_); static Dart_Handle GetSource(const char* name); static Dart_Handle LoadScript(const char* name); static Dart_Handle LookupOrLoadLibrary(const char* name); 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); static Dart_Handle LibraryTagHandler(Dart_LibraryTag tag, Dart_Handle library, Dart_Handle url); static const char* error_msg_; static char server_uri_[kServerUriStringBufferSize]; DISALLOW_ALLOCATION(); DISALLOW_IMPLICIT_CONSTRUCTORS(VmService); }; } // namespace bin } // namespace dart #endif // RUNTIME_BIN_VMSERVICE_IMPL_H_