From be6d704a1f9a9ea0729953f3675afb40093f7377 2017-07-10 15:49:16 From: mperrinel Date: 2017-07-10 15:49:16 Subject: [PATCH] Add execute skelleton Network --- diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 90fcc84..c96774f 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -24,7 +24,7 @@ INCLUDE_DIRECTORIES(${SCIQLOP-PLUGIN_INCLUDE_DIR}) # # Find Qt modules # -SCIQLOP_FIND_QT(Core) +SCIQLOP_FIND_QT(Core Network) # # Compile the library library @@ -39,7 +39,7 @@ ADD_LIBRARY(${SQPCORE_LIBRARY_NAME} ${MODULE_SOURCES}) set_property(TARGET ${SQPCORE_LIBRARY_NAME} PROPERTY CXX_STANDARD 14) set_property(TARGET ${SQPCORE_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) TARGET_LINK_LIBRARIES(${SQPCORE_LIBRARY_NAME}) -qt5_use_modules(${SQPCORE_LIBRARY_NAME} Core) +qt5_use_modules(${SQPCORE_LIBRARY_NAME} Core Network) INSTALL(TARGETS ${SQPCORE_LIBRARY_NAME} RUNTIME DESTINATION ${INSTALL_BINARY_DIR} diff --git a/core/include/Network/NetworkController.h b/core/include/Network/NetworkController.h index 0e36901..bbcb27e 100644 --- a/core/include/Network/NetworkController.h +++ b/core/include/Network/NetworkController.h @@ -8,6 +8,8 @@ Q_DECLARE_LOGGING_CATEGORY(LOG_NetworkController) +class QNetworkReply; + /** * @brief The NetworkController class aims to handle all network connection of SciQlop. */ @@ -16,10 +18,15 @@ class NetworkController : public QObject { public: explicit NetworkController(QObject *parent = 0); + void execute(QNetworkReply *reply); + void initialize(); void finalize(); +signals: + replyToRead(); + private: void waitForFinish(); diff --git a/core/src/Network/NetworkController.cpp b/core/src/Network/NetworkController.cpp index e015af4..aa25b51 100644 --- a/core/src/Network/NetworkController.cpp +++ b/core/src/Network/NetworkController.cpp @@ -1,18 +1,38 @@ #include "Network/NetworkController.h" #include +#include +#include #include Q_LOGGING_CATEGORY(LOG_NetworkController, "NetworkController") struct NetworkController::NetworkControllerPrivate { - explicit NetworkControllerPrivate(NetworkController *parent) : m_WorkingMutex{} {} + explicit NetworkControllerPrivate(NetworkController *parent) + : m_WorkingMutex{}, m_AccessManager{std::make_unique()} + { + } QMutex m_WorkingMutex; + + std::unique_ptr m_AccessManager{nullptr}; }; NetworkController::NetworkController(QObject *parent) : QObject(parent), impl{spimpl::make_unique_impl(this)} { + +} + +void NetworkController::execute(QNetworkReply *reply) +{ + auto replyReadyToRead =[reply, this] () { + auto content = reply->readAll(); + + emit this->replyToRead(); + }; + + connect(impl->m_Reply, &QNetworkReply::finished, this, replyReadyToRead); + connect(impl->m_Reply, &QNetworkReply::aboutToClose, this, replyReadyToRead); } void NetworkController::initialize()