lemon/lemon_writer.h
changeset 2386 81b47fc5c444
parent 2282 9d7b12f83daa
child 2391 14a343be7a5a
     1.1 --- a/lemon/lemon_writer.h	Fri Mar 02 17:56:22 2007 +0000
     1.2 +++ b/lemon/lemon_writer.h	Fri Mar 02 18:04:28 2007 +0000
     1.3 @@ -472,22 +472,22 @@
     1.4      ///
     1.5      /// Add a new node map writer command for the writer.
     1.6      template <typename Map>
     1.7 -    NodeSetWriter& writeNodeMap(std::string name, const Map& map) {
     1.8 +    NodeSetWriter& writeNodeMap(std::string label, const Map& map) {
     1.9        return writeNodeMap<typename Traits::
    1.10 -	template Writer<typename Map::Value>, Map>(name, map);
    1.11 +	template Writer<typename Map::Value>, Map>(label, map);
    1.12      }
    1.13  
    1.14      /// \brief Add a new node map writer command for the writer.
    1.15      ///
    1.16      /// Add a new node map writer command for the writer.
    1.17 -    template <typename Writer, typename Map>
    1.18 -    NodeSetWriter& writeNodeMap(std::string name, const Map& map, 
    1.19 -			    const Writer& writer = Writer()) {
    1.20 +    template <typename ItemWriter, typename Map>
    1.21 +    NodeSetWriter& writeNodeMap(std::string label, const Map& map, 
    1.22 +			    const ItemWriter& iw = ItemWriter()) {
    1.23        checkConcept<concepts::ReadMap<Node, typename Map::Value>, Map>();
    1.24 -      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();
    1.25 +      checkConcept<_writer_bits::ItemWriter<typename Map::Value>,ItemWriter>();
    1.26        writers.push_back(
    1.27 -	make_pair(name, new _writer_bits::
    1.28 -		  MapWriter<Node, Map, Writer>(map, writer)));
    1.29 +	make_pair(label, new _writer_bits::
    1.30 +		  MapWriter<Node, Map, ItemWriter>(map, iw)));
    1.31        return *this;
    1.32      }
    1.33  
    1.34 @@ -504,7 +504,7 @@
    1.35      ///
    1.36      /// Write the content of the section.
    1.37      virtual void write(std::ostream& os) {
    1.38 -      for (int i = 0; i < (int)writers.size(); ++i) {
    1.39 +      for (int i = 0; i < int(writers.size()); ++i) {
    1.40  	if (writers[i].first == "label") {
    1.41  	  labelMap = writers[i].second;
    1.42  	  forceLabelMap = false;
    1.43 @@ -528,7 +528,7 @@
    1.44        if (forceLabelMap) {
    1.45  	os << "label\t";
    1.46        }
    1.47 -      for (int i = 0; i < (int)writers.size(); ++i) {
    1.48 +      for (int i = 0; i < int(writers.size()); ++i) {
    1.49  	os << writers[i].first << '\t';
    1.50        }
    1.51        os << std::endl;
    1.52 @@ -537,7 +537,7 @@
    1.53  	if (forceLabelMap) {
    1.54  	  os << graph.id(*it) << '\t';
    1.55  	}
    1.56 -	for (int i = 0; i < (int)writers.size(); ++i) {
    1.57 +	for (int i = 0; i < int(writers.size()); ++i) {
    1.58  	  writers[i].second->write(os, *it);
    1.59  	  os << '\t';
    1.60  	}
    1.61 @@ -661,22 +661,22 @@
    1.62      ///
    1.63      /// Add a new edge map writer command for the writer.
    1.64      template <typename Map>
    1.65 -    EdgeSetWriter& writeEdgeMap(std::string name, const Map& map) {
    1.66 +    EdgeSetWriter& writeEdgeMap(std::string label, const Map& map) {
    1.67        return writeEdgeMap<typename Traits::
    1.68 -	template Writer<typename Map::Value>, Map>(name, map);
    1.69 +	template Writer<typename Map::Value>, Map>(label, map);
    1.70      }
    1.71  
    1.72      /// \brief Add a new edge map writer command for the writer.
    1.73      ///
    1.74      /// Add a new edge map writer command for the writer.
    1.75 -    template <typename Writer, typename Map>
    1.76 -    EdgeSetWriter& writeEdgeMap(std::string name, const Map& map, 
    1.77 -			    const Writer& writer = Writer()) {
    1.78 +    template <typename ItemWriter, typename Map>
    1.79 +    EdgeSetWriter& writeEdgeMap(std::string label, const Map& map, 
    1.80 +			    const ItemWriter& iw = ItemWriter()) {
    1.81        checkConcept<concepts::ReadMap<Edge, typename Map::Value>, Map>();
    1.82 -      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();
    1.83 +      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, ItemWriter>();
    1.84        writers.push_back(
    1.85 -	make_pair(name, new _writer_bits::
    1.86 -		  MapWriter<Edge, Map, Writer>(map, writer)));
    1.87 +	make_pair(label, new _writer_bits::
    1.88 +		  MapWriter<Edge, Map, ItemWriter>(map, iw)));
    1.89        return *this;
    1.90      }
    1.91  
    1.92 @@ -696,7 +696,7 @@
    1.93        if (!nodeLabelWriter->isLabelWriter()) {
    1.94  	throw DataFormatError("Cannot find nodeset or label map");
    1.95        }
    1.96 -      for (int i = 0; i < (int)writers.size(); ++i) {
    1.97 +      for (int i = 0; i < int(writers.size()); ++i) {
    1.98  	if (writers[i].first == "label") {
    1.99  	  labelMap = writers[i].second;
   1.100  	  forceLabelMap = false;
   1.101 @@ -721,7 +721,7 @@
   1.102        if (forceLabelMap) {
   1.103  	os << "label\t";
   1.104        }
   1.105 -      for (int i = 0; i < (int)writers.size(); ++i) {
   1.106 +      for (int i = 0; i < int(writers.size()); ++i) {
   1.107  	os << writers[i].first << '\t';
   1.108        }
   1.109        os << std::endl;
   1.110 @@ -734,7 +734,7 @@
   1.111  	if (forceLabelMap) {
   1.112  	  os << graph.id(*it) << '\t';
   1.113  	}
   1.114 -	for (int i = 0; i < (int)writers.size(); ++i) {
   1.115 +	for (int i = 0; i < int(writers.size()); ++i) {
   1.116  	  writers[i].second->write(os, *it);
   1.117  	  os << '\t';
   1.118  	}
   1.119 @@ -867,22 +867,22 @@
   1.120      ///
   1.121      /// Add a new undirected map writer command for the writer.
   1.122      template <typename Map>
   1.123 -    UEdgeSetWriter& writeUEdgeMap(std::string name, const Map& map) {
   1.124 +    UEdgeSetWriter& writeUEdgeMap(std::string label, const Map& map) {
   1.125        return writeUEdgeMap<typename Traits::
   1.126 -	template Writer<typename Map::Value>, Map>(name, map);
   1.127 +	template Writer<typename Map::Value>, Map>(label, map);
   1.128      }
   1.129  
   1.130      /// \brief Add a new undirected map writer command for the writer.
   1.131      ///
   1.132      /// Add a new undirected map writer command for the writer.
   1.133 -    template <typename Writer, typename Map>
   1.134 -    UEdgeSetWriter& writeUEdgeMap(std::string name, const Map& map, 
   1.135 -                                  const Writer& writer = Writer()) {
   1.136 +    template <typename ItemWriter, typename Map>
   1.137 +    UEdgeSetWriter& writeUEdgeMap(std::string label, const Map& map, 
   1.138 +                                  const ItemWriter& iw = ItemWriter()) {
   1.139        checkConcept<concepts::ReadMap<UEdge, typename Map::Value>, Map>();
   1.140 -      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();
   1.141 +      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, ItemWriter>();
   1.142        writers.push_back(
   1.143 -	make_pair(name, new _writer_bits::
   1.144 -		  MapWriter<UEdge, Map, Writer>(map, writer)));
   1.145 +	make_pair(label, new _writer_bits::
   1.146 +		  MapWriter<UEdge, Map, ItemWriter>(map, iw)));
   1.147        return *this;
   1.148      }
   1.149  
   1.150 @@ -890,23 +890,23 @@
   1.151      ///
   1.152      /// Add a new directed map writer command for the writer.
   1.153      template <typename Map>
   1.154 -    UEdgeSetWriter& writeEdgeMap(std::string name, const Map& map) {
   1.155 +    UEdgeSetWriter& writeEdgeMap(std::string label, const Map& map) {
   1.156        return writeEdgeMap<typename Traits::
   1.157 -	template Writer<typename Map::Value>, Map>(name, map);
   1.158 +	template Writer<typename Map::Value>, Map>(label, map);
   1.159      }
   1.160  
   1.161      /// \brief Add a new directed map writer command for the writer.
   1.162      ///
   1.163      /// Add a new directed map writer command for the writer.
   1.164 -    template <typename Writer, typename Map>
   1.165 -    UEdgeSetWriter& writeEdgeMap(std::string name, const Map& map, 
   1.166 -                                 const Writer& writer = Writer()) {
   1.167 +    template <typename ItemWriter, typename Map>
   1.168 +    UEdgeSetWriter& writeEdgeMap(std::string label, const Map& map, 
   1.169 +                                 const ItemWriter& iw = ItemWriter()) {
   1.170        checkConcept<concepts::ReadMap<Edge, typename Map::Value>, Map>();
   1.171 -      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();
   1.172 +      checkConcept<_writer_bits::ItemWriter<typename Map::Value>, ItemWriter>();
   1.173        writeUEdgeMap("+" + name, 
   1.174 -                    _writer_bits::forwardComposeMap(graph, map), writer);
   1.175 +                    _writer_bits::forwardComposeMap(graph, map), iw);
   1.176        writeUEdgeMap("-" + name, 
   1.177 -                    _writer_bits::backwardComposeMap(graph, map), writer);
   1.178 +                    _writer_bits::backwardComposeMap(graph, map), iw);
   1.179        return *this;
   1.180      }
   1.181  
   1.182 @@ -926,7 +926,7 @@
   1.183        if (!nodeLabelWriter->isLabelWriter()) {
   1.184  	throw DataFormatError("Cannot find nodeset or label map");
   1.185        }
   1.186 -      for (int i = 0; i < (int)writers.size(); ++i) {
   1.187 +      for (int i = 0; i < int(writers.size()); ++i) {
   1.188  	if (writers[i].first == "label") {
   1.189  	  labelMap = writers[i].second;
   1.190  	  forceLabelMap = false;
   1.191 @@ -951,7 +951,7 @@
   1.192        if (forceLabelMap) {
   1.193  	os << "label\t";
   1.194        }
   1.195 -      for (int i = 0; i < (int)writers.size(); ++i) {
   1.196 +      for (int i = 0; i < int(writers.size()); ++i) {
   1.197  	os << writers[i].first << '\t';
   1.198        }
   1.199        os << std::endl;
   1.200 @@ -964,7 +964,7 @@
   1.201  	if (forceLabelMap) {
   1.202  	  os << graph.id(*it) << '\t';
   1.203  	}
   1.204 -	for (int i = 0; i < (int)writers.size(); ++i) {
   1.205 +	for (int i = 0; i < int(writers.size()); ++i) {
   1.206  	  writers[i].second->write(os, *it);
   1.207  	  os << '\t';
   1.208  	}
   1.209 @@ -1080,8 +1080,8 @@
   1.210      /// \brief Add a node writer command for the NodeWriter.
   1.211      ///
   1.212      /// Add a node writer command for the NodeWriter.
   1.213 -    void writeNode(const std::string& name, const Node& item) {
   1.214 -      writers.push_back(make_pair(name, &item));
   1.215 +    void writeNode(std::string label, const Node& item) {
   1.216 +      writers.push_back(make_pair(label, &item));
   1.217      }
   1.218  
   1.219    protected:
   1.220 @@ -1100,7 +1100,7 @@
   1.221        if (!labelWriter->isLabelWriter()) {
   1.222  	throw DataFormatError("Cannot find nodeset or label map");
   1.223        }
   1.224 -      for (int i = 0; i < (int)writers.size(); ++i) {
   1.225 +      for (int i = 0; i < int(writers.size()); ++i) {
   1.226  	os << writers[i].first << ' ';
   1.227  	labelWriter->write(os, *(writers[i].second));
   1.228  	os << std::endl;
   1.229 @@ -1164,8 +1164,8 @@
   1.230      /// \brief Add an edge writer command for the EdgeWriter.
   1.231      ///
   1.232      /// Add an edge writer command for the EdgeWriter.
   1.233 -    void writeEdge(const std::string& name, const Edge& item) {
   1.234 -      writers.push_back(make_pair(name, &item));
   1.235 +    void writeEdge(std::string label, const Edge& item) {
   1.236 +      writers.push_back(make_pair(label, &item));
   1.237      }
   1.238  
   1.239    protected:
   1.240 @@ -1184,7 +1184,7 @@
   1.241        if (!labelWriter->isLabelWriter()) {
   1.242  	throw DataFormatError("Cannot find edgeset or label map");
   1.243        }
   1.244 -      for (int i = 0; i < (int)writers.size(); ++i) {
   1.245 +      for (int i = 0; i < int(writers.size()); ++i) {
   1.246  	os << writers[i].first << ' ';
   1.247  	labelWriter->write(os, *(writers[i].second));
   1.248  	os << std::endl;
   1.249 @@ -1256,15 +1256,15 @@
   1.250      /// \brief Add an edge writer command for the UEdgeWriter.
   1.251      ///
   1.252      /// Add an edge writer command for the UEdgeWriter.
   1.253 -    void writeEdge(const std::string& name, const Edge& item) {
   1.254 -      edgeWriters.push_back(make_pair(name, &item));
   1.255 +    void writeEdge(std::string label, const Edge& item) {
   1.256 +      edgeWriters.push_back(make_pair(label, &item));
   1.257      }
   1.258  
   1.259      /// \brief Add an undirected edge writer command for the UEdgeWriter.
   1.260      ///
   1.261      /// Add an undirected edge writer command for the UEdgeWriter.
   1.262 -    void writeUEdge(const std::string& name, const UEdge& item) {
   1.263 -      uEdgeWriters.push_back(make_pair(name, &item));
   1.264 +    void writeUEdge(std::string label, const UEdge& item) {
   1.265 +      uEdgeWriters.push_back(make_pair(label, &item));
   1.266      }
   1.267  
   1.268    protected:
   1.269 @@ -1286,12 +1286,12 @@
   1.270        if (!uEdgeLabelWriter->isLabelWriter()) {
   1.271  	throw DataFormatError("Cannot find undirected edgeset or label map");
   1.272        }
   1.273 -      for (int i = 0; i < (int)uEdgeWriters.size(); ++i) {
   1.274 +      for (int i = 0; i < int(uEdgeWriters.size()); ++i) {
   1.275  	os << uEdgeWriters[i].first << ' ';
   1.276  	uEdgeLabelWriter->write(os, *(uEdgeWriters[i].second));
   1.277  	os << std::endl;
   1.278        }
   1.279 -      for (int i = 0; i < (int)edgeWriters.size(); ++i) {
   1.280 +      for (int i = 0; i < int(edgeWriters.size()); ++i) {
   1.281  	os << edgeWriters[i].first << ' ';
   1.282  	edgeLabelWriter->write(os, *(edgeWriters[i].second));
   1.283  	os << std::endl;
   1.284 @@ -1363,7 +1363,7 @@
   1.285      ///
   1.286      /// Add an attribute writer command for the writer.
   1.287      template <typename Value>
   1.288 -    AttributeWriter& writeAttribute(const std::string& name, 
   1.289 +    AttributeWriter& writeAttribute(std::string label, 
   1.290  				    const Value& value) {
   1.291        return 
   1.292  	writeAttribute<typename Traits::template Writer<Value> >(name, value);
   1.293 @@ -1372,13 +1372,12 @@
   1.294      /// \brief Add an attribute writer command for the writer.
   1.295      ///
   1.296      /// Add an attribute writer command for the writer.
   1.297 -    template <typename Writer, typename Value>
   1.298 -    AttributeWriter& writeAttribute(const std::string& name, 
   1.299 -				    const Value& value,
   1.300 -				    const Writer& writer = Writer()) {
   1.301 -      checkConcept<_writer_bits::ItemWriter<Value>, Writer>();
   1.302 -      writers.push_back(make_pair(name, new _writer_bits::
   1.303 -				  ValueWriter<Value, Writer>(value, writer)));
   1.304 +    template <typename ItemWriter, typename Value>
   1.305 +    AttributeWriter& writeAttribute(std::string label, const Value& value,
   1.306 +				    const ItemWriter& iw = ItemWriter()) {
   1.307 +      checkConcept<_writer_bits::ItemWriter<Value>, ItemWriter>();
   1.308 +      writers.push_back(make_pair(label, new _writer_bits::
   1.309 +				  ValueWriter<Value, ItemWriter>(value, iw)));
   1.310        return *this;
   1.311      }
   1.312