* Add new DOTGraphTraits::addCustomGraphFeatures method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4197 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-10-16 01:44:59 +00:00
parent ff5feedf28
commit 834a9d12f3
4 changed files with 26 additions and 0 deletions

View File

@ -60,6 +60,15 @@ struct DefaultDOTGraphTraits {
/// edge.
template<typename EdgeIter>
static EdgeIter getEdgeTarget(void *Node, EdgeIter I) { return I; }
/// addCustomGraphFeatures - If a graph is made up of more than just
/// straight-forward nodes and edges, this is the place to put all of the
/// custom stuff neccesary. The GraphWriter object, instantiated with your
/// GraphType is passed in as an argument. You may call arbitrary methods on
/// it to add things to the output graph.
///
template<typename GraphWriter>
static void addCustomGraphFeatures(void *Graph, GraphWriter &GW) {}
};

View File

@ -72,7 +72,11 @@ public:
O << DOTTraits::getGraphProperties(G);
O << "\n";
// Emit all of the nodes in the graph...
writeNodes();
// Output any customizations on the graph
DOTTraits::addCustomGraphFeatures(G, *this);
}
~GraphWriter() {

View File

@ -60,6 +60,15 @@ struct DefaultDOTGraphTraits {
/// edge.
template<typename EdgeIter>
static EdgeIter getEdgeTarget(void *Node, EdgeIter I) { return I; }
/// addCustomGraphFeatures - If a graph is made up of more than just
/// straight-forward nodes and edges, this is the place to put all of the
/// custom stuff neccesary. The GraphWriter object, instantiated with your
/// GraphType is passed in as an argument. You may call arbitrary methods on
/// it to add things to the output graph.
///
template<typename GraphWriter>
static void addCustomGraphFeatures(void *Graph, GraphWriter &GW) {}
};

View File

@ -72,7 +72,11 @@ public:
O << DOTTraits::getGraphProperties(G);
O << "\n";
// Emit all of the nodes in the graph...
writeNodes();
// Output any customizations on the graph
DOTTraits::addCustomGraphFeatures(G, *this);
}
~GraphWriter() {