// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.sdk; import java.io.IOException; import org.chromium.sdk.util.MethodIsBlockingException; /** * Abstraction of a remote JavaScript virtual machine which is embedded into * some application and accessed via TCP/IP connection to a port opened by * DebuggerAgent. Clients can use it to conduct debugging process. */ public interface StandaloneVm extends JavascriptVm { /** * Connects to the target VM. * * @param listener to report the debug events to * @throws IOException if there was a transport layer error * @throws UnsupportedVersionException if the SDK protocol version is not * compatible with that supported by the browser * @throws MethodIsBlockingException because initialization implies couple of remote calls * (to request version etc) */ void attach(DebugEventListener listener) throws IOException, UnsupportedVersionException, MethodIsBlockingException; /** * @return name of embedding application as it wished to name itself; might be null */ String getEmbedderName(); /** * @return version of V8 implementation, format is unspecified; must not be null if * {@link StandaloneVm} has been attached */ // TODO: align this with {@link JavascriptVm#getVersion()} method. String getVmVersion(); /** * @return message explaining why VM is detached; may be null */ String getDisconnectReason(); }