Mercurial > projects > dil
diff trunk/src/docgen/graphutils/writer.d @ 457:33a4cb255fcc
Cached images, small fixes, reorganizing.
author | Jari-Matti M?kel? <jmjm@iki.fi> |
---|---|
date | Tue, 30 Oct 2007 15:41:30 +0200 |
parents | dbdc9fa5d479 |
children | bac1d75f87f8 |
line wrap: on
line diff
--- a/trunk/src/docgen/graphutils/writer.d Tue Oct 30 02:35:56 2007 +0200 +++ b/trunk/src/docgen/graphutils/writer.d Tue Oct 30 15:41:30 2007 +0200 @@ -6,20 +6,28 @@ public import docgen.misc.misc; public import docgen.graphutils.primitives; -public import docgen.document.writer; +public import docgen.page.writer; debug import tango.io.Stdout; interface GraphWriter { void generateDepGraph(Vertex[] vertices, Edge[] edges, OutputStream imageFile); } +interface GraphWriterFactory : WriterFactory { + GraphWriter createGraphWriter(PageWriter writer, GraphFormat outputFormat); +} + +interface CachingGraphWriterFactory : GraphWriterFactory { + char[] getCachedGraph(Vertex[] vertices, Edge[] edges, GraphFormat format); +} + /** * Marks all cycles in the graph. * * May have bugs, but is a bit simpler than the previous version. */ void findCycles(Vertex[] vertices, Edge[] edges) { - debug void p() { + void p() { foreach(e; edges) Stderr(e.type)(" "c); Stderr.newline; } @@ -27,20 +35,20 @@ bool visit(Edge edge) { if (edge.type == EdgeType.Reserved) { edge.type = EdgeType.CyclicDependency; - debug p(); + version(VerboseDebug) p(); return true; } bool wasCyclic = edge.isCyclic(); edge.type = EdgeType.Reserved; - debug p(); + version(VerboseDebug) p(); foreach(edge2; edge.incoming.outgoingEdges) if (visit(edge2)) { if (edge.isCyclic()) { edge.type = EdgeType.Reserved; wasCyclic = true; - debug p(); + version(VerboseDebug) p(); continue; } edge.type = EdgeType.CyclicDependency; @@ -48,7 +56,7 @@ } edge.type = wasCyclic ? EdgeType.CyclicDependency : EdgeType.Dependency; - debug p(); + version(VerboseDebug) p(); return false; } @@ -60,14 +68,10 @@ } } -interface GraphWriterFactory : WriterFactory { - GraphWriter createGraphWriter(DocumentWriter writer, GraphFormat outputFormat); -} - abstract class AbstractGraphWriter : AbstractWriter!(GraphWriterFactory), GraphWriter { - DocumentWriter writer; + PageWriter writer; - this(GraphWriterFactory factory, DocumentWriter writer) { + this(GraphWriterFactory factory, PageWriter writer) { super(factory); this.writer = writer; }