#include <ModuleModule.h>
Fonctions membres publiques | |
| ModuleModule () | |
| ~ModuleModule () | |
| int | Load (char *pName, char *pFile) |
| Charge le module. | |
| int | UnLoad () |
| Decharge le module. | |
| int | AddFonction (char *pName) |
| Importe une fonction. | |
| int | DelFonction (int iPos) |
| Supprime une fonction. | |
| int | DelFonction (char *pName) |
| Supprime une fonction. | |
| ROUTINE | GetFonction (int iPos) |
| Retourne une fonction par sa position. | |
| ROUTINE | GetFonction (char *pName) |
| Retourne une fonction par son nom. | |
| int | GetNbFonction () |
| Retourne le nombre de fonction. | |
| char * | GetFile () |
| Retourne le fichier. | |
| char * | GetName () |
| Retourne le nom. | |
| char * | GetRealname () |
| Retourne le nom réel. | |
| char * | GetVersion () |
| Retourne la version. | |
| char * | GetAutor () |
| Retourne l'auteur. | |
| char * | GetDesc () |
| Retourne la description. | |
Définition à la ligne 47 du fichier ModuleModule.h.
|
|
Initialise avec des valeurs par defaut. Définition à la ligne 13 du fichier ModuleModule.cpp. 00014 {
00015 *File = '\0';
00016 *Name = '\0';
00017 *Realname = '\0';
00018 *Version = '\0';
00019 *Autor = '\0';
00020 *Desc = '\0';
00021 Fonction = NULL;
00022 ModuleAdr = NULL;
00023 NbFonction = 0;
00024 Fonctions = NULL;
00025 Loaded = 0;
00026 }
|
|
|
Libere proprement la mémoire. Définition à la ligne 28 du fichier ModuleModule.cpp. Références UnLoad(). 00029 {
00030 int i;
00031
00032 UnLoad();
00033
00034 for(i = 0; i < NbFonction; i++)
00035 {
00036 if(Fonctions[i])
00037 free(Fonctions[i]);
00038 Fonctions[i] = NULL;
00039 }
00040 if(Fonctions)
00041 free(Fonctions);
00042 Fonctions = NULL;
00043 }
|
|
|
Importe la fonction de nom pName .
Définition à la ligne 175 du fichier ModuleModule.cpp. Références BEGIN, CERROR, ENDBEGIN, ENDTRY, _ModuleFonction::Fonction, LOC, ModuleFonction, ModuleImport(), PERROR, et TRY. Référencé par Load(). 00176 {
00177 ModuleFonction *Fonction;
00178 BEGIN
00179 LOC("ModuleModule::AddFonction")
00180
00181 TRY if(Loaded)
00182 {
00183 Fonction = new ModuleFonction;
00184
00185 printf("[Module] Import %34s ", pName);
00186 TRY if(ModuleImport(ModuleAdr, &Fonction->Fonction, pName))
00187 {
00188 Fonctions = (ModuleFonction **)realloc(Fonctions, (NbFonction + 1) * sizeof(ModuleFonction *));
00189
00190 Fonctions[NbFonction] = Fonction;
00191 strcpy(Fonctions[NbFonction]->Name, pName);
00192
00193 NbFonction++;
00194
00195 printf("[ OK ]\n");
00196 }
00197 else
00198 {
00199 printf("[FAILED]\n");
00200 CERROR = 25;
00201 }
00202 }
00203 ENDTRY(23)
00204
00205 PERROR
00206
00207 ENDBEGIN
00208 }
|
|
|
Supprime la fonction de nom pName.
Définition à la ligne 109 du fichier ModuleModule.h. 00110 {
00111 for(int i = 0; i < NbFonction; i++)
00112 {
00113 if(!strcmp(Fonctions[i]->Name, pName))
00114 return DelFonction(i);
00115 }
00116 };
|
|
|
Supprime la fonction étant à la position iPos.
Définition à la ligne 210 du fichier ModuleModule.cpp. Références BEGIN, ENDBEGIN, ENDTRY, LOC, ModuleFonction, PERROR, et TRY. 00211 {
00212 int i = 0;
00213 BEGIN
00214 LOC("ModuleModule::DelFonction")
00215
00216 TRY if(Loaded)
00217 {
00218 TRY if(iPos < NbFonction)
00219 {
00220 if(Fonctions[iPos])
00221 free(Fonctions[iPos]);
00222 Fonctions[iPos] = NULL;
00223
00224 for(i = iPos; i < (NbFonction - 1); Fonctions[i] = Fonctions[i++]);
00225 Fonctions = (ModuleFonction **)realloc(Fonctions, (NbFonction - 1) * sizeof(ModuleFonction *));
00226
00227 NbFonction--;
00228 }
00229 ENDTRY(26)
00230 }
00231 ENDTRY(23)
00232
00233 PERROR
00234
00235 ENDBEGIN
00236 }
|
|
|
Retourne l'auteur du module.
Définition à la ligne 199 du fichier ModuleModule.h. 00200 {
00201 return Autor;
00202 };
|
|
|
Retourne la description du module.
Définition à la ligne 208 du fichier ModuleModule.h. 00209 {
00210 return Desc;
00211 };
|
|
|
Retourne le nom du fichier du module.
Définition à la ligne 163 du fichier ModuleModule.h. 00164 {
00165 return File;
00166 };
|
|
|
Permet l'acces à la fonction ayant le nom pName.
Définition à la ligne 138 du fichier ModuleModule.h. Références _ModuleFonction::Fonction, et ROUTINE. 00139 {
00140 for(int i = 0; i < NbFonction; i++)
00141 {
00142 if(!strcmp(Fonctions[i]->Name, pName))
00143 return Fonctions[i]->Fonction;
00144 }
00145
00146 return NULL;
00147 };
|
|
|
Permet l'acces à la fonction étant à la position iPos.
Définition à la ligne 124 du fichier ModuleModule.h. Références _ModuleFonction::Fonction, et ROUTINE. 00125 {
00126 if(iPos < NbFonction)
00127 return Fonctions[iPos]->Fonction;
00128
00129 return NULL;
00130 };
|
|
|
Retourne le nom donné au module.
Définition à la ligne 172 du fichier ModuleModule.h. 00173 {
00174 return Name;
00175 };
|
|
|
Retourne le nombre de fonction importée.
Définition à la ligne 154 du fichier ModuleModule.h. 00155 {
00156 return NbFonction;
00157 };
|
|
|
Retourne le nom réel du module.
Définition à la ligne 181 du fichier ModuleModule.h. 00182 {
00183 return Realname;
00184 };
|
|
|
Retourne la version du module.
Définition à la ligne 190 du fichier ModuleModule.h. 00191 {
00192 return Version;
00193 };
|
|
||||||||||||
|
Charge le module de fichier pFile .
Définition à la ligne 45 du fichier ModuleModule.cpp. Références AddFonction(), AtoD(), BEGIN, CERROR, DtoA(), ENDBEGIN, ENDTRY, LOC, ModuleFonction, ModuleImport(), ModuleLoad(), PERROR, ROUTINE, TRY, et TRYIF. Référencé par Module::AddModule(). 00046 {
00047 int i = 0, Nb;
00048 char Nbr[12];
00049 ROUTINE Temp;
00050 BEGIN
00051 LOC("ModuleModule::Load")
00052
00053 if(!Loaded)
00054 {
00055 strcpy(Name, pName);
00056 strcpy(File, pFile);
00057
00058 TRY if(ModuleLoad(&ModuleAdr, pFile))
00059 {
00060 printf("[Module] Load %36s [ OK ]\n", pName);
00061
00062 TRYIF(ModuleImport(ModuleAdr, &Temp, "ModuleInit"), 25)
00063 TRYIF((int)Temp(NULL), 27)
00064
00065 TRY if(ModuleImport(ModuleAdr, &Temp, "ModuleName"))
00066 {
00067 strcpy(Realname, (char *)Temp(NULL));
00068 }
00069 ENDTRY(25)
00070
00071 TRY if(ModuleImport(ModuleAdr, &Temp, "ModuleVersion"))
00072 {
00073 strcpy(Version, (char *)Temp(NULL));
00074 }
00075 ENDTRY(25)
00076
00077 TRY if(ModuleImport(ModuleAdr, &Temp, "ModuleDesc"))
00078 {
00079 strcpy(Desc, (char *)Temp(NULL));
00080 }
00081 ENDTRY(25)
00082
00083 TRY if(ModuleImport(ModuleAdr, &Temp, "ModuleAutor"))
00084 {
00085 strcpy(Autor, (char *)Temp(NULL));
00086 }
00087 ENDTRY(25)
00088
00089 Loaded = 1;
00090
00091 TRYIF(ModuleImport(ModuleAdr, &Fonction, "ModuleFonction"), 25)
00092
00093 TRY {
00094 for(i = 0; i < NbFonction; i++)
00095 {
00096 if(Fonctions[i])
00097 free(Fonctions[i]);
00098 Fonctions[i] = NULL;
00099 }
00100 if(Fonctions)
00101 free(Fonctions);
00102 Fonctions = NULL;
00103
00104 printf("\t%s V%s by %s\n", Realname, Version, Autor);
00105 printf("\t%s\n", Desc);
00106 }
00107
00108 TRY Nb = AtoD((char *)Fonction(NULL));
00109 TRY if(Nb)
00110 {
00111 Fonctions = (ModuleFonction **)realloc(Fonctions, Nb * sizeof(ModuleFonction *));
00112
00113 for(i = 0; i < (Nb && !CERROR); i++)
00114 {
00115 Fonctions[i] = new ModuleFonction;
00116
00117 DtoA(i + 1, Nbr);
00118 CERROR = AddFonction((char *)Fonction(Nbr));
00119 }
00120 }
00121 ENDTRY(26)
00122 }
00123 else
00124 {
00125 printf("[Module] Load %36s [FAILED]\n", pName);
00126 CERROR = 23;
00127 }
00128 }
00129
00130 PERROR
00131
00132 ENDBEGIN
00133 }
|
|
|
Decharge le module.
Définition à la ligne 135 du fichier ModuleModule.cpp. Références BEGIN, CERROR, ENDBEGIN, LOC, ModuleImport(), ModuleUnload(), PERROR, ROUTINE, et TRY. Référencé par Module::DelModule(), et ~ModuleModule(). 00136 {
00137 int i = 0;
00138 ROUTINE Close;
00139 BEGIN
00140 LOC("ModuleModule::UnLoad")
00141
00142 if(Loaded)
00143 {
00144 if(ModuleImport(ModuleAdr, &Close, "ModuleClose"))
00145 Close(NULL);
00146
00147 TRY if(!ModuleUnload(&ModuleAdr))
00148 {
00149 printf("[Module] Unload %34s [ OK ]\n", Name);
00150
00151 for(i = 0; i < NbFonction; i++)
00152 {
00153 if(Fonctions[i])
00154 free(Fonctions[i]);
00155 Fonctions[i] = NULL;
00156 }
00157 if(Fonctions)
00158 free(Fonctions);
00159 Fonctions = NULL;
00160 NbFonction = 0;
00161 Loaded = 0;
00162 }
00163 else
00164 {
00165 printf("[Module] Unload %34s [FAILED]\n", Name);
00166 CERROR = 24;
00167 }
00168 }
00169
00170 PERROR
00171
00172 ENDBEGIN
00173 }
|
1.3.9.1