@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. In addition if the the _forceSort
is true then the writer will write the edges sorted by the labels.
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. #include <lemon/lemon_writer.h>
Public Member Functions | |
template<typename NodeLabelWriter > | |
EdgeSetWriter (LemonWriter &_writer, const Graph &_graph, const NodeLabelWriter &_nodeLabelWriter, const std::string &_name=std::string(), bool _forceLabelMap=true, bool _forceSort=true) | |
Constructor. | |
virtual | ~EdgeSetWriter () |
Destructor. | |
template<typename Map > | |
EdgeSetWriter & | writeEdgeMap (std::string label, const Map &map) |
template<typename ItemWriter , typename Map > | |
EdgeSetWriter & | writeEdgeMap (std::string label, const Map &map, const ItemWriter &iw=ItemWriter()) |
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. | |
void | sortByLabel (std::vector< Edge > &edges) const |
Sorts the given edge vector by label. | |
Protected Member Functions | |
virtual std::string | header () |
The header of the section. | |
virtual void | write (std::ostream &os) |
Writer function of the section. |
EdgeSetWriter | ( | LemonWriter & | _writer, | |
const Graph & | _graph, | |||
const NodeLabelWriter & | _nodeLabelWriter, | |||
const std::string & | _name = std::string() , |
|||
bool | _forceLabelMap = true , |
|||
bool | _forceSort = 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. In addition if the the _forceSort
is true then the writer will write the edges sorted by the labels.
virtual ~EdgeSetWriter | ( | ) | [inline, virtual] |
Destructor for EdgeSetWriter.
EdgeSetWriter& writeEdgeMap | ( | std::string | label, | |
const Map & | map | |||
) | [inline] |
Add a new edge map writer command for the writer.
EdgeSetWriter& writeEdgeMap | ( | std::string | label, | |
const Map & | map, | |||
const ItemWriter & | iw = ItemWriter() | |||
) | [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 SectionWriter.
virtual void write | ( | std::ostream & | os | ) | [inline, protected, virtual] |
Write the content of the section.
Implements SectionWriter.
bool isLabelWriter | ( | ) | const [inline] |
Returns true if the edgeset can write the labels of the edges. It is possible only if a "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 a "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.
void sortByLabel | ( | std::vector< Edge > & | edges | ) | const [inline] |
Sorts the given edge vector by label. If there was written an "label" named map then the vector will be sorted by the values of this map. Otherwise if the forceLabel
parameter was true it will be sorted by its id in the graph.