00001
00002
00003
00004
00005
00006
00007
00008
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 }