#include <Error.h>
Fonctions membres publiques | |
| Error () | |
| ~Error () | |
| void | SetLog (const char *pLog) |
| Définie le nom du fichier de log. | |
| void | SetLoc (const char *pLoc) |
| Definie le nom de la fonction courant. | |
| void | SetLangue (const char *pFile) |
| Langue des messages d'erreur. | |
| void | Throw (unsigned int iLine, unsigned int iCode) |
| Génère une exception. | |
| void | AddFunc (const char *pFunc, const char *pFile) |
| Ajoute une fonction à la liste d'appel. | |
| void | Perror (unsigned int iCode) |
| Affiche la description de l'erreur. | |
Définition à la ligne 81 du fichier Error.h.
|
|
Initalisé par defaut en langue "ErrorCode.FR". Définition à la ligne 19 du fichier Error.cpp. Références ThreadCallStack::nbInstance, SetLangue(), et ThreadId(). 00020 {
00021 unsigned int i = 0;
00022
00023 loc = "";
00024 line = 0;
00025 currentCallStack = NULL;
00026
00027 for(i = 0; i < callStacks.size(); i++)
00028 {
00029 if(callStacks[i]->id == ThreadId())
00030 {
00031 currentCallStack = callStacks[i];
00032 break;
00033 }
00034 }
00035
00036 if(!currentCallStack)
00037 {
00038 callStacks.push_back(new ThreadCallStack);
00039 currentCallStack = callStacks.back();
00040 }
00041
00042 currentCallStack->nbInstance++;
00043
00044 SetLangue(langue.data());
00045 }
|
|
|
Libére la mémoire proprement. Définition à la ligne 47 du fichier Error.cpp. Références ThreadCallStack::nbInstance. 00048 {
00049 unsigned int i = 0;
00050
00051 currentCallStack->nbInstance--;
00052
00053 if(currentCallStack->nbInstance == 0)
00054 {
00055 for(i = 0; i < callStacks.size(); i++)
00056 {
00057 if(callStacks[i] == currentCallStack)
00058 {
00059 callStacks.erase(callStacks.begin() + i);
00060 break;
00061 }
00062 }
00063
00064 delete currentCallStack;
00065 }
00066
00067 if(callStacks.size() == 0)
00068 {
00069 for(i = 0; i < descError.size(); i++)
00070 delete descError[i];
00071 }
00072 }
|
|
||||||||||||
|
Ajoute une fonction à la suite de la pile d'appel (LIFO).
Définition à la ligne 105 du fichier Error.cpp. Références ThreadCallStack::stack.
|
|
|
Affiche et log la description de l'exception enregistrée par le systeme.
Définition à la ligne 135 du fichier Error.cpp. Références ThreadCallStack::id, et ThreadCallStack::stack. 00136 {
00137 time_t tTime;
00138 tm *tmTime;
00139 unsigned int i = 0;
00140
00141 if(iCode == ERROR_C_NOERROR)
00142 return;
00143
00144 tTime = time(NULL);
00145 tmTime = localtime(&tTime);
00146
00147 LogError("\n");
00148
00149 for(i = 0; i < descError.size(); i++)
00150 {
00151 if(descError[i]->no == iCode)
00152 break;
00153 }
00154
00155 LogError("%02i/%02i/%02i %02i:%02i:%02i : %5i ERROR in '%s' (file '%s:%i'), code %i : %s\n",
00156 tmTime->tm_mday, tmTime->tm_mon, tmTime->tm_year + 1900, tmTime->tm_hour, tmTime->tm_min, tmTime->tm_sec,
00157 currentCallStack->id,
00158 currentCallStack->stack.front()->func.data(),
00159 currentCallStack->stack.front()->file.data(),
00160 currentCallStack->stack.front()->line,
00161 iCode,
00162 (i < descError.size() ? descError[i]->desc.data() : "No description")
00163 );
00164
00165 currentCallStack->stack.erase(currentCallStack->stack.begin());
00166
00167 while(currentCallStack->stack.size())
00168 {
00169 LogError("%02i/%02i/%02i %02i:%02i:%02i : %5i from '%s' (file '%s:%i')\n",
00170 tmTime->tm_mday, tmTime->tm_mon, tmTime->tm_year + 1900, tmTime->tm_hour, tmTime->tm_min, tmTime->tm_sec,
00171 currentCallStack->id,
00172 currentCallStack->stack.front()->func.data(),
00173 currentCallStack->stack.front()->file.data(),
00174 currentCallStack->stack.front()->line
00175 );
00176
00177 currentCallStack->stack.erase(currentCallStack->stack.begin());
00178 }
00179 }
|
|
|
Permet de définir la langue dans laquelle seront les messages d'erreurs (fichier ErrorCode.lang).
Définition à la ligne 74 du fichier Error.cpp. Références ERROR_BUFFER, et gettok(). Référencé par Error(). 00075 {
00076 if(descError.size() == 0)
00077 {
00078 char desc[ERROR_BUFFER];
00079 fstream file(pFile, fstream::in);
00080 unsigned int i;
00081
00082 for(i = 0; i < descError.size(); i++)
00083 delete descError[i];
00084
00085 if(file.is_open())
00086 {
00087 descError.clear();
00088
00089 while(file.good())
00090 {
00091 file.getline(desc, ERROR_BUFFER);
00092 descError.push_back(new ErrorDesc);
00093 descError.back()->no = atoi(gettok(desc, 0, " :\t\n\r"));
00094 descError.back()->desc = gettok(desc, 1, ":\t\n\r");
00095 }
00096 file.close();
00097 }
00098 else
00099 cerr << "Canot open error language file" << endl;
00100
00101 langue = pFile;
00102 }
00103 }
|
|
|
Définie le nom de la fonction en cour d'éxécution.
Définition à la ligne 121 du fichier Error.h. 00122 {
00123 loc = pLoc;
00124 };
|
|
|
Définie le nom du fichier de log des erreurs.
Définition à la ligne 112 du fichier Error.h. 00113 {
00114 log = pLog;
00115 };
|
|
||||||||||||
|
Enregistre le numéro de la ligne et génère une exception
Définition à la ligne 137 du fichier Error.h. 00138 {
00139 line = iLine;
00140 throw iCode;
00141 };
|
1.3.9.1