/******************************************************************************* * Copyright (c) 2000, 2006 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * QNX Software Systems - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.debug.core.cdi.model; import org.eclipse.cdt.debug.core.cdi.CDIException; /** * * A register is a special kind of variable that is contained * in a register group. Each register has a name and a value. * * @since Jul 9, 2002 */ public interface ICDIRegister extends ICDIRegisterDescriptor { /** * Returns true if the value of this variable could be changed. * * @return true if the value of this variable could be changed * @throws CDIException if this method fails. Reasons include: */ boolean isEditable() throws CDIException; /** * Returns the value of this variable. * * @param context * @return the value of this variable * @throws CDIException if this method fails. Reasons include: */ ICDIValue getValue(ICDIStackFrame context) throws CDIException; /** * Attempts to set the value of this variable to the value of * the given expression. * * @param expression - an expression to generate a new value * @throws CDIException if this method fails. Reasons include: */ void setValue(String expression) throws CDIException; /** * Sets the value of this variable to the given value. * * @param value - a new value * @throws CDIException if this method fails. Reasons include: */ void setValue(ICDIValue value) throws CDIException; /** * Remove the variable from the manager list. * * @param var * @return ICDIArgument * @throws CDIException */ void dispose() throws CDIException; boolean equals(ICDIRegister reg); }