3m/ModList.h

57 lines
2.5 KiB
C++

#ifndef _MODLIST_H
#define _MODLIST_H
#include "ModListDescription.h"
#include "ModInfoDescription.h"
#include "ModInfo.h"
#include <string>
#include <vector>
/// \file ModList.h
/// \brief A class representing a modlist.
/// \author Phitherek_
/// \date 2013
/// \version 0.1-pre
/// \namespace mmm
/// \brief A global namespace for 3m.
namespace mmm {
/// \class ModList
/// \brief A class representing a modlist.
class ModList {
private:
ModListDescription _desc;
std::vector<ModInfo> _modinfos;
bool _edit;
std::string _localPath;
int _modinfosIterator;
bool _modinfosAtEnd;
public:
ModList(); ///< A constructor.
ModList(ModListDescription mld); ///< \brief A constructor from ModListDescription.
///< It tries to download and parse the remote modlist file and the modinfos. It throws ParseException or one of NetSocket++ exceptions.
///< \param mld A ModListDescription object.
ModList(std::string path); ///< \brief A constructor from std::string.
///< It tries to open and parse locally stored modlist file. It throws FileException or ParseException.
~ModList(); ///< A destructor.
ModInfo getNextModInfo(); ///< \brief A function that returns next ModInfo from the modlist.
///< It throws ParseException or one of NetSocket++ exceptions.
///< \return Next ModInfo from the modlist or empty ModInfo object if at the end of modlist.
ModInfo getModInfoByName(std::string name); ///< \brief A function that searches for modinfo name and returns its ModInfo.
///< \param name Modinfo name.
///< \return ModInfo or empty ModInfo object on failure.
void insertModInfoDescription(ModInfoDescription mid); ///< \brief A function that inserts a ModInfoDescription to the modlist.
///< \param mid A ModInfoDescription to be inserted.
void deleteModInfo(std::string name); ///< \brief A function that deletes ModInfo of given name from the modlist.
///< \param name Modinfo name.
void resetModInfoIterator(); ///< A function that resets modlist iterator.
bool modinfosEnd(); ///< \brief A function, that returns if modlist iterator reached its end.
///< \return True if modlist iterator reached its end, false otherwise.
void write(); ///< A function that writes modlist to local file.
void clear(); ///< A function that clears the object.
ModListDescription getModListDescription(); ///< \brief A function that gets a ModListDescription object.
///< \return A ModListDescription object.
void setPath(std::string path); ///< \brief A function that sets path to local modlist file.
///< \param path A path to local modlist file.
};
}
#endif