コード例 #1
0
        /// <inheritdoc />
        public override bool FinalizeAnalysis()
        {
            if (PipGraph == null)
            {
                Logger.GraphFragmentMissingGraph(LoggingContext);
                return(false);
            }

            try
            {
                var serializer = new PipGraphFragmentSerializer(Context, new PipGraphFragmentContext());
                var pips       = PipGraph.RetrieveScheduledPips().ToList();
                if (SerializeUsingTopSort)
                {
                    var finalPipList = TopSort(pips);
                    serializer.SerializeTopSort(m_absoluteOutputPath, finalPipList, pips.Count, m_description);
                }
                else
                {
                    serializer.SerializeSerially(m_absoluteOutputPath, pips, m_description);
                }

                Logger.GraphFragmentSerializationStats(LoggingContext, serializer.FragmentDescription, serializer.Stats.ToString());
            }
            catch (Exception e)
            {
                Logger.GraphFragmentExceptionOnSerializingFragment(LoggingContext, m_absoluteOutputPath.ToString(Context.PathTable), e.ToString());
                return(false);
            }

            return(base.FinalizeAnalysis());
        }