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 2  
3 3 CacicTimer::CacicTimer(QString dirpath)
4 4 {
5   - definirDirGercols(dirpath);
6 5 setApplicationDirPath(dirpath);
7 6 iniciarInstancias();
8 7 connect(timer,SIGNAL(timeout()),this,SLOT(mslot()));
... ... @@ -40,8 +39,21 @@ void CacicTimer::mslot(){
40 39 QLogger::QLog_Info("Cacic Daemon (Timer)", QString("getTeste() success."));
41 40 if(getConfig()){
42 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 57 }else{
46 58 qDebug() << "getConfig() failed. - " + QDateTime::currentDateTime().toLocalTime().toString();
47 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 160 }
149 161  
150 162  
151   -void CacicTimer::iniciarGercols()
  163 +void CacicTimer::iniciarModulo()
152 164 {
153 165 registraInicioColeta();
154 166 QDir::setCurrent(this->applicationDirPath);
... ... @@ -223,6 +235,15 @@ void CacicTimer::definirDirGercols(QString appDirPath){
223 235 setDirProgram(appDirPath + "/cacic-gercols");
224 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 247 int CacicTimer::getPeriodicidadeExecucao() const
227 248 {
228 249 return periodicidadeExecucao;
... ... @@ -234,7 +255,7 @@ void CacicTimer::setPeriodicidadeExecucao(int value)
234 255 }
235 256  
236 257  
237   -void CacicTimer::verificarModulos(){
  258 +QStringList CacicTimer::verificarModulos(){
238 259 // Compara o novo arquivo de configuração com um antigo e se forem diferentes
239 260 // mantem o mais recente; caso iguais simplesmente apaga o novo.
240 261 QFile *fileOld;
... ... @@ -258,6 +279,9 @@ void CacicTimer::verificarModulos(){
258 279 delete fileOld;
259 280 delete fileNew;
260 281 lerArquivoConfig(jsonConfig["agentcomputer"].toObject());
  282 +
  283 + QStringList nomesModulos;
  284 +
261 285 int countExecNotFound = 0;
262 286 QMap<QString, QString>::const_iterator mapIterator = moduleMap.constBegin();
263 287 while (mapIterator != moduleMap.constEnd()) {
... ... @@ -274,7 +298,7 @@ void CacicTimer::verificarModulos(){
274 298 countExecNotFound++;
275 299 if( countExecNotFound == moduleMap.size() ) {
276 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 303 continue;
280 304 }
... ... @@ -298,6 +322,11 @@ void CacicTimer::verificarModulos(){
298 322 fileOld->remove();
299 323 delete fileOld;
300 324 }
  325 +
  326 + nomesModulos.append(nomeModulo);
  327 +
301 328 mapIterator++;
302 329 }
  330 +
  331 + return nomesModulos;
303 332 }
... ...