EdgeSetWriter Class Template Reference
[Input Output]

#include <lemon/lemon_writer.h>

Inherits LemonWriter::SectionWriter.

Inheritance diagram for EdgeSetWriter:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<typename _Graph, typename _Traits = DefaultWriterTraits>
class lemon::EdgeSetWriter< _Graph, _Traits >

The lemon format can store multiple graph edgesets with several maps. The edgeset section's header line is @edgeset edgeset_name, but the edgeset_name may be empty.

The first line of the section contains the names of the maps separated with white spaces. Each next lines describes a edge in the edgeset. The line contains the source and the target nodes' label and the mapped values for each map.

If the edgeset contains an "label" named map then it will be regarded as label map. This map should contain only unique values and when the writeLabel() member will be called with an edge it will write it's label. Otherwise if the _forceLabelMap constructor parameter is true then the label map will be the id in the graph.

The edgeset writer needs a node label writer to identify which nodes have to be connected. If a NodeSetWriter can write the nodes' label, it will be able to use with this class.


Public Member Functions

template<typename NodeLabelWriter>
 EdgeSetWriter (LemonWriter &_writer, const Graph &_graph, const NodeLabelWriter &_nodeLabelWriter, const std::string &_name=std::string(), bool _forceLabelMap=true)
 Constructor.
virtual ~EdgeSetWriter ()
 Destructor.
template<typename Map>
EdgeSetWriterwriteEdgeMap (std::string name, const Map &map)
 Add a new edge map writer command for the writer.
template<typename Writer, typename Map>
EdgeSetWriterwriteEdgeMap (std::string name, const Map &map, const Writer &writer=Writer())
 Add a new edge map writer command for the writer.
bool isLabelWriter () const
 Returns true if the edgeset can write the labels of the edges.
void writeLabel (std::ostream &os, const Edge &item) const
 Write the label of the given edge.

Protected Member Functions

virtual std::string header ()
 The header of the section.
virtual void write (std::ostream &os)
 Writer function of the section.


Constructor & Destructor Documentation

EdgeSetWriter LemonWriter _writer,
const Graph &  _graph,
const NodeLabelWriter &  _nodeLabelWriter,
const std::string &  _name = std::string(),
bool  _forceLabelMap = true
[inline]
 

Constructor for EdgeSetWriter. It creates the EdgeSetWriter and attach it into the given LemonWriter. It will write node labels by the _nodeLabelWriter. If the _forceLabelMap parameter is true then the writer will write own label map if the user does not give "label" named map.

virtual ~EdgeSetWriter  )  [inline, virtual]
 

Destructor for EdgeSetWriter.


Member Function Documentation

EdgeSetWriter& writeEdgeMap std::string  name,
const Map &  map
[inline]
 

Add a new edge map writer command for the writer.

EdgeSetWriter& writeEdgeMap std::string  name,
const Map &  map,
const Writer &  writer = Writer()
[inline]
 

Add a new edge map writer command for the writer.

virtual std::string header  )  [inline, protected, virtual]
 

It gives back the header of the section.

Implements LemonWriter::SectionWriter.

virtual void write std::ostream &  os  )  [inline, protected, virtual]
 

Write the content of the section.

Implements LemonWriter::SectionWriter.

bool isLabelWriter  )  const [inline]
 

Returns true if the edgeset can write the labels of the edges. It is possible only if an "label" named map was written or the _forceLabelMap constructor parameter was true.

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 map then it will write the map value belongs to the edge. Otherwise if the forceLabel parameter was true it will write its label in the graph.


The documentation for this class was generated from the following file:
Generated on Fri Feb 3 18:42:01 2006 for LEMON by  doxygen 1.4.6