Page principale | Hiérarchie des classes | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

XML.cpp

Aller à la documentation de ce fichier.
00001 /*! \file XML.cpp
00002     \brief Gestion de fichier XML.
00003 
00004     Utilisation de fichier structurer XML.
00005 
00006     \author     aerith (www.aerith.fr)
00007     \version    1.0
00008     \date       01/11/2007
00009 */
00010 
00011 #include    "XML.h"
00012 
00013 int     XMLObjet::XMLInstance = 0;
00014 MUTEX   XMLObjet::XMLMutex;
00015 
00016 XML::XML()
00017 {
00018     if(!XMLObjet::XMLInstance)
00019         MutexInit(&XMLObjet::XMLMutex);
00020 
00021     XMLObjet::XMLInstance++;
00022 
00023     *FileName = '\0';
00024     XMLObjet::XMLObjet();
00025 }
00026 
00027 XML::~XML()
00028 {
00029     XMLObjet::XMLInstance--;
00030 
00031     if(!XMLObjet::XMLInstance)
00032         MutexStop(&XMLObjet::XMLMutex);
00033 }
00034 
00035 int     XML::Load(char *pFileName)
00036 {
00037     BEGIN
00038     LOC("XML::Load")
00039 
00040     strcpy(FileName, pFileName);
00041 
00042     MutexLock(&XMLObjet::XMLMutex);
00043 
00044     TRY XMLObjet::File = fopen(pFileName, "r");
00045     TRY if(XMLObjet::File)
00046     {
00047         while(!feof(XMLObjet::File) && !CERROR)
00048         {
00049             CERROR = XMLObjet::Load();
00050         }
00051 
00052         fclose(XMLObjet::File);
00053     }
00054 
00055     MutexUnLock(&XMLObjet::XMLMutex);
00056 
00057     PERROR
00058 
00059     ENDBEGIN
00060 }
00061 
00062 int     XML::Save(char *pFileName)
00063 {
00064     BEGIN
00065     LOC("XML::Save");
00066 
00067     MutexLock(&XMLObjet::XMLMutex);
00068 
00069     XMLObjet::File = fopen(pFileName, "w");
00070     TRY if(XMLObjet::File)
00071     {
00072         CERROR = XMLObjet::Save(0);
00073 
00074         fclose(XMLObjet::File);
00075     }
00076     ENDTRY(ERROR_C_DATA_FILE)
00077 
00078     MutexUnLock(&XMLObjet::XMLMutex);
00079 
00080     ENDBEGIN
00081 }
00082 
00083 int     XML::Print(FILE *pFile)
00084 {
00085     BEGIN
00086     LOC("XML::Print");
00087 
00088     MutexLock(&XMLObjet::XMLMutex);
00089 
00090     XMLObjet::File = pFile;
00091 
00092     while(!feof(XMLObjet::File) && !CERROR)
00093     {
00094         CERROR = XMLObjet::Print(0);
00095     }
00096 
00097     MutexUnLock(&(XMLObjet::XMLMutex));
00098 
00099     PERROR
00100 
00101     ENDBEGIN
00102 }

Généré le Thu Jan 24 12:36:04 2008 pour A.I.F. par  doxygen 1.3.9.1