#include <ModuleDynamique.h>
Fonctions membres publiques | |
ModuleDynamique () | |
~ModuleDynamique () | |
int | LoadModules (char *pFile) |
Charge les modules. | |
int | UnLoadModules () |
Decharge tous les modules. | |
int | AddModule (char *pName, char *pFile) |
Ajoute un module. | |
int | DelModule (int iPos) |
Supprime un module. | |
int | DelModule (char *pName) |
Supprime un module. | |
ModuleDynamiqueModule * | GetModule (int iPos) |
Retourne un module par sa position. | |
ModuleDynamiqueModule * | GetModule (char *pName) |
Retourne un module par son nom. | |
int | GetNbModule () |
Retourne le nombre de module. | |
int | GetNbInstance () |
Retourne le nombre d'instance. |
Définition à la ligne 41 du fichier ModuleDynamique.h.
|
Initialise. Définition à la ligne 18 du fichier ModuleDynamique.cpp. Références MutexInit(). 00019 { 00020 if(!ModuleInstance) 00021 MutexInit(&ModuleMutex); 00022 00023 ModuleInstance++; 00024 }
|
|
Libere proprement la mémoire, décharge les modules. Définition à la ligne 26 du fichier ModuleDynamique.cpp. Références MutexStop(), et UnLoadModules(). 00027 { 00028 ModuleInstance--; 00029 00030 if(!ModuleInstance) 00031 { 00032 UnLoadModules(); 00033 00034 MutexStop(&ModuleMutex); 00035 00036 Modules.clear(); 00037 } 00038 }
|
|
Ajoute un module de fichier pFile .
Définition à la ligne 105 du fichier ModuleDynamique.cpp. Référencé par LoadModules(). 00106 { 00107 BEGIN 00108 LOC("ModuleDynamique::AddModules") 00109 00110 Modules.push_back(new ModuleDynamiqueModule); 00111 00112 if(!Modules[NbModule]) 00113 CERROR = ERROR_C_MEMORY; 00114 else 00115 { 00116 CERROR = Modules.back()->Load(pName, pFile); 00117 00118 TRY NbModule++; 00119 else 00120 Modules.erase(Modules.begin() + NbModule); 00121 } 00122 00123 PERROR 00124 00125 ENDBEGIN 00126 }
|
|
Supprime le module de nom pName.
Définition à la ligne 97 du fichier ModuleDynamique.h. 00098 { 00099 for(int i = 0; i < NbModule; i++) 00100 { 00101 if(!strcmp(Modules[i]->GetName(), pName)) 00102 return DelModule(i); 00103 } 00104 };
|
|
Supprime le module étant à la position iPos.
Définition à la ligne 128 du fichier ModuleDynamique.cpp. Référencé par UnLoadModules(). 00129 { 00130 BEGIN 00131 LOC("ModuleDynamique::DelModules") 00132 00133 if(iPos < NbModule) 00134 { 00135 CERROR = Modules[iPos]->UnLoad(); 00136 00137 TRY { 00138 delete Modules[iPos]; 00139 Modules.erase(Modules.begin() + iPos); 00140 00141 NbModule--; 00142 } 00143 } 00144 ENDTRY(ERROR_C_UNLOAD_DLL) 00145 00146 PERROR 00147 00148 ENDBEGIN 00149 }
|
|
Permet l'acces au module ayant le nom pName que l'on a donnée.
Définition à la ligne 126 du fichier ModuleDynamique.h. 00127 { 00128 for(int i = 0; i < NbModule; i++) 00129 { 00130 if(!strcmp(Modules[i]->GetName(), pName)) 00131 return Modules[i]; 00132 } 00133 00134 return NULL; 00135 };
|
|
Permet l'acces au module étant a la position iPos.
Définition à la ligne 112 du fichier ModuleDynamique.h. 00113 { 00114 if(iPos < NbModule) 00115 return Modules[iPos]; 00116 00117 return NULL; 00118 };
|
|
Retourne le nombre d'instance de la class (pour multitache).
Définition à la ligne 151 du fichier ModuleDynamique.h. 00152 {
00153 return ModuleInstance;
00154 };
|
|
Retourne le nombre de module géré.
Définition à la ligne 142 du fichier ModuleDynamique.h. 00143 {
00144 return NbModule;
00145 };
|
|
Efectue une mise à jour, charge les modules depuis le fichier de configuration pFile et
Définition à la ligne 40 du fichier ModuleDynamique.cpp. Références AddModule(), LOC, MutexLock(), MutexUnLock(), et TRY. 00041 { 00042 char OS[] = "WIN"; 00043 char Section[12]; 00044 char ModuleName[MODULE_NAME]; 00045 char ModuleFile[MODULE_FILE]; 00046 int i; 00047 BEGIN 00048 LOC("ModuleDynamique::LoadModules") 00049 00050 Ini Fichier(pFile); 00051 00052 MutexLock(&ModuleMutex); 00053 00054 #ifndef WIN32 00055 strcpy(OS, "NUX"); 00056 #endif 00057 00058 sprintf(Section, "module%s", OS); 00059 printf("[Module] OS detected : %s\n", OS); 00060 00061 TRY if(Fichier.GetSection(Section)) 00062 { 00063 for(i = 0; i < Fichier.GetSection(Section)->GetNbItem(); i++) 00064 { 00065 TRY strcpy(ModuleName, Fichier.GetSection(Section)->GetItemName(i)); 00066 TRYIF(ModuleName, ERROR_C_CONF_FILE) 00067 TRY strcpy(ModuleFile, Fichier.GetSection(Section)->GetItem(i)->GetData()); 00068 TRYIF(ModuleFile, ERROR_C_CONF_FILE) 00069 00070 CERROR = AddModule(ModuleName, ModuleFile); 00071 } 00072 } 00073 else 00074 { 00075 CERROR = ERROR_C_LOAD_DLL; 00076 printf("[Module] No module to load in conf file\n"); 00077 } 00078 00079 MutexUnLock(&ModuleMutex); 00080 00081 PERROR 00082 00083 ENDBEGIN 00084 }
|
|
Decharge tous les modules.
Définition à la ligne 86 du fichier ModuleDynamique.cpp. Références DelModule(), LOC, MutexLock(), et MutexUnLock(). Référencé par ~ModuleDynamique(). 00087 { 00088 BEGIN 00089 LOC("ModuleDynamique::UnLoadModules") 00090 00091 MutexLock(&ModuleMutex); 00092 00093 while(NbModule) 00094 { 00095 CERROR = DelModule(NbModule - 1); 00096 } 00097 00098 MutexUnLock(&ModuleMutex); 00099 00100 PERROR 00101 00102 ENDBEGIN 00103 }
|