Changeset 1909:2d806130e700 in lemon-0.x for lemon/graph_writer.h
- Timestamp:
- 01/26/06 16:42:13 (18 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2484
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/graph_writer.h
r1901 r1909 316 316 /// \brief The undirected graph writer class. 317 317 /// 318 /// The \c U ndirGraphWriter class provides the undirgraph output. To write318 /// The \c UGraphWriter class provides the ugraph output. To write 319 319 /// a graph you should first give writing commands to the writer. You can 320 /// declare write command as \c NodeMap, \c EdgeMap or \c U ndirEdgeMap321 /// writing and labeled Node, Edge or U ndirEdge writing.322 /// 323 /// \code 324 /// U ndirGraphWriter<UndirListGraph> writer(std::cout, graph);320 /// declare write command as \c NodeMap, \c EdgeMap or \c UEdgeMap 321 /// writing and labeled Node, Edge or UEdge writing. 322 /// 323 /// \code 324 /// UGraphWriter<ListUGraph> writer(std::cout, graph); 325 325 /// \endcode 326 326 /// 327 327 /// The \c writeNodeMap() function declares a \c NodeMap writing 328 /// command in the \c U ndirGraphWriter. You should give as parameter328 /// command in the \c UGraphWriter. You should give as parameter 329 329 /// the name of the map and the map object. The NodeMap writing 330 330 /// command with name "label" should write a unique map because it … … 332 332 /// 333 333 /// \code 334 /// IdMap< UndirListGraph, Node> nodeLabelMap;334 /// IdMap<ListUGraph, Node> nodeLabelMap; 335 335 /// writer.writeNodeMap("label", nodeLabelMap); 336 336 /// … … 339 339 /// \endcode 340 340 /// 341 /// With the \c writeU ndirEdgeMap() member function you can give an341 /// With the \c writeUEdgeMap() member function you can give an 342 342 /// undirected edge map writing command similar to the NodeMaps. 343 343 /// … … 345 345 /// DescriptorMap<ListGraph, Edge, ListGraph::EdgeMap<int> > 346 346 /// edgeDescMap(graph); 347 /// writer.writeU ndirEdgeMap("descriptor", edgeDescMap);348 /// 349 /// writer.writeU ndirEdgeMap("weight", weightMap);350 /// writer.writeU ndirEdgeMap("label", labelMap);347 /// writer.writeUEdgeMap("descriptor", edgeDescMap); 348 /// 349 /// writer.writeUEdgeMap("weight", weightMap); 350 /// writer.writeUEdgeMap("label", labelMap); 351 351 /// \endcode 352 352 /// … … 359 359 /// 360 360 /// 361 /// With \c writeNode() and \c writeU ndirEdge() functions you can361 /// With \c writeNode() and \c writeUEdge() functions you can 362 362 /// designate nodes and undirected edges in the graph. For example, you can 363 363 /// write out the source and target of the graph. … … 367 367 /// writer.writeNode("target", targetNode); 368 368 /// 369 /// writer.writeU ndirEdge("observed", undirEdge);369 /// writer.writeUEdge("observed", uEdge); 370 370 /// \endcode 371 371 /// … … 385 385 /// \author Balazs Dezso 386 386 template <typename _Graph, typename _WriterTraits = DefaultWriterTraits> 387 class U ndirGraphWriter {387 class UGraphWriter { 388 388 public: 389 389 … … 391 391 typedef typename Graph::Node Node; 392 392 typedef typename Graph::Edge Edge; 393 typedef typename Graph::U ndirEdge UndirEdge;393 typedef typename Graph::UEdge UEdge; 394 394 395 395 typedef _WriterTraits WriterTraits; 396 396 397 /// \brief Construct a new U ndirGraphWriter.398 /// 399 /// Construct a new U ndirGraphWriter. It writes the given graph397 /// \brief Construct a new UGraphWriter. 398 /// 399 /// Construct a new UGraphWriter. It writes the given graph 400 400 /// to the given stream. 401 U ndirGraphWriter(std::ostream& _os, const Graph& _graph)401 UGraphWriter(std::ostream& _os, const Graph& _graph) 402 402 : writer(new LemonWriter(_os)), own_writer(true), 403 403 nodeset_writer(*writer, _graph, std::string()), 404 u ndir_edgeset_writer(*writer, _graph, nodeset_writer, std::string()),404 u_edgeset_writer(*writer, _graph, nodeset_writer, std::string()), 405 405 node_writer(*writer, nodeset_writer, std::string()), 406 u ndir_edge_writer(*writer, undir_edgeset_writer, std::string()),406 u_edge_writer(*writer, u_edgeset_writer, std::string()), 407 407 attribute_writer(*writer, std::string()) {} 408 408 409 /// \brief Construct a new U ndirGraphWriter.410 /// 411 /// Construct a new U ndirGraphWriter. It writes the given graph409 /// \brief Construct a new UGraphWriter. 410 /// 411 /// Construct a new UGraphWriter. It writes the given graph 412 412 /// to the given file. 413 U ndirGraphWriter(const std::string& _filename, const Graph& _graph)413 UGraphWriter(const std::string& _filename, const Graph& _graph) 414 414 : writer(new LemonWriter(_filename)), own_writer(true), 415 415 nodeset_writer(*writer, _graph, std::string()), 416 u ndir_edgeset_writer(*writer, _graph, nodeset_writer, std::string()),416 u_edgeset_writer(*writer, _graph, nodeset_writer, std::string()), 417 417 node_writer(*writer, nodeset_writer, std::string()), 418 u ndir_edge_writer(*writer, undir_edgeset_writer, std::string()),418 u_edge_writer(*writer, u_edgeset_writer, std::string()), 419 419 attribute_writer(*writer, std::string()) {} 420 420 421 /// \brief Construct a new U ndirGraphWriter.422 /// 423 /// Construct a new U ndirGraphWriter. It writes the given graph421 /// \brief Construct a new UGraphWriter. 422 /// 423 /// Construct a new UGraphWriter. It writes the given graph 424 424 /// to given LemonReader. 425 U ndirGraphWriter(LemonWriter& _writer, const Graph& _graph)425 UGraphWriter(LemonWriter& _writer, const Graph& _graph) 426 426 : writer(_writer), own_writer(false), 427 427 nodeset_writer(*writer, _graph, std::string()), 428 u ndir_edgeset_writer(*writer, _graph, nodeset_writer, std::string()),428 u_edgeset_writer(*writer, _graph, nodeset_writer, std::string()), 429 429 node_writer(*writer, nodeset_writer, std::string()), 430 u ndir_edge_writer(*writer, undir_edgeset_writer, std::string()),430 u_edge_writer(*writer, u_edgeset_writer, std::string()), 431 431 attribute_writer(*writer, std::string()) {} 432 432 … … 434 434 /// 435 435 /// Destruct the graph writer. 436 ~U ndirGraphWriter() {436 ~UGraphWriter() { 437 437 if (own_writer) 438 438 delete writer; … … 443 443 /// This function issues a new <i> node map writing command</i> to the writer. 444 444 template <typename Map> 445 U ndirGraphWriter& writeNodeMap(std::string name, const Map& map) {445 UGraphWriter& writeNodeMap(std::string name, const Map& map) { 446 446 nodeset_writer.writeNodeMap(name, map); 447 447 return *this; … … 452 452 /// This function issues a new <i> node map writing command</i> to the writer. 453 453 template <typename Writer, typename Map> 454 U ndirGraphWriter& writeNodeMap(std::string name, const Map& map,454 UGraphWriter& writeNodeMap(std::string name, const Map& map, 455 455 const Writer& writer = Writer()) { 456 456 nodeset_writer.writeNodeMap(name, map, writer); … … 462 462 /// This function issues a new <i> edge map writing command</i> to the writer. 463 463 template <typename Map> 464 U ndirGraphWriter& writeEdgeMap(std::string name, const Map& map) {465 u ndir_edgeset_writer.writeEdgeMap(name, map);464 UGraphWriter& writeEdgeMap(std::string name, const Map& map) { 465 u_edgeset_writer.writeEdgeMap(name, map); 466 466 return *this; 467 467 } … … 471 471 /// This function issues a new <i> edge map writing command</i> to the writer. 472 472 template <typename Writer, typename Map> 473 U ndirGraphWriter& writeEdgeMap(std::string name, const Map& map,473 UGraphWriter& writeEdgeMap(std::string name, const Map& map, 474 474 const Writer& writer = Writer()) { 475 u ndir_edgeset_writer.writeEdgeMap(name, map, writer);475 u_edgeset_writer.writeEdgeMap(name, map, writer); 476 476 return *this; 477 477 } … … 482 482 /// command</i> to the writer. 483 483 template <typename Map> 484 U ndirGraphWriter& writeUndirEdgeMap(std::string name, const Map& map) {485 u ndir_edgeset_writer.writeUndirEdgeMap(name, map);484 UGraphWriter& writeUEdgeMap(std::string name, const Map& map) { 485 u_edgeset_writer.writeUEdgeMap(name, map); 486 486 return *this; 487 487 } … … 492 492 /// command</i> to the writer. 493 493 template <typename Writer, typename Map> 494 U ndirGraphWriter& writeUndirEdgeMap(std::string name, const Map& map,494 UGraphWriter& writeUEdgeMap(std::string name, const Map& map, 495 495 const Writer& writer = Writer()) { 496 u ndir_edgeset_writer.writeUndirEdgeMap(name, map, writer);496 u_edgeset_writer.writeUEdgeMap(name, map, writer); 497 497 return *this; 498 498 } … … 502 502 /// This function issues a new <i> labeled node writing 503 503 /// command</i> to the writer. 504 U ndirGraphWriter& writeNode(std::string name, const Node& node) {504 UGraphWriter& writeNode(std::string name, const Node& node) { 505 505 node_writer.writeNode(name, node); 506 506 return *this; … … 511 511 /// This function issues a new <i> labeled edge writing 512 512 /// command</i> to the writer. 513 U ndirGraphWriter& writeEdge(std::string name, const Edge& edge) {514 u ndir_edge_writer.writeEdge(name, edge);513 UGraphWriter& writeEdge(std::string name, const Edge& edge) { 514 u_edge_writer.writeEdge(name, edge); 515 515 } 516 516 … … 520 520 /// Issue a new <i>labeled undirected edge writing command</i> to 521 521 /// the writer. 522 U ndirGraphWriter& writeUndirEdge(std::string name, const UndirEdge& edge) {523 u ndir_edge_writer.writeUndirEdge(name, edge);522 UGraphWriter& writeUEdge(std::string name, const UEdge& edge) { 523 u_edge_writer.writeUEdge(name, edge); 524 524 } 525 525 … … 529 529 /// command</i> to the writer. 530 530 template <typename Value> 531 U ndirGraphWriter& writeAttribute(std::string name, const Value& value) {531 UGraphWriter& writeAttribute(std::string name, const Value& value) { 532 532 attribute_writer.writeAttribute(name, value); 533 533 return *this; … … 539 539 /// command</i> to the writer. 540 540 template <typename Writer, typename Value> 541 U ndirGraphWriter& writeAttribute(std::string name, const Value& value,541 UGraphWriter& writeAttribute(std::string name, const Value& value, 542 542 const Writer& writer) { 543 543 attribute_writer.writeAttribute<Writer>(name, value, writer); … … 575 575 /// named edge map then it will write the map value belonging to the edge. 576 576 void writeLabel(std::ostream& os, const Edge& item) const { 577 u ndir_edgeset_writer.writeLabel(os, item);577 u_edgeset_writer.writeLabel(os, item); 578 578 } 579 579 … … 583 583 /// an "label" named edge map then it will write the map value belonging to 584 584 /// the edge. 585 void writeLabel(std::ostream& os, const U ndirEdge& item) const {586 u ndir_edgeset_writer.writeLabel(os, item);585 void writeLabel(std::ostream& os, const UEdge& item) const { 586 u_edgeset_writer.writeLabel(os, item); 587 587 } 588 588 … … 594 594 595 595 NodeSetWriter<Graph, WriterTraits> nodeset_writer; 596 U ndirEdgeSetWriter<Graph, WriterTraits> undir_edgeset_writer;596 UEdgeSetWriter<Graph, WriterTraits> u_edgeset_writer; 597 597 598 598 NodeWriter<Graph> node_writer; 599 U ndirEdgeWriter<Graph> undir_edge_writer;599 UEdgeWriter<Graph> u_edge_writer; 600 600 601 601 AttributeWriter<WriterTraits> attribute_writer; … … 605 605 /// 606 606 /// It is a helper function to write an undirected graph to the given output 607 /// stream. It gives back an U ndirGraphWriter object and this object607 /// stream. It gives back an UGraphWriter object and this object 608 608 /// can write more maps, labeled nodes and edges and attributes. 609 609 /// \warning Do not forget to call the \c run() function. … … 612 612 /// \param g The graph. 613 613 template <typename Graph> 614 U ndirGraphWriter<Graph> undirGraphWriter(std::ostream& os, const Graph &g) {615 return U ndirGraphWriter<Graph>(os, g);614 UGraphWriter<Graph> uGraphWriter(std::ostream& os, const Graph &g) { 615 return UGraphWriter<Graph>(os, g); 616 616 } 617 617 … … 619 619 /// 620 620 /// It is a helper function to write an undirected graph to the given output 621 /// file. It gives back an U ndirGraphWriter object and this object621 /// file. It gives back an UGraphWriter object and this object 622 622 /// can write more maps, labeled nodes, edges, undirected edges and 623 623 /// attributes. … … 628 628 /// \param g The graph. 629 629 template <typename Graph> 630 U ndirGraphWriter<Graph> undirGraphWriter(const std::string& fn,630 UGraphWriter<Graph> uGraphWriter(const std::string& fn, 631 631 const Graph &g) { 632 return U ndirGraphWriter<Graph>(fn, g);632 return UGraphWriter<Graph>(fn, g); 633 633 } 634 634
Note: See TracChangeset
for help on using the changeset viewer.