... | ... |
@@ -2067,38 +2067,38 @@ |
2067 | 2067 |
GraphReader<Graph> tmp(fn, graph); |
2068 | 2068 |
return tmp; |
2069 | 2069 |
} |
2070 | 2070 |
|
2071 | 2071 |
/// \ingroup lemon_io |
2072 | 2072 |
/// |
2073 |
/// \brief Reader for the |
|
2073 |
/// \brief Reader for the contents of the \ref lgf-format "LGF" file |
|
2074 | 2074 |
/// |
2075 | 2075 |
/// This class can be used to read the sections, the map names and |
2076 | 2076 |
/// the attributes from a file. Usually, the Lemon programs know |
2077 | 2077 |
/// that, which type of graph, which maps and which attributes |
2078 | 2078 |
/// should be read from a file, but in general tools (like glemon) |
2079 |
/// the |
|
2079 |
/// the contents of an LGF file should be guessed somehow. This class |
|
2080 | 2080 |
/// reads the graph and stores the appropriate information for |
2081 | 2081 |
/// reading the graph. |
2082 | 2082 |
/// |
2083 |
///\code LgfContent content("graph.lgf"); |
|
2084 |
/// content.run(); |
|
2083 |
///\code LgfContents contents("graph.lgf"); |
|
2084 |
/// contents.run(); |
|
2085 | 2085 |
/// |
2086 | 2086 |
/// // does it contain any node section and arc section |
2087 |
/// if ( |
|
2087 |
/// if (contents.nodeSectionNum() == 0 || contents.arcSectionNum()) { |
|
2088 | 2088 |
/// std::cerr << "Failure, cannot find graph" << std::endl; |
2089 | 2089 |
/// return -1; |
2090 | 2090 |
/// } |
2091 | 2091 |
/// std::cout << "The name of the default node section : " |
2092 |
/// << |
|
2092 |
/// << contents.nodeSection(0) << std::endl; |
|
2093 | 2093 |
/// std::cout << "The number of the arc maps : " |
2094 |
/// << |
|
2094 |
/// << contents.arcMaps(0).size() << std::endl; |
|
2095 | 2095 |
/// std::cout << "The name of second arc map : " |
2096 |
/// << |
|
2096 |
/// << contents.arcMaps(0)[1] << std::endl; |
|
2097 | 2097 |
///\endcode |
2098 |
class |
|
2098 |
class LgfContents { |
|
2099 | 2099 |
private: |
2100 | 2100 |
|
2101 | 2101 |
std::istream* _is; |
2102 | 2102 |
bool local_is; |
2103 | 2103 |
|
2104 | 2104 |
std::vector<std::string> _node_sections; |
... | ... |
@@ -2118,36 +2118,36 @@ |
2118 | 2118 |
std::istringstream line; |
2119 | 2119 |
|
2120 | 2120 |
public: |
2121 | 2121 |
|
2122 | 2122 |
/// \brief Constructor |
2123 | 2123 |
/// |
2124 |
/// Construct an \e LGF |
|
2124 |
/// Construct an \e LGF contents reader, which reads from the given |
|
2125 | 2125 |
/// input stream. |
2126 |
|
|
2126 |
LgfContents(std::istream& is) |
|
2127 | 2127 |
: _is(&is), local_is(false) {} |
2128 | 2128 |
|
2129 | 2129 |
/// \brief Constructor |
2130 | 2130 |
/// |
2131 |
/// Construct an \e LGF |
|
2131 |
/// Construct an \e LGF contents reader, which reads from the given |
|
2132 | 2132 |
/// file. |
2133 |
|
|
2133 |
LgfContents(const std::string& fn) |
|
2134 | 2134 |
: _is(new std::ifstream(fn.c_str())), local_is(true) {} |
2135 | 2135 |
|
2136 | 2136 |
/// \brief Constructor |
2137 | 2137 |
/// |
2138 |
/// Construct an \e LGF |
|
2138 |
/// Construct an \e LGF contents reader, which reads from the given |
|
2139 | 2139 |
/// file. |
2140 |
|
|
2140 |
LgfContents(const char* fn) |
|
2141 | 2141 |
: _is(new std::ifstream(fn)), local_is(true) {} |
2142 | 2142 |
|
2143 | 2143 |
/// \brief Copy constructor |
2144 | 2144 |
/// |
2145 | 2145 |
/// The copy constructor transfers all data from the other reader, |
2146 | 2146 |
/// therefore the copied reader will not be usable more. |
2147 |
|
|
2147 |
LgfContents(LgfContents& other) |
|
2148 | 2148 |
: _is(other._is), local_is(other.local_is) { |
2149 | 2149 |
|
2150 | 2150 |
other._is = 0; |
2151 | 2151 |
other.local_is = false; |
2152 | 2152 |
|
2153 | 2153 |
_node_sections.swap(other._node_sections); |
... | ... |
@@ -2160,13 +2160,13 @@ |
2160 | 2160 |
_node_maps.swap(other._node_maps); |
2161 | 2161 |
_edge_maps.swap(other._edge_maps); |
2162 | 2162 |
_attributes.swap(other._attributes); |
2163 | 2163 |
} |
2164 | 2164 |
|
2165 | 2165 |
/// \brief Destructor |
2166 |
~ |
|
2166 |
~LgfContents() { |
|
2167 | 2167 |
if (local_is) delete _is; |
2168 | 2168 |
} |
2169 | 2169 |
|
2170 | 2170 |
|
2171 | 2171 |
/// \name Node sections |
2172 | 2172 |
/// @{ |
... | ... |
@@ -2356,13 +2356,13 @@ |
2356 | 2356 |
} |
2357 | 2357 |
line.putback(c); |
2358 | 2358 |
} |
2359 | 2359 |
|
2360 | 2360 |
public: |
2361 | 2361 |
|
2362 |
/// \name Execution of the |
|
2362 |
/// \name Execution of the contents reader |
|
2363 | 2363 |
/// @{ |
2364 | 2364 |
|
2365 | 2365 |
/// \brief Start the reading |
2366 | 2366 |
/// |
2367 | 2367 |
/// This function starts the reading |
2368 | 2368 |
void run() { |
0 comments (0 inline)