diff --git a/cacic-teste/cacic-teste.pro b/cacic-teste/cacic-teste.pro index 87c677e..27dfa96 100644 --- a/cacic-teste/cacic-teste.pro +++ b/cacic-teste/cacic-teste.pro @@ -22,11 +22,12 @@ SOURCES += \ ../src/ccacic.cpp \ ../src/cacic_computer.cpp \ ../src/operatingsystem.cpp \ - ../src/qtservice/src/qtservice.cpp \ - ../src/qtservice/src/qtservice_unix.cpp \ - ../src/qtservice/src/qtservice_win.cpp \ - ../src/qtservice/src/qtunixserversocket.cpp \ - ../src/qtservice/src/qtunixsocket.cpp + ../src/cacic_software.cpp \ +# ../src/qtservice/src/qtservice.cpp \ +# ../src/qtservice/src/qtservice_unix.cpp \ +# ../src/qtservice/src/qtservice_win.cpp \ +# ../src/qtservice/src/qtunixserversocket.cpp \ +# ../src/qtservice/src/qtunixsocket.cpp HEADERS += \ @@ -36,10 +37,11 @@ HEADERS += \ ../src/cacic_comm.h \ ../src/console.h \ ../src/operatingsystem.h \ - ../src/qtservice/src/qtservice.h \ - ../src/qtservice/src/qtservice_p.h \ - ../src/qtservice/src/qtunixserversocket.h \ - ../src/qtservice/src/qtunixsocket.h + ../src/cacic_software.h \ +# ../src/qtservice/src/qtservice.h \ +# ../src/qtservice/src/qtservice_p.h \ +# ../src/qtservice/src/qtunixserversocket.h \ +# ../src/qtservice/src/qtunixsocket.h INCLUDEPATH += ../src \ ../src/crypto++/include/ diff --git a/cacic-teste/testcacic.cpp b/cacic-teste/testcacic.cpp index e89e023..0d074a0 100644 --- a/cacic-teste/testcacic.cpp +++ b/cacic-teste/testcacic.cpp @@ -237,6 +237,12 @@ void CTestCacic::testIniciarDaemon(){ } +void CTestCacic::testColetaSoftware() +{ + OCacicSoftware.iniciaColeta(); + QVERIFY(!OCacicSoftware.toJsonObject().empty()); +} + void CTestCacic::cleanupTestCase() { OCacic.deleteFile("configRequest.json"); diff --git a/cacic-teste/testcacic.h b/cacic-teste/testcacic.h index 2ccb224..61ca7e8 100644 --- a/cacic-teste/testcacic.h +++ b/cacic-teste/testcacic.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -28,11 +29,12 @@ private: CacicComm OCacicComm; CCacic OCacic; CACIC_Computer OCacicComp; + cacic_software OCacicSoftware; QString testPath; QString testIniPath; QJsonObject session; QString cripTeste; - cacicD OcacicD; +// cacicD OcacicD; signals: @@ -67,6 +69,7 @@ private slots: void testGetValueFromRegistry(); void testRemoveRegistry(); void testIniciarDaemon(); + void testColetaSoftware(); void cleanupTestCase(); }; diff --git a/cacicD/cacicD.pro b/cacicD/cacicD.pro index f52ef61..98d500d 100644 --- a/cacicD/cacicD.pro +++ b/cacicD/cacicD.pro @@ -36,3 +36,6 @@ HEADERS += \ cacicd.h include(../src/qtservice/src/qtservice.pri) + +INCLUDEPATH += ../src \ + ../src/crypto++/include/ diff --git a/cacicD/main.cpp b/cacicD/main.cpp index dc6550f..ab09bd1 100644 --- a/cacicD/main.cpp +++ b/cacicD/main.cpp @@ -2,7 +2,7 @@ #include #include #include -#include "../src/qtservice/src/qtservice.h" +#include int main(int argc, char **argv) { diff --git a/gercols/gercols.cpp b/gercols/gercols.cpp index ca94002..102065e 100644 --- a/gercols/gercols.cpp +++ b/gercols/gercols.cpp @@ -22,11 +22,9 @@ Gercols::Gercols(QObject *parent) oCacic.setJsonToFile(configTeste,"configReq.json"); /******************************************/ - getConfigJson(); qDebug() << "TESTE"; oColeta = new CColeta(); - oColeta->setColeta(configReq); -qDebug() << oColeta->getColeta(); + QObject::connect(this, SIGNAL(iniciaConfiguracao()), oColeta, SLOT(configuraColetas())); QObject::connect(this, SIGNAL(iniciaColeta()), oColeta, SLOT(run())); @@ -49,15 +47,9 @@ void Gercols::run() //salva coleta em json - qDebug() << oColeta->getColeta(); + qDebug() << oColeta->toJsonObject(); //salva json em arquivo - oCacic.setJsonToFile(oColeta->getColeta(), "coleta.json"); + oCacic.setJsonToFile(oColeta->toJsonObject(), "coleta.json"); //emite sinal "finished" pra finalizar a aplicação emit finished(); } - -bool Gercols::getConfigJson() -{ - configReq = oCacic.getJsonFromFile("configReq.json"); - oCacic.deleteFile("configReq.json"); -} diff --git a/gercols/gercols.h b/gercols/gercols.h index c6e25b5..a6fa6bd 100644 --- a/gercols/gercols.h +++ b/gercols/gercols.h @@ -13,8 +13,6 @@ private: CColeta *oColeta; QJsonObject configReq; - bool getConfigJson(); - public: explicit Gercols(QObject *parent = 0); diff --git a/gercols/gercols.pro b/gercols/gercols.pro index 9bf8727..59ef618 100644 --- a/gercols/gercols.pro +++ b/gercols/gercols.pro @@ -25,6 +25,7 @@ SOURCES += \ main.cpp \ ../src/ccacic.cpp \ ../src/cacic_computer.cpp \ + ../src/cacic_software.cpp \ ../src/operatingsystem.cpp \ ../src/ccoleta.cpp \ ./gercols.cpp @@ -33,6 +34,7 @@ SOURCES += \ HEADERS += \ ../src/ccacic.h \ ../src/cacic_computer.h \ + ../src/cacic_software.h \ ../src/operatingsystem.h \ ../src/console.h \ ../src/ccoleta.h \ diff --git a/install-cacic/install-cacic.pro.user b/install-cacic/install-cacic.pro.user index eb4e3b1..2341c8d 100644 --- a/install-cacic/install-cacic.pro.user +++ b/install-cacic/install-cacic.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/src/cacic_software.cpp b/src/cacic_software.cpp index 3db4818..c411e72 100644 --- a/src/cacic_software.cpp +++ b/src/cacic_software.cpp @@ -3,3 +3,41 @@ cacic_software::cacic_software() { } + +void cacic_software::iniciaColeta() +{ +#ifdef Q_OS_WIN + this->coletaSoftware = coletaWin(); +#else + this->coletaSoftware = coletaLinux(); +#endif +} + +QJsonObject cacic_software::coletaWin() +{ + QJsonObject softwaresJson; + QSettings softwares("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", QSettings::NativeFormat); +// qDebug() << softwares.childGroups(); + foreach (QString group, softwares.childGroups()){ + QVariantMap software; + softwares.beginGroup(group); + software["DisplayName"] = softwares.value("DisplayName"); + software["Publisher"] = softwares.value("Publisher"); + software["InstallLocation"] = softwares.value("InstallLocation"); + software["InstallDate"] = softwares.value("InstallDate"); + software["URLInfoAbout"] = softwares.value("URLInfoAbout"); + softwares.endGroup(); + softwaresJson[group] = QJsonObject::fromVariantMap(software); + } +// qDebug() << softwaresJson; + return softwaresJson; +} + +void cacic_software::coletaLinux() +{ + +} +QJsonObject cacic_software::toJsonObject() +{ + return coletaSoftware; +} diff --git a/src/cacic_software.h b/src/cacic_software.h index 5bbad10..7144e6c 100644 --- a/src/cacic_software.h +++ b/src/cacic_software.h @@ -1,10 +1,20 @@ #ifndef CACIC_SOFTWARE_H #define CACIC_SOFTWARE_H - +#include +#include class cacic_software { public: cacic_software(); + void iniciaColeta(); + QJsonObject toJsonObject(); + +private: + QJsonObject coletaWin(); + void coletaLinux(); + + CCacic oCacic; + QJsonObject coletaSoftware; }; #endif // CACIC_SOFTWARE_H diff --git a/src/ccacic.cpp b/src/ccacic.cpp index 34227b6..ddf1e89 100644 --- a/src/ccacic.cpp +++ b/src/ccacic.cpp @@ -1,7 +1,6 @@ #include "ccacic.h" -CCacic::CCacic(QObject *parent) : - QObject(parent) +CCacic::CCacic() { } /* getValueFromFile diff --git a/src/ccacic.h b/src/ccacic.h index 7f89d50..c272a72 100644 --- a/src/ccacic.h +++ b/src/ccacic.h @@ -19,11 +19,10 @@ //#include //#include -class CCacic : public QObject +class CCacic { - Q_OBJECT public: - explicit CCacic(QObject *parent = 0); + CCacic(); QString getValueFromFile(QString sectionName, QString keyName, QString filePath); void setValueToFile(QString sectionName, QString keyName, QString value, QString filePath); QString getValueFromTags(QString fullString, QString tag, QString tagType = "[]"); @@ -69,10 +68,6 @@ private: QString chksisInfFilePath; QString chaveCrypt; -signals: - -public slots: - }; #endif // CCACIC_H diff --git a/src/ccoleta.cpp b/src/ccoleta.cpp index 6c98268..908fab2 100644 --- a/src/ccoleta.cpp +++ b/src/ccoleta.cpp @@ -5,89 +5,49 @@ CColeta::CColeta(QObject *parent) } -void CColeta::coletaComputer() -{ - qDebug() << "coletaComputer() executado"; - QJsonObject coletaComputer = coleta["computer"].toObject(); - if( coletaComputer.contains("operating_system") ) - emit beginOperatingSystem(); - if( coletaComputer.contains("user") ) - emit beginUser(); - -} - void CColeta::coletaHardware() { qDebug() << "coletaHardware() executado"; - QJsonObject coletaHardware = coleta["hardware"].toObject(); -} - -void CColeta::coletaNetworkInterfaces() -{ - qDebug() << "coletaOperatingSystem() executado"; - -// QJsonObject coletaComputer = coleta["computer"].toObject(); -// coletaComputer["network_interfaces"] = QJsonValue::fromVariant(QString(oComputer.getNetworkInterface())); - -// coleta["computer"] = coletaComputer; +// oHardware.iniciaColeta(); } -void CColeta::coletaOperatingSystem() -{ - qDebug() << "coletaOperatingSystem() executado"; - - QJsonObject coletaComputer = coleta["computer"].toObject(); - coletaComputer["operating_system"] = QJsonValue::fromVariant(QString(oComputer.getOs().getNomeOs())); - - coleta["computer"] = coletaComputer; -} void CColeta::coletaSoftware() { qDebug() << "coletaSoftware() executado"; - QJsonObject coletaSoftware = coleta["software"].toObject(); -} - -void CColeta::coletaUser() -{ - qDebug() << "coletauser() executado"; - - QJsonObject coletaComputer = coleta["computer"].toObject(); - coletaComputer["user"] = QJsonValue::fromVariant(QString::fromStdString(oComputer.getUser())); - - coleta["computer"] = coletaComputer; + oSoftware.iniciaColeta(); } void CColeta::configuraColetas(){ - QObject::connect(this, SIGNAL(beginComputer()), this, SLOT(coletaComputer())); - QObject::connect(this, SIGNAL(beginNetworkInterfaces()), this, SLOT(coletaNetworkInterfaces())); - QObject::connect(this, SIGNAL(beginOperatingSystem()), this, SLOT(coletaOperatingSystem())); - QObject::connect(this, SIGNAL(beginUser()), this, SLOT(coletaUser())); QObject::connect(this, SIGNAL(beginHardware()), this, SLOT(coletaHardware())); QObject::connect(this, SIGNAL(beginSoftware()), this, SLOT(coletaSoftware())); } -QJsonObject CColeta::getColeta() const +CACIC_Computer CColeta::getOComputer() const { - return coleta; + return oComputer; } -CACIC_Computer CColeta::getOComputer() const +cacic_software CColeta::getOSoftware() const { - return oComputer; + return oSoftware; } void CColeta::run() { - if( coleta.contains("computer") ) - emit beginComputer(); + QJsonObject coleta = oCacic.getJsonFromFile("configReq.json"); + if( coleta.contains("hardware") ) emit beginHardware(); if ( coleta.contains("software") ) emit beginSoftware(); + } -void CColeta::setColeta(QJsonObject config) +QJsonObject CColeta::toJsonObject() { - this->coleta = config; + QJsonObject coletaJson; + coletaJson["computer"] = oComputer.toJsonObject(); + coletaJson["software"] = oSoftware.toJsonObject(); + return coletaJson; } diff --git a/src/ccoleta.h b/src/ccoleta.h index afcc1f4..594f7dc 100644 --- a/src/ccoleta.h +++ b/src/ccoleta.h @@ -4,8 +4,9 @@ #include #include #include +#include #include -#include "cacic_computer.h" +#include class CColeta : public QObject @@ -13,24 +14,21 @@ class CColeta : public QObject Q_OBJECT private: - QJsonObject coleta; - + CCacic oCacic; CACIC_Computer oComputer; + cacic_software oSoftware; public: explicit CColeta(QObject *parent = 0); - QJsonObject getColeta() const; CACIC_Computer getOComputer() const; - void setColeta(QJsonObject config); + cacic_software getOSoftware() const; + + QJsonObject toJsonObject(); public slots: - void coletaComputer(); void coletaHardware(); - void coletaNetworkInterfaces(); - void coletaOperatingSystem(); void coletaSoftware(); - void coletaUser(); void configuraColetas(); void run(); -- libgit2 0.21.2