// 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: #if defined(PRODUCT) static bool Setup(const char* server_ip, intptr_t server_port, bool dev_mode_server, bool auth_codes_disabled, const char* write_service_info_filename, bool trace_loading, bool deterministic, bool enable_service_port_fallback, bool wait_for_dds_to_advertise_service, bool serve_devtools, bool serve_observatory, bool print_dtd, bool should_use_resident_compiler, const char* resident_compiler_info_file_path) { return false; } static void SetNativeResolver() {} // Error message if startup failed. static const char* GetErrorMessage() { return "VM Service not suppported in Product mode"; } // HTTP Server's address. static const char* GetServerAddress() { return nullptr; } private: #else // defined(PRODUCT) static bool Setup( const char* server_ip, intptr_t server_port, bool dev_mode_server, bool auth_codes_disabled, const char* write_service_info_filename, bool trace_loading, bool deterministic, bool enable_service_port_fallback, bool wait_for_dds_to_advertise_service, bool serve_devtools, bool serve_observatory, bool print_dtd, bool should_use_resident_compiler, // If either --resident-compiler-info-file or --resident-server-info-file // was supplied on the command line, the CLI argument should be forwarded // as the argument to this parameter. If neither option was supplied, the // argument to this parameter should be null. const char* resident_compiler_info_file_path); // Specifies that the experimental VM service implementation should be used. // TODO(bkonyi): remove this variable when the experimental service is // stable. This was only added as a public static to avoid temporarily // modifying the signature of Setup(...). static bool enable_experimental_vm_service; static void SetNativeResolver(); // Error message if startup failed. static const char* GetErrorMessage(); // HTTP Server's address. static const char* GetServerAddress() { return &server_uri_[0]; } private: static constexpr intptr_t kServerUriStringBufferSize = 1024; friend void NotifyServerState(Dart_NativeArguments args); static void SetServerAddress(const char* server_uri_); static const char* error_msg_; static char server_uri_[kServerUriStringBufferSize]; #endif // defined(PRODUCT) DISALLOW_ALLOCATION(); DISALLOW_IMPLICIT_CONSTRUCTORS(VmService); }; } // namespace bin } // namespace dart #endif // RUNTIME_BIN_VMSERVICE_IMPL_H_