コード例 #1
0
        /// <summary>
        /// Explains the end of evaluating some algebra operator.
        /// </summary>
        /// <param name="algebra">Algebra.</param>
        /// <param name="context">Context.</param>
        private void ExplainEvaluationEnd(ISparqlAlgebra algebra, SparqlEvaluationContext context)
        {
            if (_level == ExplanationLevel.None)
            {
                return;
            }

            _depthCounter.Value--;

            StringBuilder output = new StringBuilder();

            if (HasFlag(ExplanationLevel.ShowThreadID))
            {
                output.Append("[Thread ID " + Thread.CurrentThread.ManagedThreadId + "] ");
            }
            if (HasFlag(ExplanationLevel.ShowDepth))
            {
                output.Append("Depth " + _depthCounter.Value + " ");
            }
            if (HasFlag(ExplanationLevel.ShowOperator))
            {
                output.Append(algebra.GetType().FullName + " ");
            }
            if (HasFlag(ExplanationLevel.ShowAction))
            {
                output.Append("End");
            }

            PrintExplanations(output);
        }