gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Doc improvements in LGF related files
0 5 0
default
5 files changed with 147 insertions and 96 deletions:
↑ Collapse diff ↑
Show white space 4 line context
... ...
@@ -35,6 +35,4 @@
35 35
#include <lemon/lgf_reader.h>
36 36
#include <lemon/lgf_writer.h>
37
#include <lemon/random.h>
38

	
39 37

	
40 38
using namespace lemon;
... ...
@@ -45,5 +43,5 @@
45 43
  SmartDigraph::Node s, t;
46 44

	
47
  digraphReader("digraph.lgf", g). // read the directeg graph into g
45
  digraphReader("digraph.lgf", g). // read the directed graph into g
48 46
    arcMap("capacity", cap).       // read the 'capacity' arc map into cap
49 47
    node("source", s).             // read 'source' node to s
... ...
@@ -51,5 +49,5 @@
51 49
    run();
52 50

	
53
  std::cout << "Digraph read from 'digraph.lgf'" << std::endl;
51
  std::cout << "A digraph is read from 'digraph.lgf'." << std::endl;
54 52
  std::cout << "Number of nodes: " << countNodes(g) << std::endl;
55 53
  std::cout << "Number of arcs: " << countArcs(g) << std::endl;
Show white space 4 line context
... ...
@@ -476,9 +476,7 @@
476 476
@defgroup lemon_io Lemon Input-Output
477 477
@ingroup io_group
478
\brief Reading and writing LEMON format
478
\brief Reading and writing \ref lgf-format "Lemon Graph Format".
479 479

	
480
This group describes methods for reading and writing LEMON format. 
481
You can find more about this format on the \ref graph-io-page "Graph Input-Output"
482
tutorial pages.
480
This group describes methods for reading and writing \ref lgf-format "Lemon Graph Format".
483 481
*/
484 482

	
Show white space 4 line context
... ...
@@ -47,5 +47,5 @@
47 47

	
48 48
The \c \@nodes section describes a set of nodes and associated
49
maps. The first is a header line, it columns are the names of the
49
maps. The first is a header line, its columns are the names of the
50 50
maps appearing in the following lines.
51 51
One of the maps must be called \c
... ...
@@ -65,5 +65,5 @@
65 65

	
66 66
The \c \@arcs section is very similar to the \c \@nodes section,
67
it again starts with a header line describing the names of the arc,
67
it again starts with a header line describing the names of the maps,
68 68
but the \c "label" map is not obligatory here. The following lines
69 69
describe the arcs. The first two tokens of each line are
Show white space 4 line context
... ...
@@ -19,5 +19,5 @@
19 19
///\ingroup lemon_io
20 20
///\file
21
///\brief Lemon Graph Format reader.
21
///\brief \ref lgf-format "Lemon Graph Format" reader.
22 22

	
23 23

	
... ...
@@ -401,5 +401,5 @@
401 401
  /// \ingroup lemon_io
402 402
  ///  
403
  /// \brief LGF reader for directed graphs
403
  /// \brief \ref lgf-format "LGF" reader for directed graphs
404 404
  ///
405 405
  /// This utility reads an \ref lgf-format "LGF" file.
... ...
@@ -411,7 +411,7 @@
411 411
  /// with the \c nodeMap() or \c arcMap() members. An optional
412 412
  /// converter parameter can also be added as a standard functor
413
  /// converting from std::string to the value type of the map. If it
413
  /// converting from \c std::string to the value type of the map. If it
414 414
  /// is set, it will determine how the tokens in the file should be
415
  /// is converted to the map's value type. If the functor is not set,
415
  /// converted to the value type of the map. If the functor is not set,
416 416
  /// then a default conversion will be used. One map can be read into
417 417
  /// multiple map objects at the same time. The \c attribute(), \c
... ...
@@ -438,12 +438,12 @@
438 438
  /// graph) during the reading, but instead the label map of the items
439 439
  /// are given as a parameter of these functions. An
440
  /// application of these function is multipass reading, which is
441
  /// important if two \e \@arcs sections must be read from the
442
  /// file. In this example the first phase would read the node set and one
440
  /// application of these functions is multipass reading, which is
441
  /// important if two \c \@arcs sections must be read from the
442
  /// file. In this case the first phase would read the node set and one
443 443
  /// of the arc sets, while the second phase would read the second arc
444 444
  /// set into an \e ArcSet class (\c SmartArcSet or \c ListArcSet).
