// // // // // $Revision$ // using System; namespace ICSharpCode.Profiler.Controller.Data.Linq { sealed class SqlQueryContext { public readonly int StartDataSetID; public SqlQueryContext(SQLiteQueryProvider provider) { this.StartDataSetID = provider.startDataSetID; } int uniqueVariableIndex; public string GenerateUniqueVariableName() { return "v" + (++uniqueVariableIndex).ToString(); } public CallTreeNodeSqlNameSet CurrentNameSet; } sealed class CallTreeNodeSqlNameSet { public readonly string ID; public readonly string NameID = "nameid"; public readonly string TimeSpent; public readonly string CallCount; public readonly string HasChildren; public readonly string ActiveCallCount; /// /// Gets whether this nameset represents non-merged calls. /// public readonly bool IsCalls; public CallTreeNodeSqlNameSet(SqlQueryContext c, bool isCalls) { this.IsCalls = isCalls; string prefix = c.GenerateUniqueVariableName(); if (isCalls) { ID = "id"; TimeSpent = "timespent"; CallCount = "callcount"; } else { ID = prefix + "ID"; TimeSpent = prefix + "TimeSpent"; CallCount = prefix + "CallCount"; } HasChildren = prefix + "HasChildren"; ActiveCallCount = prefix + "ActiveCallCount"; } } }