Changeset 1396:56f9a4ba9149 in lemon-0.x for src/lemon/graph_reader.h
- Timestamp:
- 04/28/05 11:54:38 (19 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1856
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/lemon/graph_reader.h
r1394 r1396 182 182 }; 183 183 184 class GUIReader { 185 public: 186 virtual void read(std::istream& is) = 0; 187 }; 188 184 189 /// \brief The graph reader class. 185 190 /// … … 264 269 GraphReader(std::istream& _is, Graph& _graph, 265 270 const DefaultReader& _reader = DefaultReader()) 266 : is(_is), graph(_graph), nodeSkipper(_reader), edgeSkipper(_reader) {} 271 : gui_reader(0), is(_is), graph(_graph), 272 nodeSkipper(_reader), edgeSkipper(_reader) {} 267 273 268 274 /// \brief Destruct the graph reader. … … 412 418 line = readEdges(line_num, edgeInverter); 413 419 } 420 if (line.find("@gui") == 0) { 421 line = readGUI(line_num); 422 } 414 423 if (line.find("@end") != 0) { 415 424 throw DataFormatError("Invalid control sequence error"); … … 419 428 throw e; 420 429 } 430 } 431 432 GraphReader& readGUI(GUIReader& reader) { 433 gui_reader = &reader; 434 return *this; 421 435 } 422 436 … … 545 559 } 546 560 561 std::string readGUI(int& line_num) { 562 std::stringstream section; 563 std::string line; 564 while (line = readNotEmptyLine(is, line_num), line[0] != '@') { 565 section << line << std::endl; 566 } 567 if (gui_reader != 0) { 568 gui_reader->read(section); 569 } 570 return line; 571 } 572 547 573 std::string readNotEmptyLine(std::istream& is, int& line_num) { 548 574 std::string line; … … 732 758 typedef std::map<std::string, Edge*> EdgeReaders; 733 759 EdgeReaders edge_readers; 760 761 GUIReader* gui_reader; 734 762 735 763 std::istream& is;
Note: See TracChangeset
for help on using the changeset viewer.