Commit 07706691d6448faf5894a40fc6f2698db8aaaf29

Authored by Thiago Rocha
1 parent a8c7a0f6
Exists in master

Modificações para o serviço executar mais de um módulo de acordo com o que está no getConfig().

Showing 1 changed file with 35 additions and 6 deletions   Show diff stats
cacic-daemon/cacicD/cacictimer.cpp
@@ -2,7 +2,6 @@ @@ -2,7 +2,6 @@
2 2
3 CacicTimer::CacicTimer(QString dirpath) 3 CacicTimer::CacicTimer(QString dirpath)
4 { 4 {
5 - definirDirGercols(dirpath);  
6 setApplicationDirPath(dirpath); 5 setApplicationDirPath(dirpath);
7 iniciarInstancias(); 6 iniciarInstancias();
8 connect(timer,SIGNAL(timeout()),this,SLOT(mslot())); 7 connect(timer,SIGNAL(timeout()),this,SLOT(mslot()));
@@ -40,8 +39,21 @@ void CacicTimer::mslot(){ @@ -40,8 +39,21 @@ void CacicTimer::mslot(){
40 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success.")); 39 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success."));
41 if(getConfig()){ 40 if(getConfig()){
42 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getConfig() success.")); 41 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getConfig() success."));
43 - verificarModulos();  
44 - iniciarGercols(); 42 + QStringList nomesModulos = verificarModulos();
  43 +
  44 + if ( !nomesModulos.empty() ) {
  45 +
  46 + foreach( QString nome, nomesModulos ) {
  47 + if( nome == "gercols" ) {
  48 + definirDirGercols(getApplicationDirPath());
  49 + iniciarModulo();
  50 + } else if( nome == "mapas" ) {
  51 + definirDirMapas(getApplicationDirPath());
  52 + iniciarModulo();
  53 + }
  54 + }
  55 + }
  56 +
45 }else{ 57 }else{
46 qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString(); 58 qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString();
47 QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na obtenção do arquivo de configuração."); 59 QLogger::QLog_Error("Cacic Daemon (Timer)", "Falha na obtenção do arquivo de configuração.");
@@ -148,7 +160,7 @@ void CacicTimer::setDirProgram(const QString &amp;value) @@ -148,7 +160,7 @@ void CacicTimer::setDirProgram(const QString &amp;value)
148 } 160 }
149 161
150 162
151 -void CacicTimer::iniciarGercols() 163 +void CacicTimer::iniciarModulo()
152 { 164 {
153 registraInicioColeta(); 165 registraInicioColeta();
154 QDir::setCurrent(this->applicationDirPath); 166 QDir::setCurrent(this->applicationDirPath);
@@ -223,6 +235,15 @@ void CacicTimer::definirDirGercols(QString appDirPath){ @@ -223,6 +235,15 @@ void CacicTimer::definirDirGercols(QString appDirPath){
223 setDirProgram(appDirPath + "/cacic-gercols"); 235 setDirProgram(appDirPath + "/cacic-gercols");
224 #endif 236 #endif
225 } 237 }
  238 +
  239 +void CacicTimer::definirDirMapas(QString appDirPath){
  240 +#if defined (Q_OS_WIN)
  241 + setDirProgram(appDirPath + "\cacic-mapas.exe");
  242 +#elif defined (Q_OS_LINUX)
  243 + setDirProgram(appDirPath + "/cacic-mapas");
  244 +#endif
  245 +}
  246 +
226 int CacicTimer::getPeriodicidadeExecucao() const 247 int CacicTimer::getPeriodicidadeExecucao() const
227 { 248 {
228 return periodicidadeExecucao; 249 return periodicidadeExecucao;
@@ -234,7 +255,7 @@ void CacicTimer::setPeriodicidadeExecucao(int value) @@ -234,7 +255,7 @@ void CacicTimer::setPeriodicidadeExecucao(int value)
234 } 255 }
235 256
236 257
237 -void CacicTimer::verificarModulos(){ 258 +QStringList CacicTimer::verificarModulos(){
238 // Compara o novo arquivo de configuração com um antigo e se forem diferentes 259 // Compara o novo arquivo de configuração com um antigo e se forem diferentes
239 // mantem o mais recente; caso iguais simplesmente apaga o novo. 260 // mantem o mais recente; caso iguais simplesmente apaga o novo.
240 QFile *fileOld; 261 QFile *fileOld;
@@ -258,6 +279,9 @@ void CacicTimer::verificarModulos(){ @@ -258,6 +279,9 @@ void CacicTimer::verificarModulos(){
258 delete fileOld; 279 delete fileOld;
259 delete fileNew; 280 delete fileNew;
260 lerArquivoConfig(jsonConfig["agentcomputer"].toObject()); 281 lerArquivoConfig(jsonConfig["agentcomputer"].toObject());
  282 +
  283 + QStringList nomesModulos;
  284 +
261 int countExecNotFound = 0; 285 int countExecNotFound = 0;
262 QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin(); 286 QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin();
263 while (mapIterator != moduleMap.constEnd()) { 287 while (mapIterator != moduleMap.constEnd()) {
@@ -274,7 +298,7 @@ void CacicTimer::verificarModulos(){ @@ -274,7 +298,7 @@ void CacicTimer::verificarModulos(){
274 countExecNotFound++; 298 countExecNotFound++;
275 if( countExecNotFound == moduleMap.size() ) { 299 if( countExecNotFound == moduleMap.size() ) {
276 QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!"); 300 QLogger::QLog_Error("Cacic Daemon (Timer)", "Não foi possível encontrar nenhum módulo executável!");
277 - return; 301 + return QStringList();
278 } 302 }
279 continue; 303 continue;
280 } 304 }
@@ -298,6 +322,11 @@ void CacicTimer::verificarModulos(){ @@ -298,6 +322,11 @@ void CacicTimer::verificarModulos(){
298 fileOld->remove(); 322 fileOld->remove();
299 delete fileOld; 323 delete fileOld;
300 } 324 }
  325 +
  326 + nomesModulos.append(nomeModulo);
  327 +
301 mapIterator++; 328 mapIterator++;
302 } 329 }
  330 +
  331 + return nomesModulos;
303 } 332 }