/// <inheritdoc /> public override bool FinalizeAnalysis() { if (PipGraph == null) { Logger.GraphFragmentMissingGraph(LoggingContext); return(false); } try { var serializer = new PipGraphFragmentSerializer(Context, new PipGraphFragmentContext()) { AlternateSymbolSeparator = m_alternateSymbolSeparator }; serializer.Serialize(m_absoluteOutputPath, PipGraph, m_description, SerializeUsingTopSort); 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()); }
/// <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()); }
private static bool SerializeFragmentIfRequested( PipGraphFragmentGeneratorConfiguration pipGraphFragmentGeneratorConfig, FrontEndContext context, IPipScheduleTraversal pipGraph) { Contract.Requires(context != null); Contract.Requires(pipGraph != null); if (!pipGraphFragmentGeneratorConfig.OutputFile.IsValid) { return(true); } try { var serializer = new PipGraphFragmentSerializer(context, new PipGraphFragmentContext()) { AlternateSymbolSeparator = pipGraphFragmentGeneratorConfig.AlternateSymbolSeparator }; serializer.Serialize( pipGraphFragmentGeneratorConfig.OutputFile, pipGraph, pipGraphFragmentGeneratorConfig.Description, pipGraphFragmentGeneratorConfig.TopSort); Logger.Log.GraphFragmentSerializationStats(context.LoggingContext, serializer.FragmentDescription, serializer.Stats.ToString()); return(true); } catch (Exception e) { Logger.Log.GraphFragmentExceptionOnSerializingFragment( context.LoggingContext, pipGraphFragmentGeneratorConfig.OutputFile.ToString(context.PathTable), e.ToString()); return(false); } }
/// <inheritdoc /> public override bool FinalizeAnalysis() { if (PipGraph == null) { Logger.GraphFragmentMissingGraph(LoggingContext); return(false); } var serializer = new PipGraphFragmentSerializer(Context, new PipGraphFragmentContext()); try { serializer.Serialize(m_absoluteOutputPath, PipGraph.RetrieveScheduledPips().ToList(), m_description); Logger.GraphFragmentSerializationStats(LoggingContext, serializer.FragmentDescription, serializer.Stats.ToString()); } catch (Exception e) when(e is BuildXLException || e is IOException) { Logger.GraphFragmentExceptionOnSerializingFragment(LoggingContext, m_absoluteOutputPath.ToString(Context.PathTable), e.ToString()); return(false); } return(base.FinalizeAnalysis()); }