protected override IEnumerable <TOutputMsg> DecorateOutputMessages(IEnumerable <TOutputMsg> outputMsgs)
        {
            if (outputMsgs == null)
            {
                yield break;
            }

            var e = outputMsgs.GetEnumerator();

            while (true)
            {
                if (!e.MoveNext())
                {
                    yield break;
                }

                TOutputMsg outputMsg = e.Current;

                if (outputMsg.IsBroken)
                {
                    Interlocked.Increment(ref m_NumBrokenMsgs);
                    LogAgent.LogBrokenMessage(DataflowNetworkConstituent.Transformation, Name, outputMsg.Title, outputMsg);
                }
                else
                {
                    LogAgent.LogTrace(DataflowNetworkConstituent.Transformation, Name, "Transformed: old: {0} new: {1}", outputMsg.Title, outputMsg.Title);
                }

                yield return(outputMsg);
            }
        }