//
//
//
//
// $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";
}
}
}