// Copyright (c) 2011 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.wip;
import org.chromium.sdk.JsEvaluateContext;
import org.chromium.sdk.RelayOk;
import org.chromium.sdk.RemoteValueMapping;
import org.chromium.sdk.SyncCallback;
import org.chromium.sdk.util.GenericCallback;
/**
* A {@link RemoteValueMapping} that outlives suspend/resume cycle of debugger.
* It represents both remote pointer table and local property caches.
* The remote table should be explicitly deleted when the mapping is no longer used.
* The table has a unique id.
*/
public interface PermanentRemoteValueMapping extends RemoteValueMapping {
String getId();
/**
* Asynchronously deletes mapping on remote VM. No values from this {@link RemoteValueMapping}
* must be used after this call.
*/
RelayOk delete(GenericCallback<Void> callback, SyncCallback syncCallback);
/**
* Returns {@link JsEvaluateContext} that is tied with this {@link RemoteValueMapping}.
* By default all evaluate result values will use this {@link RemoteValueMapping}.
* (This can be overriden by {@link EvaluateToMappingExtension}).
*/
JsEvaluateContext getEvaluateContext();
}