/* ###
 * IP: Apache License 2.0 with LLVM Exceptions
 */
/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 4.0.1
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package SWIG;

public class SBFrame {
  private transient long swigCPtr;
  protected transient boolean swigCMemOwn;

  protected SBFrame(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(SBFrame obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  @SuppressWarnings("deprecation")
  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        lldbJNI.delete_SBFrame(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public SBFrame() {
    this(lldbJNI.new_SBFrame__SWIG_0(), true);
  }

  public SBFrame(SBFrame rhs) {
    this(lldbJNI.new_SBFrame__SWIG_1(SBFrame.getCPtr(rhs), rhs), true);
  }

  public boolean IsEqual(SBFrame rhs) {
    return lldbJNI.SBFrame_IsEqual(swigCPtr, this, SBFrame.getCPtr(rhs), rhs);
  }

  public boolean IsValid() {
    return lldbJNI.SBFrame_IsValid(swigCPtr, this);
  }

  public long GetFrameID() {
    return lldbJNI.SBFrame_GetFrameID(swigCPtr, this);
  }

  public java.math.BigInteger GetCFA() {
    return lldbJNI.SBFrame_GetCFA(swigCPtr, this);
  }

  public java.math.BigInteger GetPC() {
    return lldbJNI.SBFrame_GetPC(swigCPtr, this);
  }

  public boolean SetPC(java.math.BigInteger new_pc) {
    return lldbJNI.SBFrame_SetPC(swigCPtr, this, new_pc);
  }

  public java.math.BigInteger GetSP() {
    return lldbJNI.SBFrame_GetSP(swigCPtr, this);
  }

  public java.math.BigInteger GetFP() {
    return lldbJNI.SBFrame_GetFP(swigCPtr, this);
  }

  public SBAddress GetPCAddress() {
    return new SBAddress(lldbJNI.SBFrame_GetPCAddress(swigCPtr, this), true);
  }

  public SBSymbolContext GetSymbolContext(long resolve_scope) {
    return new SBSymbolContext(lldbJNI.SBFrame_GetSymbolContext(swigCPtr, this, resolve_scope), true);
  }

  public SBModule GetModule() {
    return new SBModule(lldbJNI.SBFrame_GetModule(swigCPtr, this), true);
  }

  public SBCompileUnit GetCompileUnit() {
    return new SBCompileUnit(lldbJNI.SBFrame_GetCompileUnit(swigCPtr, this), true);
  }

  public SBFunction GetFunction() {
    return new SBFunction(lldbJNI.SBFrame_GetFunction(swigCPtr, this), true);
  }

  public SBSymbol GetSymbol() {
    return new SBSymbol(lldbJNI.SBFrame_GetSymbol(swigCPtr, this), true);
  }

  public SBBlock GetBlock() {
    return new SBBlock(lldbJNI.SBFrame_GetBlock(swigCPtr, this), true);
  }

  public String GetFunctionName() {
    return lldbJNI.SBFrame_GetFunctionName__SWIG_0(swigCPtr, this);
  }

  public String GetDisplayFunctionName() {
    return lldbJNI.SBFrame_GetDisplayFunctionName(swigCPtr, this);
  }

  public LanguageType GuessLanguage() {
    return LanguageType.swigToEnum(lldbJNI.SBFrame_GuessLanguage(swigCPtr, this));
  }

  public boolean IsInlined() {
    return lldbJNI.SBFrame_IsInlined__SWIG_0(swigCPtr, this);
  }

  public boolean IsArtificial() {
    return lldbJNI.SBFrame_IsArtificial__SWIG_0(swigCPtr, this);
  }

  public SBValue EvaluateExpression(String expr) {
    return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_0(swigCPtr, this, expr), true);
  }

  public SBValue EvaluateExpression(String expr, DynamicValueType use_dynamic) {
    return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_1(swigCPtr, this, expr, use_dynamic.swigValue()), true);
  }

  public SBValue EvaluateExpression(String expr, DynamicValueType use_dynamic, boolean unwind_on_error) {
    return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_2(swigCPtr, this, expr, use_dynamic.swigValue(), unwind_on_error), true);
  }

