#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 }
|