#include <Module.h>
Fonctions membres publiques | |
| Module () | |
| ~Module () | |
| 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. | |
| ModuleModule * | GetModule (int iPos) |
| Retourne un module par sa position. | |
| ModuleModule * | 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 43 du fichier Module.h.
|
|
Initialise. Définition à la ligne 18 du fichier Module.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 Module.cpp. Références MutexStop(), et UnLoadModules(). 00027 {
00028 int i;
00029
00030 ModuleInstance--;
00031
00032 if(!ModuleInstance)
00033 {
00034 UnLoadModules();
00035
00036 MutexStop(&ModuleMutex);
00037
00038 for(i = 0; i < NbModule; i++)
00039 {
00040 if(Modules[i])
00041 free(Modules[i]);
00042 Modules[i] = NULL;
00043 }
00044 if(Modules)
00045 free(Modules);
00046 Modules = NULL;
00047 }
00048 }
|
|
||||||||||||
|
Ajoute un module de fichier pFile .
Définition à la ligne 139 du fichier Module.cpp. Références BEGIN, CERROR, ENDBEGIN, ModuleModule::Load(), LOC, PERROR, et TRY. Référencé par LoadModules(). 00140 {
00141 ModuleModule *ModuleTemp;
00142 BEGIN
00143 LOC("Module::AddModules")
00144
00145 ModuleTemp = new ModuleModule;
00146
00147 CERROR = ModuleTemp->Load(pName, pFile);
00148
00149 TRY {
00150 Modules = (ModuleModule **)realloc(Modules, (NbModule + 1) * sizeof(ModuleModule *));
00151 Modules[NbModule] = ModuleTemp;
00152 NbModule++;
00153 }
00154 else
00155 {
00156 if(ModuleTemp)
00157 free(ModuleTemp);
00158 ModuleTemp = NULL;
00159 }
00160
00161 PERROR
00162
00163 ENDBEGIN
00164 }
|
|
|
Supprime le module de nom pName.
Définition à la ligne 99 du fichier Module.h. 00100 {
00101 for(int i = 0; i < NbModule; i++)
00102 {
00103 if(!strcmp(Modules[i]->GetName(), pName))
00104 return DelModule(i);
00105 }
00106 };
|
|
|
Supprime le module étant à la position iPos.
Définition à la ligne 166 du fichier Module.cpp. Références BEGIN, CERROR, ENDBEGIN, ENDTRY, LOC, PERROR, TRY, et ModuleModule::UnLoad(). Référencé par UnLoadModules(). 00167 {
00168 int i;
00169 BEGIN
00170 LOC("Module::DelModules")
00171
00172 if(iPos < NbModule)
00173 {
00174 CERROR = Modules[iPos]->UnLoad();
00175
00176 TRY {
00177 if(Modules[iPos])
00178 free(Modules[iPos]);
00179 Modules[iPos] = NULL;
00180
00181 for(i = iPos; i < (NbModule - 1); Modules[i] = Modules[i++]);
00182 Modules = (ModuleModule **)realloc(Modules, (NbModule - 1) * sizeof(ModuleModule *));
00183
00184 NbModule--;
00185 }
00186 }
00187 ENDTRY(24)
00188
00189 PERROR
00190
00191 ENDBEGIN
00192 }
|
|
|
Permet l'acces au module ayant le nom pName que l'on a donnée.
Définition à la ligne 128 du fichier Module.h. 00129 {
00130 for(int i = 0; i < NbModule; i++)
00131 {
00132 if(!strcmp(Modules[i]->GetName(), pName))
00133 return Modules[i];
00134 }
00135
00136 return NULL;
00137 };
|
|
|
Permet l'acces au module étant a la position iPos.
Définition à la ligne 114 du fichier Module.h. 00115 {
00116 if(iPos < NbModule)
00117 return Modules[iPos];
00118
00119 return NULL;
00120 };
|
|
|
Retourne le nombre d'instance de la class (pour multitache).
Définition à la ligne 153 du fichier Module.h. 00154 {
00155 return ModuleInstance;
00156 };
|
|
|
Retourne le nombre de module géré.
Définition à la ligne 144 du fichier Module.h. 00145 {
00146 return NbModule;
00147 };
|
|
|
Efectue une mise à jour, charge les modules depuis le fichier de configuration pFile et
Définition à la ligne 50 du fichier Module.cpp. Références AddModule(), BEGIN, CERROR, ENDBEGIN, LOC, MutexLock(), MutexUnLock(), PERROR, TRY, et TRYIF. 00051 {
00052 FILE *OSInfo;
00053 char OS[] = "WIN";
00054 char Section[12];
00055 char ModuleName[MODULE_NAME];
00056 char ModuleFile[MODULE_FILE];
00057 int i;
00058 BEGIN
00059 LOC("Module::LoadModules")
00060
00061 Ini Fichier(pFile);
00062
00063 MutexLock(&ModuleMutex);
00064
00065 #ifndef WIN32
00066 system("uname -a > tmp.txt");
00067
00068 OSInfo = fopen("tmp.txt", "r");
00069 if(OSInfo)
00070 {
00071 while(!feof(OSInfo))
00072 {
00073 if(fgets(ModuleFile, MODULE_FILE, OSInfo))
00074 {
00075 if(strstr(ModuleFile, "Linux"))
00076 strcpy(OS, "NUX");
00077 else if(strstr(ModuleFile, "BSD"))
00078 strcpy(OS, "BSD");
00079 else if(strstr(ModuleFile, "SOLARIS"))
00080 strcpy(OS, "SOL");
00081 else if(strstr(ModuleFile, "Unix"))
00082 strcpy(OS, "NIX");
00083 }
00084 }
00085 fclose(OSInfo);
00086 }
00087
00088 system("rm tmp.txt");
00089 #endif
00090
00091 sprintf(Section, "module%s", OS);
00092 printf("[Module] OS detected : %s\n", OS);
00093
00094 TRY if(Fichier.GetSection(Section))
00095 {
00096 for(i = 0; i < Fichier.GetSection(Section)->GetNbItem(); i++)
00097 {
00098 TRY strcpy(ModuleName, Fichier.GetSection(Section)->GetItemName(i));
00099 TRYIF(ModuleName, 17)
00100 TRY strcpy(ModuleFile, Fichier.GetSection(Section)->GetItem(i)->GetData());
00101 TRYIF(ModuleFile, 17)
00102
00103 CERROR = AddModule(ModuleName, ModuleFile);
00104 }
00105 }
00106 else
00107 {
00108 CERROR = 23;
00109 printf("[Module] No module to load in conf file\n");
00110 }
00111
00112 MutexUnLock(&ModuleMutex);
00113
00114 PERROR
00115
00116 ENDBEGIN
00117 }
|
|
|
Decharge tous les modules.
Définition à la ligne 119 du fichier Module.cpp. Références BEGIN, CERROR, DelModule(), ENDBEGIN, LOC, MutexLock(), MutexUnLock(), et PERROR. Référencé par ~Module(). 00120 {
00121 int i;
00122 BEGIN
00123 LOC("Module::UnLoadModules")
00124
00125 MutexLock(&ModuleMutex);
00126
00127 for(i = 0; (i < NbModule) && (!CERROR); i++)
00128 CERROR = DelModule(i);
00129
00130 delete [] Modules;
00131
00132 MutexUnLock(&ModuleMutex);
00133
00134 PERROR
00135
00136 ENDBEGIN
00137 }
|
1.3.9.1