/* Copyright (C) 2014-2019 de4dot@gmail.com This file is part of dnSpy dnSpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. dnSpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with dnSpy. If not, see . */ using System; using dnSpy.Contracts.Debugger.Evaluation; namespace dnSpy.Contracts.Debugger.Engine.Evaluation { /// /// Provides s for the variables windows /// public abstract class DbgEngineValueNodeProvider { /// /// Gets all values /// /// Evaluation info /// Options /// public abstract DbgEngineValueNode[] GetNodes(DbgEvaluationInfo evalInfo, DbgValueNodeEvaluationOptions options); } /// /// Provides s for the locals windows /// public abstract class DbgEngineLocalsValueNodeProvider { /// /// Gets all values /// /// Evaluation info /// Options /// Locals value node provider options /// public abstract DbgEngineLocalsValueNodeInfo[] GetNodes(DbgEvaluationInfo evalInfo, DbgValueNodeEvaluationOptions options, DbgLocalsValueNodeEvaluationOptions localsOptions); } /// /// Contains a value node and its kind /// public readonly struct DbgEngineLocalsValueNodeInfo { /// /// What kind of value this is (local or parameter) /// public DbgLocalsValueNodeKind Kind { get; } /// /// Gets the node /// public DbgEngineValueNode ValueNode { get; } /// /// Constructor /// /// What kind of value this is (local or parameter) /// Value node public DbgEngineLocalsValueNodeInfo(DbgLocalsValueNodeKind kind, DbgEngineValueNode valueNode) { Kind = kind; ValueNode = valueNode ?? throw new ArgumentNullException(nameof(valueNode)); } } }