445 445
  /// The previously read label node map should be passed to the \c
446 446
  /// useNodes() functions. Another application of multipass reading when
447
  /// paths are given as a node map or an arc map. It is impossible read this in
447
  /// paths are given as a node map or an arc map. It is impossible to read this in
448 448
  /// a single pass, because the arcs are not constructed when the node
449 449
  /// maps are read.
... ...
@@ -736,5 +736,5 @@
736 736
    /// Use previously constructed node set, and specify the node
737 737
    /// label map and a functor which converts the label map values to
738
    /// std::string.
738
    /// \c std::string.
739 739
    template <typename Map, typename Converter>
740 740
    DigraphReader& useNodes(const Map& map, 
... ...
@@ -769,5 +769,5 @@
769 769
    /// Use previously constructed arc set, and specify the arc
770 770
    /// label map and a functor which converts the label map values to
771
    /// std::string.
771
    /// \c std::string.
772 772
    template <typename Map, typename Converter>
773 773
    DigraphReader& useArcs(const Map& map, 
... ...
@@ -785,10 +785,9 @@
785 785
    ///
786 786
    /// Omit the reading of the node section. This implies that each node
787
    /// map reading rule will be abanoned, and the nodes of the graph
787
    /// map reading rule will be abandoned, and the nodes of the graph
788 788
    /// will not be constructed, which usually cause that the arc set
789
    /// could not be read due to lack of node name
790
    /// resolving. Therefore, the \c skipArcs() should be used too, or
791
    /// the useNodes() member function should be used to specify the
792
    /// label of the nodes.
789
    /// could not be read due to lack of node name resolving.
790
    /// Therefore \c skipArcs() function should also be used, or
791
    /// \c useNodes() should be used to specify the label of the nodes.
793 792
    DigraphReader& skipNodes() {
794 793
      LEMON_ASSERT(!_skip_nodes, "Skip nodes already set"); 
... ...
@@ -800,5 +799,5 @@
800 799
    ///
801 800
    /// Omit the reading of the arc section. This implies that each arc
802
    /// map reading rule will be abanoned, and the arcs of the graph
801
    /// map reading rule will be abandoned, and the arcs of the graph
803 802
    /// will not be constructed.
804 803
    DigraphReader& skipArcs() {
... ...
@@ -1176,4 +1175,7 @@
1176 1175
  };
1177 1176

	
1177
  /// \brief Return a \ref DigraphReader class
1178
  /// 
1179
  /// This function just returns a \ref DigraphReader class.
1178 1180
  /// \relates DigraphReader
1179 1181
  template <typename Digraph>
... ...
@@ -1183,4 +1185,7 @@
1183 1185
  }
1184 1186

	
1187
  /// \brief Return a \ref DigraphReader class
1188
  /// 
1189
  /// This function just returns a \ref DigraphReader class.
1185 1190
  /// \relates DigraphReader
1186 1191
  template <typename Digraph>
... ...
@@ -1191,4 +1196,7 @@
1191 1196
  }
1192 1197

	
1198
  /// \brief Return a \ref DigraphReader class
1199
  /// 
1200
  /// This function just returns a \ref DigraphReader class.
1193 1201
  /// \relates DigraphReader
1194 1202
  template <typename Digraph>
... ...
@@ -1212,7 +1220,11 @@
1212 1220
  /// \ingroup lemon_io
1213 1221
  ///  
1214
  /// \brief LGF reader for undirected graphs
1222
  /// \brief \ref lgf-format "LGF" reader for undirected graphs
1215 1223
  ///
1216 1224
  /// This utility reads an \ref lgf-format "LGF" file.
1225
  ///
1226
  /// It can be used almost the same way as \c DigraphReader.
1227
  /// The only difference is that this class can handle edges and
1228
  /// edge maps as well as arcs and arc maps.
1217 1229
  template <typename _Graph>
1218 1230
  class GraphReader {
... ...
@@ -1263,5 +1275,5 @@
1263 1275
    /// \brief Constructor
1264 1276
    ///
1265
    /// Construct a undirected graph reader, which reads from the given
1277
    /// Construct an undirected graph reader, which reads from the given
1266 1278
    /// input stream.
1267 1279
    GraphReader(std::istream& is, Graph& graph) 
... ...
@@ -1272,5 +1284,5 @@
1272 1284
    /// \brief Constructor
1273 1285
    ///
1274
    /// Construct a undirected graph reader, which reads from the given
1286
    /// Construct an undirected graph reader, which reads from the given
1275 1287
    /// file.
1276 1288
    GraphReader(const std::string& fn, Graph& graph) 
... ...
@@ -1281,5 +1293,5 @@
1281 1293
    /// \brief Constructor
1282 1294
    ///
1283
    /// Construct a undirected graph reader, which reads from the given
1295
    /// Construct an undirected graph reader, which reads from the given
1284 1296
    /// file.
1285 1297
    GraphReader(const char* fn, Graph& graph) 
... ...
@@ -1498,5 +1510,5 @@
1498 1510
    /// \brief Set \c \@nodes section to be read
1499 1511
    ///
1500
    /// Set \c \@nodes section to be read
1512
    /// Set \c \@nodes section to be read.
1501 1513
    GraphReader& nodes(const std::string& caption) {
1502 1514
      _nodes_caption = caption;
... ...
@@ -1506,5 +1518,5 @@
1506 1518
    /// \brief Set \c \@edges section to be read
1507 1519
    ///
1508
    /// Set \c \@edges section to be read
1520
    /// Set \c \@edges section to be read.
1509 1521
    GraphReader& edges(const std::string& caption) {
1510 1522
      _edges_caption = caption;
... ...
@@ -1514,5 +1526,5 @@
1514 1526
    /// \brief Set \c \@attributes section to be read
1515 1527
    ///
1516
    /// Set \c \@attributes section to be read
1528
    /// Set \c \@attributes section to be read.
1517 1529
    GraphReader& attributes(const std::string& caption) {
1518 1530
      _attributes_caption = caption;
... ...
@@ -1545,5 +1557,5 @@
1545 1557
    /// Use previously constructed node set, and specify the node
1546 1558
    /// label map and a functor which converts the label map values to
1547
    /// std::string.
1559
    /// \c std::string.
1548 1560
    template <typename Map, typename Converter>
1549 1561
    GraphReader& useNodes(const Map& map, 
... ...
@@ -1578,5 +1590,5 @@
1578 1590
    /// Use previously constructed edge set, and specify the edge
1579 1591
    /// label map and a functor which converts the label map values to
1580
    /// std::string.
1592
    /// \c std::string.
1581 1593
    template <typename Map, typename Converter>
1582 1594
    GraphReader& useEdges(const Map& map, 
... ...
@@ -1591,13 +1603,13 @@
1591 1603
    }
1592 1604

	
1593
    /// \brief Skips the reading of node section
1605
    /// \brief Skip the reading of node section
1594 1606
    ///
1595 1607
    /// Omit the reading of the node section. This implies that each node
1596
    /// map reading rule will be abanoned, and the nodes of the graph
1608
    /// map reading rule will be abandoned, and the nodes of the graph
1597 1609
    /// will not be constructed, which usually cause that the edge set
1598 1610
    /// could not be read due to lack of node name
1599
    /// resolving. Therefore, the \c skipEdges() should be used too, or
1600
    /// the useNodes() member function should be used to specify the
1601
    /// label of the nodes.
1611
    /// could not be read due to lack of node name resolving.
1612
    /// Therefore \c skipEdges() function should also be used, or
1613
    /// \c useNodes() should be used to specify the label of the nodes.
1602 1614
    GraphReader& skipNodes() {
1603 1615
      LEMON_ASSERT(!_skip_nodes, "Skip nodes already set"); 
... ...
@@ -1606,8 +1618,8 @@
1606 1618
    }
1607 1619

	
1608
    /// \brief Skips the reading of edge section
1620
    /// \brief Skip the reading of edge section
1609 1621
    ///
1610 1622
    /// Omit the reading of the edge section. This implies that each edge
1611
    /// map reading rule will be abanoned, and the edges of the graph
1623
    /// map reading rule will be abandoned, and the edges of the graph
1612 1624
    /// will not be constructed.
1613 1625
    GraphReader& skipEdges() {
... ...
@@ -1983,4 +1995,7 @@
1983 1995
  };
1984 1996

	
1997
  /// \brief Return a \ref GraphReader class
1998
  /// 
1999
  /// This function just returns a \ref GraphReader class.
1985 2000
  /// \relates GraphReader
1986 2001
  template <typename Graph>
... ...
@@ -1990,4 +2005,7 @@
1990 2005
  }
1991 2006

	
2007
  /// \brief Return a \ref GraphReader class
2008
  /// 
2009
  /// This function just returns a \ref GraphReader class.
1992 2010
  /// \relates GraphReader
1993 2011
  template <typename Graph>
... ...
@@ -1998,4 +2016,7 @@
1998 2016
  }
1999 2017

	
2018
  /// \brief Return a \ref GraphReader class
2019
  /// 
2020
  /// This function just returns a \ref GraphReader class.
2000 2021
  /// \relates GraphReader
2001 2022
  template <typename Graph>
... ...
@@ -2011,11 +2032,13 @@
2011 2032
  SectionReader sectionReader(const char* fn);
2012 2033
  
2034
  /// \ingroup lemon_io
2035
  ///
2013 2036
  /// \brief Section reader class
2014 2037
  ///
2015
  /// In the \e LGF file extra sections can be placed, which contain
2016
  /// any data in arbitrary format. Such sections can be read with
2017
  /// this class. A reading rule can be added with two different
2018
  /// functions, with the \c sectionLines() function a functor can
2019
  /// process the section line-by-line. While with the \c
2038
  /// In the \ref lgf-format "LGF" file extra sections can be placed, 
2039
  /// which contain any data in arbitrary format. Such sections can be
2040
  /// read with this class. A reading rule can be added to the class 
2041
  /// with two different functions. With the \c sectionLines() function a
2042
  /// functor can process the section line-by-line, while with the \c
2020 2043
  /// sectionStream() member the section can be read from an input
2021 2044
  /// stream.
... ...
@@ -2106,5 +2129,5 @@
2106 2129
    ///\endcode
2107 2130
    ///
2108
    /// The functor is implemented as an struct:
2131
    /// The functor is implemented as a struct:
2109 2132
    ///\code
2110 2133
    ///  struct NumberSection {
... ...
@@ -2124,5 +2147,5 @@
2124 2147
    template <typename Functor>
2125 2148
    SectionReader& sectionLines(const std::string& type, Functor functor) {
2126
      LEMON_ASSERT(!type.empty(), "Type is not empty.");
2149
      LEMON_ASSERT(!type.empty(), "Type is empty.");
2127 2150
      LEMON_ASSERT(_sections.find(type) == _sections.end(), 
2128 2151
		   "Multiple reading of section.");
... ...
@@ -2136,5 +2159,5 @@
2136 2159
    ///
2137 2160
    /// The first parameter is the type of the section, the second is
2138
    /// a functor, which takes an \c std::istream& and an int&
2161
    /// a functor, which takes an \c std::istream& and an \c int&
2139 2162
    /// parameter, the latter regard to the line number of stream. The
2140 2163
    /// functor can read the input while the section go on, and the
... ...
@@ -2142,5 +2165,5 @@
2142 2165
    template <typename Functor>
2143 2166
    SectionReader& sectionStream(const std::string& type, Functor functor) {
2144
      LEMON_ASSERT(!type.empty(), "Type is not empty.");
2167
      LEMON_ASSERT(!type.empty(), "Type is empty.");
2145 2168
      LEMON_ASSERT(_sections.find(type) == _sections.end(), 
2146 2169
		   "Multiple reading of section.");
... ...
@@ -2187,5 +2210,5 @@
2187 2210
    /// \brief Start the batch processing
2188 2211
    ///
2189
    /// This function starts the batch processing
2212
    /// This function starts the batch processing.
2190 2213
    void run() {
2191 2214
      
... ...
@@ -2240,4 +2263,7 @@
2240 2263
  };
2241 2264

	
2265
  /// \brief Return a \ref SectionReader class
2266
  /// 
2267
  /// This function just returns a \ref SectionReader class.
2242 2268
  /// \relates SectionReader
2243 2269
  inline SectionReader sectionReader(std::istream& is) {
... ...
@@ -2246,4 +2272,7 @@
2246 2272
  }
2247 2273

	
2274
  /// \brief Return a \ref SectionReader class
2275
  /// 
2276
  /// This function just returns a \ref SectionReader class.
2248 2277
  /// \relates SectionReader
2249 2278
  inline SectionReader sectionReader(const std::string& fn) {
... ...
@@ -2252,4 +2281,7 @@
2252 2281
  }
2253 2282

	
2283
  /// \brief Return a \ref SectionReader class
2284
  /// 
2285
  /// This function just returns a \ref SectionReader class.
2254 2286
  /// \relates SectionReader
2255 2287
  inline SectionReader sectionReader(const char* fn) {
... ...
@@ -2270,10 +2302,11 @@
2270 2302
  /// reading the graph.
2271 2303
  ///
2272
  ///\code LgfContents contents("graph.lgf"); 
2304
  ///\code 
2305
  /// LgfContents contents("graph.lgf"); 
2273 2306
  /// contents.run();
2274 2307
  ///
2275
  /// // does it contain any node section and arc section
2308
  /// // Does it contain any node section and arc section?
2276 2309
  /// if (contents.nodeSectionNum() == 0 || contents.arcSectionNum()) {
2277
  ///   std::cerr << "Failure, cannot find graph" << std::endl;
2310
  ///   std::cerr << "Failure, cannot find graph." << std::endl;
2278 2311
  ///   return -1;
2279 2312
  /// }
... ...
@@ -2353,7 +2386,7 @@
2353 2386
    }
2354 2387

	
2355
    /// \brief Returns the section name at the given position. 
2388
    /// \brief Returns the node section name at the given position. 
2356 2389
    ///
2357
    /// Returns the section name at the given position. 
2390
    /// Returns the node section name at the given position. 
2358 2391
    const std::string& nodeSection(int i) const {
2359 2392
      return _node_sections[i];
... ...
@@ -2380,7 +2413,7 @@
2380 2413
    }
2381 2414

	
2382
    /// \brief Returns the section name at the given position. 
2415
    /// \brief Returns the arc/edge section name at the given position. 
2383 2416
    ///
2384
    /// Returns the section name at the given position. 
2417
    /// Returns the arc/edge section name at the given position. 
2385 2418
    /// \note It is synonym of \c edgeSection().
2386 2419
    const std::string& arcSection(int i) const {
... ...
@@ -2437,7 +2470,7 @@
2437 2470
    }
2438 2471

	
2439
    /// \brief Returns the section name at the given position. 
2472
    /// \brief Returns the attribute section name at the given position. 
2440 2473
    ///
2441
    /// Returns the section name at the given position. 
2474
    /// Returns the attribute section name at the given position. 
2442 2475
    const std::string& attributeSectionNames(int i) const {
2443 2476
      return _attribute_sections[i];
... ...
@@ -2530,7 +2563,7 @@
2530 2563
    /// @{
2531 2564

	
2532
    /// \brief Start the reading
2565
    /// \brief Starts the reading
2533 2566
    ///
2534
    /// This function starts the reading
2567
    /// This function starts the reading.
2535 2568
    void run() {
2536 2569

	
Show white space 4 line context
... ...
@@ -19,5 +19,5 @@
19 19
///\ingroup lemon_io
20 20
///\file
21
///\brief Lemon Graph Format writer.
21
///\brief \ref lgf-format "Lemon Graph Format" writer.
22 22

	
23 23

	
... ...
@@ -323,5 +323,5 @@
323 323
  /// \ingroup lemon_io
324 324
  ///  
325
  /// \brief LGF writer for directed graphs
325
  /// \brief \ref lgf-format "LGF" writer for directed graphs
326 326
  ///
327 327
  /// This utility writes an \ref lgf-format "LGF" file.
... ...
@@ -333,6 +333,6 @@
333 333
  /// with the \c nodeMap() or \c arcMap() members. An optional
334 334
  /// converter parameter can also be added as a standard functor
335
  /// converting from the value type of the map to std::string. If it
336
  /// is set, it will determine how the map's value type is written to
335
  /// converting from the value type of the map to \c std::string. If it
336
  /// is set, it will determine how the value type of the map is written to
337 337
  /// the output stream. If the functor is not set, then a default
338 338
  /// conversion will be used. The \c attribute(), \c node() and \c
... ...
@@ -487,7 +487,7 @@
487 487
    /// @{
488 488
    
489
    /// \brief Node map reading rule
489
    /// \brief Node map writing rule
490 490
    ///
491
    /// Add a node map reading rule to the writer.
491
    /// Add a node map writing rule to the writer.
492 492
    template <typename Map>
493 493
    DigraphWriter& nodeMap(const std::string& caption, const Map& map) {
... ...
@@ -587,10 +587,10 @@
587 587
    }
588 588

	
589
    /// \name Select section by name
589
    /// \name Section captions
590 590
    /// @{
591 591

	
592
    /// \brief Set \c \@nodes section to be read
592
    /// \brief Add an additional caption to the \c \@nodes section
593 593
    ///
594
    /// Set \c \@nodes section to be read
594
    /// Add an additional caption to the \c \@nodes section.
595 595
    DigraphWriter& nodes(const std::string& caption) {
596 596
      _nodes_caption = caption;
... ...
@@ -598,7 +598,7 @@
598 598
    }
599 599

	
600
    /// \brief Set \c \@arcs section to be read
600
    /// \brief Add an additional caption to the \c \@arcs section
601 601
    ///
602
    /// Set \c \@arcs section to be read
602
    /// Add an additional caption to the \c \@arcs section.
603 603
    DigraphWriter& arcs(const std::string& caption) {
604 604
      _arcs_caption = caption;
... ...
@@ -606,7 +606,7 @@
606 606
    }
607 607

	
608
    /// \brief Set \c \@attributes section to be read
608
    /// \brief Add an additional caption to the \c \@attributes section
609 609
    ///
610
    /// Set \c \@attributes section to be read
610
    /// Add an additional caption to the \c \@attributes section.
611 611
    DigraphWriter& attributes(const std::string& caption) {
612 612
      _attributes_caption = caption;
... ...
@@ -619,5 +619,5 @@
619 619
    /// \brief Skip writing the node set
620 620
    ///
621
    /// The \c \@nodes section will be not written to the stream.
621
    /// The \c \@nodes section will not be written to the stream.
622 622
    DigraphWriter& skipNodes() {
623 623
      LEMON_ASSERT(!_skip_nodes, "Multiple usage of skipNodes() member");
... ...
@@ -628,5 +628,5 @@
628 628
    /// \brief Skip writing arc set
629 629
    ///
630
    /// The \c \@arcs section will be not written to the stream.
630
    /// The \c \@arcs section will not be written to the stream.
631 631
    DigraphWriter& skipArcs() {
632 632
      LEMON_ASSERT(!_skip_arcs, "Multiple usage of skipArcs() member");
... ...
@@ -836,5 +836,5 @@
836 836
    /// \brief Start the batch processing
837 837
    ///
838
    /// This function starts the batch processing
838
    /// This function starts the batch processing.
839 839
    void run() {
840 840
      if (!_skip_nodes) {
... ...
@@ -851,7 +851,7 @@
851 851
    }
852 852

	
853
    /// \brief Gives back the stream of the writer
853
    /// \brief Give back the stream of the writer
854 854
    ///
855
    /// Gives back the stream of the writer
855
    /// Give back the stream of the writer.
856 856
    std::ostream& ostream() {
857 857
      return *_os;
... ...
@@ -861,4 +861,7 @@
861 861
  };
862 862

	
863
  /// \brief Return a \ref DigraphWriter class
864
  /// 
865
  /// This function just returns a \ref DigraphWriter class.
863 866
  /// \relates DigraphWriter
864 867
  template <typename Digraph>
... ...
@@ -869,4 +872,7 @@
869 872
  }
870 873

	
874
  /// \brief Return a \ref DigraphWriter class
875
  /// 
876
  /// This function just returns a \ref DigraphWriter class.
871 877
  /// \relates DigraphWriter
872 878
  template <typename Digraph>
... ...
@@ -877,4 +883,7 @@
877 883
  }
878 884

	
885
  /// \brief Return a \ref DigraphWriter class
886
  /// 
887
  /// This function just returns a \ref DigraphWriter class.
879 888
  /// \relates DigraphWriter
880 889
  template <typename Digraph>
... ...
@@ -899,7 +908,11 @@
899 908
  /// \ingroup lemon_io
900 909
  ///  
901
  /// \brief LGF writer for directed graphs
910
  /// \brief \ref lgf-format "LGF" writer for directed graphs
902 911
  ///
903 912
  /// This utility writes an \ref lgf-format "LGF" file.
913
  ///
914
  /// It can be used almost the same way as \c DigraphWriter.
915
  /// The only difference is that this class can handle edges and
916
  /// edge maps as well as arcs and arc maps.
904 917
  template <typename _Graph>
905 918
  class GraphWriter {
... ...
@@ -1024,7 +1037,7 @@
1024 1037
    /// @{
1025 1038
    
1026
    /// \brief Node map reading rule
1039
    /// \brief Node map writing rule
1027 1040
    ///
1028
    /// Add a node map reading rule to the writer.
1041
    /// Add a node map writing rule to the writer.
1029 1042
    template <typename Map>
1030 1043
    GraphWriter& nodeMap(const std::string& caption, const Map& map) {
... ...
@@ -1170,10 +1183,10 @@
1170 1183
    }
1171 1184

	
1172
    /// \name Select section by name
1185
    /// \name Section captions
1173 1186
    /// @{
1174 1187

	
1175
    /// \brief Set \c \@nodes section to be read
1188
    /// \brief Add an additional caption to the \c \@nodes section
1176 1189
    ///
1177
    /// Set \c \@nodes section to be read
1190
    /// Add an additional caption to the \c \@nodes section.
1178 1191
    GraphWriter& nodes(const std::string& caption) {
1179 1192
      _nodes_caption = caption;
... ...
@@ -1181,7 +1194,7 @@
1181 1194
    }
1182 1195

	
1183
    /// \brief Set \c \@edges section to be read
1196
    /// \brief Add an additional caption to the \c \@arcs section
1184 1197
    ///
1185
    /// Set \c \@edges section to be read
1198
    /// Add an additional caption to the \c \@arcs section.
1186 1199
    GraphWriter& edges(const std::string& caption) {
1187 1200
      _edges_caption = caption;
... ...
@@ -1189,7 +1202,7 @@
1189 1202
    }
1190 1203

	
1191
    /// \brief Set \c \@attributes section to be read
1204
    /// \brief Add an additional caption to the \c \@attributes section
1192 1205
    ///
1193
    /// Set \c \@attributes section to be read
1206
    /// Add an additional caption to the \c \@attributes section.
1194 1207
    GraphWriter& attributes(const std::string& caption) {
1195 1208
      _attributes_caption = caption;
... ...
@@ -1202,5 +1215,5 @@
1202 1215
    /// \brief Skip writing the node set
1203 1216
    ///
1204
    /// The \c \@nodes section will be not written to the stream.
1217
    /// The \c \@nodes section will not be written to the stream.
1205 1218
    GraphWriter& skipNodes() {
1206 1219
      LEMON_ASSERT(!_skip_nodes, "Multiple usage of skipNodes() member");
... ...
@@ -1211,5 +1224,5 @@
1211 1224
    /// \brief Skip writing edge set
1212 1225
    ///
1213
    /// The \c \@edges section will be not written to the stream.
1226
    /// The \c \@edges section will not be written to the stream.
1214 1227
    GraphWriter& skipEdges() {
1215 1228
      LEMON_ASSERT(!_skip_edges, "Multiple usage of skipEdges() member");
... ...
@@ -1419,5 +1432,5 @@
1419 1432
    /// \brief Start the batch processing
1420 1433
    ///
1421
    /// This function starts the batch processing
1434
    /// This function starts the batch processing.
1422 1435
    void run() {
1423 1436
      if (!_skip_nodes) {
... ...
@@ -1434,7 +1447,7 @@
1434 1447
    }
1435 1448

	
1436
    /// \brief Gives back the stream of the writer
1449
    /// \brief Give back the stream of the writer
1437 1450
    ///
1438
    /// Gives back the stream of the writer
1451
    /// Give back the stream of the writer
1439 1452
    std::ostream& ostream() {
1440 1453
      return *_os;
... ...
@@ -1444,4 +1457,7 @@
1444 1457
  };
1445 1458

	
1459
  /// \brief Return a \ref GraphWriter class
1460
  /// 
1461
  /// This function just returns a \ref GraphWriter class.
1446 1462
  /// \relates GraphWriter
1447 1463
  template <typename Graph>
... ...
@@ -1451,4 +1467,7 @@
1451 1467
  }
1452 1468

	
1469
  /// \brief Return a \ref GraphWriter class
1470
  /// 
1471
  /// This function just returns a \ref GraphWriter class.
1453 1472
  /// \relates GraphWriter
1454 1473
  template <typename Graph>
... ...
@@ -1458,4 +1477,7 @@
1458 1477
  }
1459 1478

	
1479
  /// \brief Return a \ref GraphWriter class
1480
  /// 
1481
  /// This function just returns a \ref GraphWriter class.
1460 1482
  /// \relates GraphWriter
1461 1483
  template <typename Graph>
0 comments (0 inline)