#include <DataBase.h>
Fonctions membres publiques | |
| DataBase (char *pRepertoire) | |
| ~DataBase () | |
| int | AddTable (char *pName, int iNbData) |
| Ajoute une table. | |
| int | DelTable (int iId) |
| Supprime une table. | |
| int | DelTable (char *pName) |
| Supprime une table. | |
| DataBaseTable * | GetTable (int iId) |
| Retourne une table par son Id. | |
| DataBaseTable * | GetTable (char *pName) |
| Retourne une table par son nom. | |
| DataBaseTable * | GetTableNo (int iPos) |
| Retourne une table par sa position. | |
| int | GetNbTable () |
| Retourne le nombre de table. | |
| int | GetNbInstance () |
| Retourne le nombre d'instance. | |
| char * | GetBaseDir () |
| Retourne le repertoire de la base. | |
| int | SaveBase () |
| Sauve la base. | |
Définition à la ligne 40 du fichier DataBase.h.
|
|
Charge la base en mémoire.
Définition à la ligne 17 du fichier DataBase.cpp. Références DB_REPERTOIRE, et MutexInit(). 00018 {
00019 if(!DBInstance)
00020 MutexInit(&DBMutex);
00021
00022 DBInstance++;
00023
00024 strncpy(Repertoire, pRepertoire, DB_REPERTOIRE);
00025 NbTable = 0;
00026 IdMax = 0;
00027
00028 LoadTables();
00029 }
|
|
|
Libere proprement la mémoire, ne sauve pas la base dans les fichiers.
Définition à la ligne 31 du fichier DataBase.cpp. Références MutexStop(). 00032 {
00033 for(int i = 0; i < NbTable; i++)
00034 delete Tables[i];
00035 Tables.clear();
00036
00037 DBInstance--;
00038
00039 if(!DBInstance)
00040 MutexStop(&DBMutex);
00041 }
|
|
||||||||||||
|
Ajoute une table avec un nouvelle Id.
Définition à la ligne 130 du fichier DataBase.cpp. 00131 {
00132 Tables.push_back(new DataBaseTable(Repertoire, IdMax + 1, iNbData, pName));
00133 if(!Tables[NbTable])
00134 return ERROR_C_MEMORY;
00135
00136 IdMax++;
00137 NbTable++;
00138
00139 return ERROR_C_NOERROR;
00140 }
|
|
|
Supprime la table de nom pName.
Définition à la ligne 96 du fichier DataBase.h. 00097 {
00098 for(int i = 0; i < NbTable; i++)
00099 {
00100 if(!strcmp(Tables[i]->GetName(), pName))
00101 return DelTable(Tables[i]->GetId());
00102 }
00103
00104 return 0;
00105 };
|
|
|
Supprime la table ayant l'id iId.
Définition à la ligne 142 du fichier DataBase.cpp. 00143 {
00144 int i;
00145
00146 if(NbTable > 0)
00147 {
00148 for(i = 0; i < NbTable; i++)
00149 {
00150 if(Tables[i]->GetId() == iId)
00151 {
00152 Tables.erase(Tables.begin() + i);
00153
00154 NbTable--;
00155
00156 return ERROR_C_NOERROR;
00157 }
00158 }
00159 }
00160
00161 return ERROR_C_NOERROR;
00162 }
|
|
|
Retourne le repertoire Repertoire de la base.
Définition à la ligne 178 du fichier DataBase.h. 00179 {
00180 return Repertoire;
00181 };
|
|
|
Retourne le nombre d'instance de la class (pour multitache).
Définition à la ligne 169 du fichier DataBase.h. 00170 {
00171 return DBInstance;
00172 };
|
|
|
Retourne le nombre de table contenu dans la base.
Définition à la ligne 160 du fichier DataBase.h. 00161 {
00162 return NbTable;
00163 };
|
|
|
Permet l'acces à la table ayant le nom pName.
Définition à la ligne 130 du fichier DataBase.h. 00131 {
00132 for(int i = 0; i < NbTable; i++)
00133 {
00134 if(!strcmp(Tables[i]->GetName(), pName))
00135 return Tables[i];
00136 }
00137
00138 return NULL;
00139 };
|
|
|
Permet l'acces à la table ayant l'id iId.
Définition à la ligne 113 du fichier DataBase.h. 00114 {
00115 for(int i = 0; i < NbTable; i++)
00116 {
00117 if(Tables[i]->GetId() == iId)
00118 return Tables[i];
00119 }
00120
00121 return NULL;
00122 };
|
|
|
Permet l'acces à la table étant à la position iPos.
Définition à la ligne 147 du fichier DataBase.h. 00148 {
00149 if(iPos < NbTable)
00150 return Tables[iPos];
00151
00152 return NULL;
00153 };
|
|
|
Sauve toute la base dans les fichiers "DB.sys" et "x.dbt".
Définition à la ligne 164 du fichier DataBase.cpp. Références FileDelete(), MutexLock(), MutexUnLock(), et TRY. 00165 {
00166 int i;
00167 int j = 0;
00168 char Name[DB_BUFFERSIZE];
00169 BEGIN
00170
00171 MutexLock(&DBMutex);
00172
00173 for(i = 1; (i <= IdMax) && !CERROR; i++)
00174 {
00175 if(Tables[j]->GetId() == i)
00176 {
00177 TRY CERROR = Tables[j]->SaveEntrys();
00178
00179 j++;
00180 }
00181 else
00182 {
00183 sprintf(Name, "%s/%i.dbt", Repertoire, i);
00184
00185 FileDelete(Name);
00186 }
00187 }
00188
00189 MutexUnLock(&DBMutex);
00190
00191 TRY CERROR = SaveTables();
00192
00193 ENDBEGIN
00194 }
|
1.3.9.1