Page principale | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

IniSection.h

Aller à la documentation de ce fichier.
00001 /*! \file IniSection.h
00002     \brief Gestion de fichier ini.
00003 
00004     Gestion d'une section dans \a Ini.
00005 
00006     \author     aerith (http://aerith.fr)
00007     \version    1.0
00008     \date       01/07/2008
00009 */
00010 
00011 #ifndef INCLUDE_RSRC_INI_SECTION
00012 #define INCLUDE_RSRC_INI_SECTION
00013 
00014 #include    "../Error/Error.h"
00015 #include    "IniItem.h"
00016 #include    <vector>
00017 #include    <string>
00018 
00019 using namespace std;
00020 
00021 
00022 //! Gestion d'une section.
00023 /*! Gestion d'une section dans \a Ini.
00024 */
00025 class IniSection
00026 {
00027 private :
00028     string                  name;       /*!< Nom de la section.                                     */
00029     std::vector<IniItem *>  items;      /*!< Chaque ligne est un item.                              */
00030     IniItem                 *itemVide;  /*!< Item vide pour évité les segfault.                     */
00031 
00032 public  :
00033     /*! Initialise avec des parametres par defaut.
00034         \param pName nom de l'item
00035     */
00036     IniSection(const char *pName);
00037 
00038     /*! Libere proprement la mémoire.
00039     */
00040     ~IniSection();
00041 
00042     //! Ajoute un item.
00043     /*! Ajoute un item avec comme nom \a pName.
00044         \sa DelItem(), GetItem() et GetNbItem().
00045     */
00046     void    AddItem(const char *pName);
00047 
00048     //! Supprime un item.
00049     /*! Supprime l'item étant à la position \a iPos.
00050         \param iPos position de l'item.
00051         \sa AddItem(), GetItem() et GetNbItem().
00052     */
00053     void    DelItem(unsigned int iPos);
00054 
00055     //! Supprime un item.
00056     /*! Supprime l'item de nom \a pName.
00057         \param pName nom de l'item.
00058         \sa AddItem(), GetItem() et GetNbItem().
00059     */
00060     void    DelItem(const char *pName);
00061 
00062     //! Retourne un item par sa position.
00063     /*! Permet l'acces à l'item étant à la position \a iPos.
00064         \param iPos  position de l'item.
00065         \return pointeur sur la classe de l'item.
00066         \sa AddItem(), DelItem() et GetNbItem().
00067     */
00068     IniItem *GetItem(unsigned int iPos);
00069 
00070     //! Retourne le dernier item.
00071     /*! Permet l'acces au dernier item ajouter.
00072         \return pointeur sur la classe de l'item.
00073         \sa AddItem(), DelItem() et GetNbItem().
00074     */
00075     IniItem *GetItem();
00076 
00077     //! Retourne un item par son nom.
00078     /*! Permet l'acces à l'item ayant le nom \a pName.
00079         \param pName nom de l'item.
00080         \param iOcur numéro de l'occurence si plusieur item on le même nom.
00081         \return pointeur sur la class de l'item.
00082         \sa AddItem(), DelItem() et GetNbItem().
00083     */
00084     IniItem *GetItem(const char *pName, unsigned int iOcur = 0);
00085 
00086     //! Retourne le nom d'un item.
00087     /*! Retourne le nom de l'item étant à la position \a iPos.
00088         \param iPos  position de l'item.
00089         \return nom de l'item.
00090     */
00091     const char  *GetItemName(unsigned int iPos);
00092 
00093     //! Retourne le nombre d'item.
00094     /*! Retourne le nombre d'item contenu dans la section.
00095         \return nombre d'item dans la section.
00096         \sa AddItem(), DelItem() et GetItem().
00097     */
00098     inline unsigned int     GetNbItem()
00099     {
00100         return items.size();
00101     };
00102 
00103     //! Retourne le nombre d'item.
00104     /*! Retourne le nombre d'item se nomant \a pName contenu dans la section.
00105         \param pName nom de l'item.
00106         \return nombre d'item dans la section.
00107         \sa AddItem(), DelItem() et GetItem().
00108     */
00109     unsigned int    GetNbItem(const char *pName);
00110 
00111     //! Retourne le nom de la section.
00112     /*! Retourne le nom le nom de la section \a Name.
00113         \return un pointeur sur le nom de la section \a Name.
00114         \sa SetName().
00115     */
00116     inline const char   *GetName()
00117     {
00118         return name.data();
00119     };
00120 
00121     //! Définie le nom de la section.
00122     /*! Définie le nom de la section \a name.
00123         \param pName nom de la section.
00124         \return un pointeur sur le nom de la section \a name.
00125         \sa GetName().
00126     */
00127     inline const char   *SetName(const char *pName)
00128     {
00129         name = pName;
00130         return name.data();
00131     };
00132 };
00133 
00134 
00135 #endif
00136 

Généré le Thu Jun 12 09:12:29 2008 pour A.I.F. par  doxygen 1.3.9.1