Changeset 2386:81b47fc5c444 in lemon-0.x for lemon/lemon_writer.h
- Timestamp:
- 03/02/07 19:04:28 (17 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3217
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/lemon_writer.h
r2282 r2386 473 473 /// Add a new node map writer command for the writer. 474 474 template <typename Map> 475 NodeSetWriter& writeNodeMap(std::string name, const Map& map) {475 NodeSetWriter& writeNodeMap(std::string label, const Map& map) { 476 476 return writeNodeMap<typename Traits:: 477 template Writer<typename Map::Value>, Map>( name, map);477 template Writer<typename Map::Value>, Map>(label, map); 478 478 } 479 479 … … 481 481 /// 482 482 /// Add a new node map writer command for the writer. 483 template <typename Writer, typename Map>484 NodeSetWriter& writeNodeMap(std::string name, const Map& map,485 const Writer& writer =Writer()) {483 template <typename ItemWriter, typename Map> 484 NodeSetWriter& writeNodeMap(std::string label, const Map& map, 485 const ItemWriter& iw = ItemWriter()) { 486 486 checkConcept<concepts::ReadMap<Node, typename Map::Value>, Map>(); 487 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, 487 checkConcept<_writer_bits::ItemWriter<typename Map::Value>,ItemWriter>(); 488 488 writers.push_back( 489 make_pair( name, new _writer_bits::490 MapWriter<Node, Map, Writer>(map, writer)));489 make_pair(label, new _writer_bits:: 490 MapWriter<Node, Map, ItemWriter>(map, iw))); 491 491 return *this; 492 492 } … … 505 505 /// Write the content of the section. 506 506 virtual void write(std::ostream& os) { 507 for (int i = 0; i < (int)writers.size(); ++i) {507 for (int i = 0; i < int(writers.size()); ++i) { 508 508 if (writers[i].first == "label") { 509 509 labelMap = writers[i].second; … … 529 529 os << "label\t"; 530 530 } 531 for (int i = 0; i < (int)writers.size(); ++i) {531 for (int i = 0; i < int(writers.size()); ++i) { 532 532 os << writers[i].first << '\t'; 533 533 } … … 538 538 os << graph.id(*it) << '\t'; 539 539 } 540 for (int i = 0; i < (int)writers.size(); ++i) {540 for (int i = 0; i < int(writers.size()); ++i) { 541 541 writers[i].second->write(os, *it); 542 542 os << '\t'; … … 662 662 /// Add a new edge map writer command for the writer. 663 663 template <typename Map> 664 EdgeSetWriter& writeEdgeMap(std::string name, const Map& map) {664 EdgeSetWriter& writeEdgeMap(std::string label, const Map& map) { 665 665 return writeEdgeMap<typename Traits:: 666 template Writer<typename Map::Value>, Map>( name, map);666 template Writer<typename Map::Value>, Map>(label, map); 667 667 } 668 668 … … 670 670 /// 671 671 /// Add a new edge map writer command for the writer. 672 template <typename Writer, typename Map>673 EdgeSetWriter& writeEdgeMap(std::string name, const Map& map,674 const Writer& writer =Writer()) {672 template <typename ItemWriter, typename Map> 673 EdgeSetWriter& writeEdgeMap(std::string label, const Map& map, 674 const ItemWriter& iw = ItemWriter()) { 675 675 checkConcept<concepts::ReadMap<Edge, typename Map::Value>, Map>(); 676 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();676 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, ItemWriter>(); 677 677 writers.push_back( 678 make_pair( name, new _writer_bits::679 MapWriter<Edge, Map, Writer>(map, writer)));678 make_pair(label, new _writer_bits:: 679 MapWriter<Edge, Map, ItemWriter>(map, iw))); 680 680 return *this; 681 681 } … … 697 697 throw DataFormatError("Cannot find nodeset or label map"); 698 698 } 699 for (int i = 0; i < (int)writers.size(); ++i) {699 for (int i = 0; i < int(writers.size()); ++i) { 700 700 if (writers[i].first == "label") { 701 701 labelMap = writers[i].second; … … 722 722 os << "label\t"; 723 723 } 724 for (int i = 0; i < (int)writers.size(); ++i) {724 for (int i = 0; i < int(writers.size()); ++i) { 725 725 os << writers[i].first << '\t'; 726 726 } … … 735 735 os << graph.id(*it) << '\t'; 736 736 } 737 for (int i = 0; i < (int)writers.size(); ++i) {737 for (int i = 0; i < int(writers.size()); ++i) { 738 738 writers[i].second->write(os, *it); 739 739 os << '\t'; … … 868 868 /// Add a new undirected map writer command for the writer. 869 869 template <typename Map> 870 UEdgeSetWriter& writeUEdgeMap(std::string name, const Map& map) {870 UEdgeSetWriter& writeUEdgeMap(std::string label, const Map& map) { 871 871 return writeUEdgeMap<typename Traits:: 872 template Writer<typename Map::Value>, Map>( name, map);872 template Writer<typename Map::Value>, Map>(label, map); 873 873 } 874 874 … … 876 876 /// 877 877 /// Add a new undirected map writer command for the writer. 878 template <typename Writer, typename Map>879 UEdgeSetWriter& writeUEdgeMap(std::string name, const Map& map,880 const Writer& writer =Writer()) {878 template <typename ItemWriter, typename Map> 879 UEdgeSetWriter& writeUEdgeMap(std::string label, const Map& map, 880 const ItemWriter& iw = ItemWriter()) { 881 881 checkConcept<concepts::ReadMap<UEdge, typename Map::Value>, Map>(); 882 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();882 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, ItemWriter>(); 883 883 writers.push_back( 884 make_pair( name, new _writer_bits::885 MapWriter<UEdge, Map, Writer>(map, writer)));884 make_pair(label, new _writer_bits:: 885 MapWriter<UEdge, Map, ItemWriter>(map, iw))); 886 886 return *this; 887 887 } … … 891 891 /// Add a new directed map writer command for the writer. 892 892 template <typename Map> 893 UEdgeSetWriter& writeEdgeMap(std::string name, const Map& map) {893 UEdgeSetWriter& writeEdgeMap(std::string label, const Map& map) { 894 894 return writeEdgeMap<typename Traits:: 895 template Writer<typename Map::Value>, Map>( name, map);895 template Writer<typename Map::Value>, Map>(label, map); 896 896 } 897 897 … … 899 899 /// 900 900 /// Add a new directed map writer command for the writer. 901 template <typename Writer, typename Map>902 UEdgeSetWriter& writeEdgeMap(std::string name, const Map& map,903 const Writer& writer =Writer()) {901 template <typename ItemWriter, typename Map> 902 UEdgeSetWriter& writeEdgeMap(std::string label, const Map& map, 903 const ItemWriter& iw = ItemWriter()) { 904 904 checkConcept<concepts::ReadMap<Edge, typename Map::Value>, Map>(); 905 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, Writer>();905 checkConcept<_writer_bits::ItemWriter<typename Map::Value>, ItemWriter>(); 906 906 writeUEdgeMap("+" + name, 907 _writer_bits::forwardComposeMap(graph, map), writer);907 _writer_bits::forwardComposeMap(graph, map), iw); 908 908 writeUEdgeMap("-" + name, 909 _writer_bits::backwardComposeMap(graph, map), writer);909 _writer_bits::backwardComposeMap(graph, map), iw); 910 910 return *this; 911 911 } … … 927 927 throw DataFormatError("Cannot find nodeset or label map"); 928 928 } 929 for (int i = 0; i < (int)writers.size(); ++i) {929 for (int i = 0; i < int(writers.size()); ++i) { 930 930 if (writers[i].first == "label") { 931 931 labelMap = writers[i].second; … … 952 952 os << "label\t"; 953 953 } 954 for (int i = 0; i < (int)writers.size(); ++i) {954 for (int i = 0; i < int(writers.size()); ++i) { 955 955 os << writers[i].first << '\t'; 956 956 } … … 965 965 os << graph.id(*it) << '\t'; 966 966 } 967 for (int i = 0; i < (int)writers.size(); ++i) {967 for (int i = 0; i < int(writers.size()); ++i) { 968 968 writers[i].second->write(os, *it); 969 969 os << '\t'; … … 1081 1081 /// 1082 1082 /// Add a node writer command for the NodeWriter. 1083 void writeNode( const std::string& name, const Node& item) {1084 writers.push_back(make_pair( name, &item));1083 void writeNode(std::string label, const Node& item) { 1084 writers.push_back(make_pair(label, &item)); 1085 1085 } 1086 1086 … … 1101 1101 throw DataFormatError("Cannot find nodeset or label map"); 1102 1102 } 1103 for (int i = 0; i < (int)writers.size(); ++i) {1103 for (int i = 0; i < int(writers.size()); ++i) { 1104 1104 os << writers[i].first << ' '; 1105 1105 labelWriter->write(os, *(writers[i].second)); … … 1165 1165 /// 1166 1166 /// Add an edge writer command for the EdgeWriter. 1167 void writeEdge( const std::string& name, const Edge& item) {1168 writers.push_back(make_pair( name, &item));1167 void writeEdge(std::string label, const Edge& item) { 1168 writers.push_back(make_pair(label, &item)); 1169 1169 } 1170 1170 … … 1185 1185 throw DataFormatError("Cannot find edgeset or label map"); 1186 1186 } 1187 for (int i = 0; i < (int)writers.size(); ++i) {1187 for (int i = 0; i < int(writers.size()); ++i) { 1188 1188 os << writers[i].first << ' '; 1189 1189 labelWriter->write(os, *(writers[i].second)); … … 1257 1257 /// 1258 1258 /// Add an edge writer command for the UEdgeWriter. 1259 void writeEdge( const std::string& name, const Edge& item) {1260 edgeWriters.push_back(make_pair( name, &item));1259 void writeEdge(std::string label, const Edge& item) { 1260 edgeWriters.push_back(make_pair(label, &item)); 1261 1261 } 1262 1262 … … 1264 1264 /// 1265 1265 /// Add an undirected edge writer command for the UEdgeWriter. 1266 void writeUEdge( const std::string& name, const UEdge& item) {1267 uEdgeWriters.push_back(make_pair( name, &item));1266 void writeUEdge(std::string label, const UEdge& item) { 1267 uEdgeWriters.push_back(make_pair(label, &item)); 1268 1268 } 1269 1269 … … 1287 1287 throw DataFormatError("Cannot find undirected edgeset or label map"); 1288 1288 } 1289 for (int i = 0; i < (int)uEdgeWriters.size(); ++i) {1289 for (int i = 0; i < int(uEdgeWriters.size()); ++i) { 1290 1290 os << uEdgeWriters[i].first << ' '; 1291 1291 uEdgeLabelWriter->write(os, *(uEdgeWriters[i].second)); 1292 1292 os << std::endl; 1293 1293 } 1294 for (int i = 0; i < (int)edgeWriters.size(); ++i) {1294 for (int i = 0; i < int(edgeWriters.size()); ++i) { 1295 1295 os << edgeWriters[i].first << ' '; 1296 1296 edgeLabelWriter->write(os, *(edgeWriters[i].second)); … … 1364 1364 /// Add an attribute writer command for the writer. 1365 1365 template <typename Value> 1366 AttributeWriter& writeAttribute( const std::string& name,1366 AttributeWriter& writeAttribute(std::string label, 1367 1367 const Value& value) { 1368 1368 return … … 1373 1373 /// 1374 1374 /// Add an attribute writer command for the writer. 1375 template <typename Writer, typename Value> 1376 AttributeWriter& writeAttribute(const std::string& name, 1377 const Value& value, 1378 const Writer& writer = Writer()) { 1379 checkConcept<_writer_bits::ItemWriter<Value>, Writer>(); 1380 writers.push_back(make_pair(name, new _writer_bits:: 1381 ValueWriter<Value, Writer>(value, writer))); 1375 template <typename ItemWriter, typename Value> 1376 AttributeWriter& writeAttribute(std::string label, const Value& value, 1377 const ItemWriter& iw = ItemWriter()) { 1378 checkConcept<_writer_bits::ItemWriter<Value>, ItemWriter>(); 1379 writers.push_back(make_pair(label, new _writer_bits:: 1380 ValueWriter<Value, ItemWriter>(value, iw))); 1382 1381 return *this; 1383 1382 }
Note: See TracChangeset
for help on using the changeset viewer.