/// \brief A class representing a local repository info file.
/// \author Phitherek_
/// \date 2013
/// \version 0.1-pre
/// \namespace mmm
/// \brief A global namespace for 3m.
namespacemmm{
/// \class RepositoryInfo
/// \brief A class representing a local repository info file.
classRepositoryInfo{
private:
ConfigFile_conf;
std::vector<RepositoryModDescription>_repoinfo;
int_repoinfoIterator;
bool_repoinfoAtEnd;
public:
RepositoryInfo();///< A constructor.
RepositoryInfo(ConfigFileconf);///< \brief A constructor with parameter.
///< Tries to open and parse local repository info file from given ConfigFile.
///< \param conf A ConfigFile object.
~RepositoryInfo();///< A destructor.
RepositoryModDescriptiongetNextModDescription();///< \brief A function that returns next RepositoryModDescription from the list.
///< \return Next RepositoryModDescription from the list or empty RepositoryModDescription object if at end.
RepositoryModDescriptiongetModDescriptionByName(std::stringname);///< \brief A function that searches for a mod name and returns its RepositoryModDescription.
///< \param name A mod name.
///< \return A RepositoryModDescription of the mod or empty RepositoryModDescription object on failure.
voidinsertModDescription(RepositoryModDescriptionrmd);///< \brief A function that inserts a RepositoryModDescription to the repository info file.
///< \param rmd A RepositoryModDescription to insert.
voiddeleteModDescription(std::stringname);///< \brief A function that removes a RepositoryModDescription from local repository info file.
///< \param name A name of a mod to be removed.
voidresetModDescriptionIterator();///< A function that resets repository info iterator.
boolmodDescriptionsAtEnd();///< \brief A function that returns if repository info iterator is at its end.
///< \return True if iterator is at end, false otherwise.
voidsetConfigFile(ConfigFileconf);///< \brief A function that sets ConfigFile in the object.
///< \param conf A ConfigFile object.
voidwrite();///< A function that writes back the repository info file.