  public SBValue EvaluateExpression(String expr, SBExpressionOptions options) {
    return new SBValue(lldbJNI.SBFrame_EvaluateExpression__SWIG_3(swigCPtr, this, expr, SBExpressionOptions.getCPtr(options), options), true);
  }

  public SBBlock GetFrameBlock() {
    return new SBBlock(lldbJNI.SBFrame_GetFrameBlock(swigCPtr, this), true);
  }

  public SBLineEntry GetLineEntry() {
    return new SBLineEntry(lldbJNI.SBFrame_GetLineEntry(swigCPtr, this), true);
  }

  public SBThread GetThread() {
    return new SBThread(lldbJNI.SBFrame_GetThread(swigCPtr, this), true);
  }

  public String Disassemble() {
    return lldbJNI.SBFrame_Disassemble(swigCPtr, this);
  }

  public void Clear() {
    lldbJNI.SBFrame_Clear(swigCPtr, this);
  }

  public SBValueList GetVariables(boolean arguments, boolean locals, boolean statics, boolean in_scope_only) {
    return new SBValueList(lldbJNI.SBFrame_GetVariables__SWIG_0(swigCPtr, this, arguments, locals, statics, in_scope_only), true);
  }

  public SBValueList GetVariables(boolean arguments, boolean locals, boolean statics, boolean in_scope_only, DynamicValueType use_dynamic) {
    return new SBValueList(lldbJNI.SBFrame_GetVariables__SWIG_1(swigCPtr, this, arguments, locals, statics, in_scope_only, use_dynamic.swigValue()), true);
  }

  public SBValueList GetVariables(SBVariablesOptions options) {
    return new SBValueList(lldbJNI.SBFrame_GetVariables__SWIG_2(swigCPtr, this, SBVariablesOptions.getCPtr(options), options), true);
  }

  public SBValueList GetRegisters() {
    return new SBValueList(lldbJNI.SBFrame_GetRegisters(swigCPtr, this), true);
  }

  public SBValue FindVariable(String var_name) {
    return new SBValue(lldbJNI.SBFrame_FindVariable__SWIG_0(swigCPtr, this, var_name), true);
  }

  public SBValue FindVariable(String var_name, DynamicValueType use_dynamic) {
    return new SBValue(lldbJNI.SBFrame_FindVariable__SWIG_1(swigCPtr, this, var_name, use_dynamic.swigValue()), true);
  }

  public SBValue FindRegister(String name) {
    return new SBValue(lldbJNI.SBFrame_FindRegister(swigCPtr, this, name), true);
  }

  public SBValue GetValueForVariablePath(String var_path) {
    return new SBValue(lldbJNI.SBFrame_GetValueForVariablePath__SWIG_0(swigCPtr, this, var_path), true);
  }

  public SBValue GetValueForVariablePath(String var_path, DynamicValueType use_dynamic) {
    return new SBValue(lldbJNI.SBFrame_GetValueForVariablePath__SWIG_1(swigCPtr, this, var_path, use_dynamic.swigValue()), true);
  }

  public SBValue FindValue(String name, ValueType value_type) {
    return new SBValue(lldbJNI.SBFrame_FindValue__SWIG_0(swigCPtr, this, name, value_type.swigValue()), true);
  }

  public SBValue FindValue(String name, ValueType value_type, DynamicValueType use_dynamic) {
    return new SBValue(lldbJNI.SBFrame_FindValue__SWIG_1(swigCPtr, this, name, value_type.swigValue(), use_dynamic.swigValue()), true);
  }

  public boolean GetDescription(SBStream description) {
    return lldbJNI.SBFrame_GetDescription(swigCPtr, this, SBStream.getCPtr(description), description);
  }

  public String __repr__() {
    return lldbJNI.SBFrame___repr__(swigCPtr, this);
  }

}
