Commit 07706691d6448faf5894a40fc6f2698db8aaaf29
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 &value) | @@ -148,7 +160,7 @@ void CacicTimer::setDirProgram(const QString &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 | } |