Exemple #1
0
        /// <summary>
        ///   Add a field flow operation activity item.
        /// </summary>
        /// <param name = "oper">The operation being logged.</param>
        /// <param name = "flowMode">The task's flow mode.</param>
        /// <param name = "flowDirection">The task's flow direction.</param>
        /// <param name = "bExecuted">Will the operation be executed.</param>
        internal void addFlowFieldOperation(Operation oper, Flow flowMode, Direction flowDirection, bool bExecuted)
        {
            if (_enabled && _isFlowOperation)
            {
                ActivityItem  act    = new ActivityItem(this, ACT_FLW_OPER, FlowMonitorInterface.FLWMTR_DATA_OPER);
                StringBuilder buffer = new StringBuilder(FLW_PERFIX);
                oper.AddFlowDescription(buffer);
                buffer.Append(' ');
                switch (flowMode)
                {
                case Flow.FAST:
                    if (flowDirection == Direction.FORE)
                    {
                        buffer.Append(FLW_FAST_FWD);
                    }
                    else if (flowDirection == Direction.BACK)
                    {
                        // FLOW_BACK
                        buffer.Append(FLW_FAST_BWD);
                    }
                    break;
                // We add nothing for FLOW_NONE

                case Flow.STEP:
                    if (flowDirection == Direction.FORE)
                    {
                        buffer.Append(FLW_STEP_FWD);
                    }
                    else if (flowDirection == Direction.BACK)
                    {
                        // FLOW_BACK
                        buffer.Append(FLW_STEP_BWD);
                    }
                    break;
                // For operation mode NONE we write STEP_FORWARD -
                // see FLWMTR_CTX::output_  case FLWMTR_DATA_OPER:

                case Flow.NONE:
                    buffer.Append(FLW_STEP_FWD);
                    break;

                default:
                    Logger.Instance.WriteExceptionToLog("FlowMonitorQueue.addFlowFieldOperation unknown flow mode " + flowMode);
                    return;
                }

                if (!bExecuted)
                {
                    buffer.Append(FLW_NOT_EXEC);
                }

                act.setInfo(buffer.ToString());
                _queue.put(act);
            }
        }