コード例 #1
0
        public IDataflowMessage <TOut> Transform(IDataflowMessage <TIn>[] items)
        {
            Interlocked.Increment(ref NumProcessedMessages);
            IDataflowMessage <TOut> result = m_DecoratedTransformationBatched.Transform(items);

            if (result.IsBroken)
            {
                Interlocked.Increment(ref NumBrokenMessages);
            }
            return(result);
        }
        public IDataflowMessage <TOut> Transform(IDataflowMessage <TIn>[] items)
        {
            IDataflowMessage <TOut> result = m_DecoratedTransformationBatched.Transform(items);

            //var s = (Imis.Etl.Crosscutting.Logging.LogDecoratorTransformationBatched<TIn, TOut>)m_DecoratedTransformationBatched;
            //var nms = s.NumMessagesSeen;
            //var nms = -1;
            m_nms = 0;
            Send(new WorkloadStatisticsContext(this.GroupGuid, this.TaskGuid, m_nms, m_InMsgFunc(), m_OutMsgFunc(), GetBoundedCapacity(), Title));
            return(result);
        }
        public IDataflowMessage <TOut> Transform(IDataflowMessage <TIn>[] items)
        {
            Interlocked.Increment(ref m_NumMessagesProcessed);
            long brokenMessageCnt = 0;
            long totalMessageCnt  = items.LongLength;

            foreach (IDataflowMessage <TIn> item in items)
            {
                if (item.IsBroken)
                {
                    brokenMessageCnt++;
                    m_LogAgent.LogTrace(DataflowNetworkConstituent.TransformationBatched, Title,
                                        "Broken message propagates through network. Node: {0}, Message: {1}", Title,
                                        item.Title);
                }
                else
                {
                    m_LogAgent.LogTrace(DataflowNetworkConstituent.TransformationBatched, m_DecoratedTransformation.Title,
                                        "Transforming: {0}", item.Title);
                }
            }
            m_LogAgent.LogTrace(DataflowNetworkConstituent.TransformationBatched, m_DecoratedTransformation.Title,
                                "Total message count: {0}, broken message count: {1}", totalMessageCnt, brokenMessageCnt);


            IDataflowMessage <TOut> result = m_DecoratedTransformation.Transform(items);

            if (result.IsBroken)
            {
                Interlocked.Increment(ref m_NumBrokenMsgs);
                m_LogAgent.LogBrokenMessage(DataflowNetworkConstituent.Transformation, Title, result.Title, (IBrokenDataFlowMessage <TOut>)result);
            }
            else
            {
                m_LogAgent.LogTrace(DataflowNetworkConstituent.Transformation, m_DecoratedTransformation.Title, "Transformed with Batch-Size: old: {0} new: {1}", items.Length, result.Title);
            }
            return(result);
        }