#include <lemon/graph_writer.h>
UGraphWriter
class provides the ugraph output. To write a graph you should first give writing commands to the writer. You can declare write command as NodeMap
, EdgeMap
or UEdgeMap
writing and labeled Node, Edge or UEdge writing.
UGraphWriter<ListUGraph> writer(std::cout, graph);
The writeNodeMap()
function declares a NodeMap
writing command in the UGraphWriter
. You should give as parameter the name of the map and the map object. The NodeMap writing command with name "label" should write a unique map because it is regarded as label map.
IdMap<ListUGraph, Node> nodeLabelMap; writer.writeNodeMap("label", nodeLabelMap); writer.writeNodeMap("coords", coords); writer.writeNodeMap("color", colorMap);
With the writeUEdgeMap()
member function you can give an undirected edge map writing command similar to the NodeMaps.
DescriptorMap<ListGraph, Edge, ListGraph::EdgeMap<int> > edgeDescMap(graph); writer.writeUEdgeMap("descriptor", edgeDescMap); writer.writeUEdgeMap("weight", weightMap); writer.writeUEdgeMap("label", labelMap);
The EdgeMap handling is just a syntactical sugar. It writes two undirected edge map with '+' and '-' prefix in the name.
writer.writeEdgeMap("capacity", capacityMap);
With writeNode()
and writeUEdge()
functions you can designate nodes and undirected edges in the graph. For example, you can write out the source and target of the graph.
writer.writeNode("source", sourceNode); writer.writeNode("target", targetNode); writer.writeUEdge("observed", uEdge);
After you give all write commands you must call the run()
member function, which executes all the writing commands.
writer.run();
Public Member Functions | |
UGraphWriter (std::ostream &_os, const Graph &_graph) | |
Construct a new UGraphWriter. | |
UGraphWriter (const std::string &_filename, const Graph &_graph) | |
Construct a new UGraphWriter. | |
UGraphWriter (LemonWriter &_writer, const Graph &_graph) | |
Construct a new UGraphWriter. | |
~UGraphWriter () | |
Destruct the graph writer. | |
template<typename Map> | |
UGraphWriter & | writeNodeMap (std::string name, const Map &map) |
Issue a new node map writing command to the writer. | |
template<typename Writer, typename Map> | |
UGraphWriter & | writeNodeMap (std::string name, const Map &map, const Writer &writer=Writer()) |
Issue a new node map writing command to the writer. | |
template<typename Map> | |
UGraphWriter & | writeEdgeMap (std::string name, const Map &map) |
Issue a new edge map writing command to the writer. | |
template<typename Writer, typename Map> | |
UGraphWriter & | writeEdgeMap (std::string name, const Map &map, const Writer &writer=Writer()) |
Issue a new edge map writing command to the writer. | |
template<typename Map> | |
UGraphWriter & | writeUEdgeMap (std::string name, const Map &map) |
Issue a new undirected edge map writing command to the writer. | |
template<typename Writer, typename Map> | |
UGraphWriter & | writeUEdgeMap (std::string name, const Map &map, const Writer &writer=Writer()) |
Issue a new undirected edge map writing command to the writer. | |
UGraphWriter & | writeNode (std::string name, const Node &node) |
Issue a new labeled node writer to the writer. | |
UGraphWriter & | writeEdge (std::string name, const Edge &edge) |
Issue a new labeled edge writer to the writer. | |
UGraphWriter & | writeUEdge (std::string name, const UEdge &edge) |
Issue a new labeled undirected edge writing command to the writer. | |
template<typename Value> | |
UGraphWriter & | writeAttribute (std::string name, const Value &value) |
Issue a new attribute writing command. | |
template<typename Writer, typename Value> | |
UGraphWriter & | 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 | writeLabel (std::ostream &os, const Node &item) const |
Write the label of the given node. | |
void | writeLabel (std::ostream &os, const Edge &item) const |
Write the label of the given edge. | |
void | writeLabel (std::ostream &os, const UEdge &item) const |
Write the label of the given undirected edge. |
UGraphWriter | ( | std::ostream & | _os, | |
const Graph & | _graph | |||
) | [inline] |
Construct a new UGraphWriter. It writes the given graph to the given stream.
UGraphWriter | ( | const std::string & | _filename, | |
const Graph & | _graph | |||
) | [inline] |
Construct a new UGraphWriter. It writes the given graph to the given file.
UGraphWriter | ( | LemonWriter & | _writer, | |
const Graph & | _graph | |||
) | [inline] |
Construct a new UGraphWriter. It writes the given graph to given LemonReader.
~UGraphWriter | ( | ) | [inline] |
Destruct the graph writer.
UGraphWriter& writeNodeMap | ( | std::string | name, | |
const Map & | map | |||
) | [inline] |
This function issues a new node map writing command to the writer.
UGraphWriter& writeNodeMap | ( | std::string | name, | |
const Map & | map, | |||
const Writer & | writer = Writer() | |||
) | [inline] |
This function issues a new node map writing command to the writer.
UGraphWriter& writeEdgeMap | ( | std::string | name, | |
const Map & | map | |||
) | [inline] |
This function issues a new edge map writing command to the writer.
UGraphWriter& writeEdgeMap | ( | std::string | name, | |
const Map & | map, | |||
const Writer & | writer = Writer() | |||
) | [inline] |
This function issues a new edge map writing command to the writer.
UGraphWriter& writeUEdgeMap | ( | std::string | name, | |
const Map & | map | |||
) | [inline] |
This function issues a new undirected edge map writing command to the writer.
UGraphWriter& writeUEdgeMap | ( | std::string | name, | |
const Map & | map, | |||
const Writer & | writer = Writer() | |||
) | [inline] |
This function issues a new undirected edge map writing command to the writer.
UGraphWriter& writeNode | ( | std::string | name, | |
const Node & | node | |||
) | [inline] |
This function issues a new labeled node writing command to the writer.
UGraphWriter& writeEdge | ( | std::string | name, | |
const Edge & | edge | |||
) | [inline] |
This function issues a new labeled edge writing command to the writer.
UGraphWriter& writeUEdge | ( | std::string | name, | |
const UEdge & | edge | |||
) | [inline] |
Issue a new labeled undirected edge writing command to the writer.
UGraphWriter& writeAttribute | ( | std::string | name, | |
const Value & | value | |||
) | [inline] |
This function issues a new attribute writing command to the writer.
UGraphWriter& writeAttribute | ( | std::string | name, | |
const Value & | value, | |||
const Writer & | writer | |||
) | [inline] |
This function issues a new attribute writing command to the writer.
operator LemonWriter & | ( | ) | [inline] |
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.
void run | ( | ) | [inline] |
Executes the writing commands.
void writeLabel | ( | std::ostream & | os, | |
const Node & | item | |||
) | const [inline] |
It writes the label of the given node. If there was written an "label" named node map then it will write the map value belonging to the node.
void writeLabel | ( | std::ostream & | os, | |
const Edge & | item | |||
) | const [inline] |
It writes the label of the given edge. If there was written an "label" named edge map then it will write the map value belonging to the edge.
void writeLabel | ( | std::ostream & | os, | |
const UEdge & | item | |||
) | const [inline] |
It writes the label of the given undirected edge. If there was written an "label" named edge map then it will write the map value belonging to the edge.