This class can be used to read the sections, the map names and the attributes from a file. Usually, the LEMON programs know that, which type of graph, which maps and which attributes should be read from a file, but in general tools (like glemon) the contents of an LGF file should be guessed somehow. This class reads the graph and stores the appropriate information for reading the graph.
LgfContents contents("graph.lgf"); contents.run(); // Does it contain any node section and arc section? if (contents.nodeSectionNum() == 0 || contents.arcSectionNum()) { std::cerr << "Failure, cannot find graph." << std::endl; return -1; } std::cout << "The name of the default node section: " << contents.nodeSection(0) << std::endl; std::cout << "The number of the arc maps: " << contents.arcMaps(0).size() << std::endl; std::cout << "The name of second arc map: " << contents.arcMaps(0)[1] << std::endl;
#include <lemon/lgf_reader.h>
Public Member Functions | |
LgfContents (std::istream &is) | |
Constructor. | |
LgfContents (const std::string &fn) | |
Constructor. | |
LgfContents (const char *fn) | |
Constructor. | |
~LgfContents () | |
Destructor. | |
Node Sections | |
int | nodeSectionNum () const |
const std::string & | nodeSection (int i) const |
const std::vector< std::string > & | nodeMapNames (int i) const |
Arc/Edge Sections | |
int | arcSectionNum () const |
Gives back the number of arc/edge sections in the file. | |
const std::string & | arcSection (int i) const |
Returns the arc/edge section name at the given position. | |
const std::vector< std::string > & | arcMapNames (int i) const |
Gives back the arc/edge maps for the given section. | |
Synonyms | |
int | edgeSectionNum () const |
Gives back the number of arc/edge sections in the file. | |
const std::string & | edgeSection (int i) const |
Returns the section name at the given position. | |
const std::vector< std::string > & | edgeMapNames (int i) const |
Gives back the edge maps for the given section. | |
Attribute Sections | |
int | attributeSectionNum () const |
const std::string & | attributeSectionNames (int i) const |
const std::vector< std::string > & | attributes (int i) const |
Extra Sections | |
int | extraSectionNum () const |
const std::string & | extraSection (int i) const |
Returns the extra section type at the given position. | |
Execution of the Contents Reader | |
void | run () |
Starts the reading. |
LgfContents | ( | std::istream & | is | ) | [inline] |
Construct an LGF contents reader, which reads from the given input stream.
LgfContents | ( | const std::string & | fn | ) | [inline] |
Construct an LGF contents reader, which reads from the given file.
LgfContents | ( | const char * | fn | ) | [inline] |
Construct an LGF contents reader, which reads from the given file.
int nodeSectionNum | ( | ) | const [inline] |
Gives back the number of node sections in the file.
const std::string& nodeSection | ( | int | i | ) | const [inline] |
Returns the node section name at the given position.
const std::vector<std::string>& nodeMapNames | ( | int | i | ) | const [inline] |
Gives back the node maps for the given section.
int arcSectionNum | ( | ) | const [inline] |
Gives back the number of arc/edge sections in the file.
edgeSectionNum()
. const std::string& arcSection | ( | int | i | ) | const [inline] |
Returns the arc/edge section name at the given position.
edgeSection()
. const std::vector<std::string>& arcMapNames | ( | int | i | ) | const [inline] |
Gives back the arc/edge maps for the given section.
edgeMapNames()
. int edgeSectionNum | ( | ) | const [inline] |
Gives back the number of arc/edge sections in the file.
arcSectionNum()
. const std::string& edgeSection | ( | int | i | ) | const [inline] |
Returns the section name at the given position.
arcSection()
. const std::vector<std::string>& edgeMapNames | ( | int | i | ) | const [inline] |
Gives back the edge maps for the given section.
arcMapNames()
. int attributeSectionNum | ( | ) | const [inline] |
Gives back the number of attribute sections in the file.
const std::string& attributeSectionNames | ( | int | i | ) | const [inline] |
Returns the attribute section name at the given position.
const std::vector<std::string>& attributes | ( | int | i | ) | const [inline] |
Gives back the attributes for the given section.
int extraSectionNum | ( | ) | const [inline] |
Gives back the number of extra sections in the file.
const std::string& extraSection | ( | int | i | ) | const [inline] |
Returns the section type at the given position.
void run | ( | ) | [inline] |
This function starts the reading.