#include <lemon/graph_writer.h>
GraphWriter
class provides the graph output. Before you read this documentation it might be useful to read the general description of Graph Input-Output.If you don't need very sophisticated behaviour then you can use the versions of the public function writeGraph() to output a graph (or a max flow instance etc).
To write a graph you should first give writing commands to the writer. You can declare write commands as NodeMap
or EdgeMap
writing and labeled Node and Edge writing.
GraphWriter<ListGraph> writer(std::cout, graph);
The writeNodeMap()
function declares a NodeMap
writing command in the GraphWriter
. You should give as parameter the name of the map and the map object. The NodeMap writing command with name "id" should write a unique map because it is regarded as ID map (such a map is essential if the graph has edges).
IdMap<ListGraph, Node> nodeIdMap; writer.writeNodeMap("id", nodeIdMap); writer.writeNodeMap("coords", coords); writer.writeNodeMap("color", colorMap);
With the writeEdgeMap()
member function you can give an edge map writing command similar to the NodeMaps.
DescriptorMap<ListGraph, Edge, ListGraph::EdgeMap<int> > edgeDescMap(graph); writer.writeEdgeMap("descriptor", edgeDescMap); writer.writeEdgeMap("weight", weightMap); writer.writeEdgeMap("label", labelMap);
With writeNode()
and writeEdge()
functions you can point out Nodes and Edges in the graph. For example, you can write out the source and target of a maximum flow instance.
writer.writeNode("source", sourceNode); writer.writeNode("target", targetNode); writer.writeEdge("observed", edge);
After you give all write commands you must call the run()
member function, which executes all the writing commands.
writer.run();
Public Member Functions | |
GraphWriter (std::ostream &_os, const Graph &_graph) | |
Construct a new GraphWriter. | |
GraphWriter (const std::string &_filename, const Graph &_graph) | |
Construct a new GraphWriter. | |
GraphWriter (LemonWriter &_writer, const Graph &_graph) | |
Construct a new GraphWriter. | |
~GraphWriter () | |
Destruct the graph writer. | |
template<typename Map> | |
GraphWriter & | writeNodeMap (std::string name, const Map &map) |
This function issues a new node map writing command to the writer. | |
template<typename Writer, typename Map> | |
GraphWriter & | writeNodeMap (std::string name, const Map &map, const Writer &writer=Writer()) |
This function issues a new node map writing command to the writer. | |
template<typename Map> | |
GraphWriter & | writeEdgeMap (std::string name, const Map &map) |
This function issues a new edge map writing command to the writer. | |
template<typename Writer, typename Map> | |
GraphWriter & | writeEdgeMap (std::string name, const Map &map, const Writer &writer=Writer()) |
This function issues a new edge map writing command to the writer. | |
GraphWriter & | writeNode (std::string name, const Node &node) |
Issue a new labeled node writing command to the writer. | |
GraphWriter & | writeEdge (std::string name, const Edge &edge) |
Issue a new labeled edge writing command to the writer. | |
template<typename Value> | |
GraphWriter & | writeAttribute (std::string name, const Value &value) |
Issue a new attribute writing command. | |
template<typename Writer, typename Value> | |
GraphWriter & | writeAttribute (std::string name, const Value &value, const Writer &writer) |
Issue a new attribute writing command. | |
operator LemonWriter & () | |
Conversion operator to LemonWriter. | |
void | run () |
Executes the writing commands. | |
void | writeId (std::ostream &os, const Node &item) const |
Write the id of the given node. | |
void | writeId (std::ostream &os, const Edge &item) const |
Write the id of the given edge. |
|
This function constructs a new GraphWriter to write the given graph to the given stream. |
|
This function constructs a new GraphWriter to write the given graph to the given file. |
|
This function constructs a new GraphWriter to write the given graph to the given LemonReader. |
|
This function destructs the graph writer. |
|
This function issues a new labeled node writing command to the writer. |
|
This function issues a new labeled edge writing command to the writer. |
|
This function issues a new attribute writing command to the writer. |
|
This function issues a new attribute writing command to the writer. |
|
Conversion operator to LemonWriter. It makes possible to access the encapsulated LemonWriter, this way you can attach to this writer new instances of LemonWriter::SectionWriter. For more details see the Background of Reading and Writing. |
|
Executes the writing commands. |
|
It writes the id of the given node. If there was written an "id" named node map then it will write the map value belonging to the node. |
|
It writes the id of the given edge. If there was written an "id" named edge map then it will write the map value belonging to the edge. |