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;
   }