diff --git a/Modules/CppRestSdkQt/files.cmake b/Modules/CppRestSdkQt/files.cmake index 2b0784db4b..a61e309ead 100644 --- a/Modules/CppRestSdkQt/files.cmake +++ b/Modules/CppRestSdkQt/files.cmake @@ -1,11 +1,11 @@ file(GLOB_RECURSE H_FILES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/include/*") set(CPP_FILES mitkRESTManagerQt.cpp mitkCppRestSdkQtActivator.cpp -mitkRESTServerMicroServiceQt.cpp +mitkRESTServerQt.cpp ) set(MOC_H_FILES include/mitkRESTManagerQt.h -include/mitkRESTServerMicroServiceQt.h) \ No newline at end of file +include/mitkRESTServerQt.h) \ No newline at end of file diff --git a/Modules/CppRestSdkQt/include/mitkRESTManagerQt.h b/Modules/CppRestSdkQt/include/mitkRESTManagerQt.h index 89b7a1bef1..9da1b27b03 100644 --- a/Modules/CppRestSdkQt/include/mitkRESTManagerQt.h +++ b/Modules/CppRestSdkQt/include/mitkRESTManagerQt.h @@ -1,61 +1,61 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #ifndef mitkRESTManagerQt_h #define mitkRESTManagerQt_h #include #include #include #include #include -#include +#include #include namespace mitk { class MITKCPPRESTSDKQT_EXPORT RESTManagerQt : public QObject, public RESTManager { Q_OBJECT public: RESTManagerQt(); ~RESTManagerQt() override; /** * @brief starts listening for requests if there isn't another observer listening and the port is free * * @param uri defines the URI for which incoming requests should be send to the observer * @param observer the observer which handles the incoming requests */ void ReceiveRequest(const web::uri &uri, IRESTObserver *observer) override; /** * @brief Handles the deletion of an observer for all or a specific uri * * @param observer the observer which shouldn't receive requests anymore * @param uri the uri for which the observer doesn't handle requests anymore (optional) */ void HandleDeleteObserver(IRESTObserver *observer, const web::uri &uri) override; private: std::map m_ServerThreadMap; // Map with threads for servers }; } // namespace mitk #endif // !mitkRESTManager_h \ No newline at end of file diff --git a/Modules/CppRestSdkQt/include/mitkRESTServerMicroServiceQt.h b/Modules/CppRestSdkQt/include/mitkRESTServerQt.h similarity index 80% rename from Modules/CppRestSdkQt/include/mitkRESTServerMicroServiceQt.h rename to Modules/CppRestSdkQt/include/mitkRESTServerQt.h index 475166d2b6..c1d2061724 100644 --- a/Modules/CppRestSdkQt/include/mitkRESTServerMicroServiceQt.h +++ b/Modules/CppRestSdkQt/include/mitkRESTServerQt.h @@ -1,51 +1,51 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ -#ifndef mitkRESTServerMicroServiceQt_h -#define mitkRESTServerMicroServiceQt_h +#ifndef mitkRESTServerQt_h +#define mitkRESTServerQt_h #include #include namespace mitk { - class RESTServerMicroServiceQt : public QObject, public RESTServer + class RESTServerQt : public QObject, public RESTServer { Q_OBJECT public: /** * @brief Creates an server listening to the given URI * * @param uri the URI at which the server is listening for requests */ - RESTServerMicroServiceQt(const web::uri &uri); - ~RESTServerMicroServiceQt(); + RESTServerQt(const web::uri &uri); + ~RESTServerQt(); public slots: /** * @brief Opens the listener and starts the listening process */ void OpenListener(); /** * @brief Closes the listener and stops the listening process */ void CloseListener(); }; } // namespace mitk #endif \ No newline at end of file diff --git a/Modules/CppRestSdkQt/src/mitkRESTManagerQt.cpp b/Modules/CppRestSdkQt/src/mitkRESTManagerQt.cpp index 5441cbd4f2..85467bd798 100644 --- a/Modules/CppRestSdkQt/src/mitkRESTManagerQt.cpp +++ b/Modules/CppRestSdkQt/src/mitkRESTManagerQt.cpp @@ -1,79 +1,79 @@ #include "mitkRESTManagerQt.h" #include #include mitk::RESTManagerQt::RESTManagerQt() {} mitk::RESTManagerQt::~RESTManagerQt() {} void mitk::RESTManagerQt::ReceiveRequest(const web::uri &uri, mitk::IRESTObserver *observer) { - // New instance of RESTServerMicroservice in m_ServerMap, key is port of the request + // New instance of RESTServer in m_ServerMap, key is port of the request int port = uri.port(); // Checking if port is free to add a new Server if (m_ServerMap.count(port) == 0) { mitk::RESTManager::AddObserver(uri, observer); // creating server instance - auto server = new RESTServerMicroServiceQt(uri.authority()); + auto server = new RESTServerQt(uri.authority()); // add reference to server instance to map m_ServerMap[port] = server; // Move server to seperate Thread and create connections between threads m_ServerThreadMap[port] = new QThread; server->moveToThread(m_ServerThreadMap[port]); connect(m_ServerThreadMap[port], &QThread::finished, server, &QObject::deleteLater); // starting Server m_ServerThreadMap[port]->start(); QMetaObject::invokeMethod(server, "OpenListener"); MITK_INFO << "new server " << mitk::RESTUtil::convertToUtf8(uri.authority().to_string()) << " at port " << port; } // If there is already a server under this port else { mitk::RESTManager::ServerUnderPort(uri, observer); } } void mitk::RESTManagerQt::HandleDeleteObserver(IRESTObserver *observer, const web::uri &uri = L"") { for (auto it = m_Observers.begin(); it != m_Observers.end();) { mitk::IRESTObserver *obsMap = it->second; // Check wether observer is at this place in map if (obsMap == observer) { // Check wether it is the right uri to be deleted if (uri.is_empty() || it->first.second == uri.path()) { int port = it->first.first; bool noObserverForPort = mitk::RESTManager::DeleteObserver(it, uri); if (noObserverForPort) { // there isn't an observer at this port, delete m_ServerMap entry for this port // close listener - QMetaObject::invokeMethod(static_cast(m_ServerMap[port]), "CloseListener"); + QMetaObject::invokeMethod(static_cast(m_ServerMap[port]), "CloseListener"); // end thread m_ServerThreadMap[port]->quit(); m_ServerThreadMap[port]->wait(); // delete server from map m_ServerMap.erase(port); } } else { ++it; } } else { ++it; } } } diff --git a/Modules/CppRestSdkQt/src/mitkRESTServerMicroServiceQt.cpp b/Modules/CppRestSdkQt/src/mitkRESTServerMicroServiceQt.cpp deleted file mode 100644 index 1cab0425a2..0000000000 --- a/Modules/CppRestSdkQt/src/mitkRESTServerMicroServiceQt.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "mitkRESTServerMicroServiceQt.h" - -mitk::RESTServerMicroServiceQt::RESTServerMicroServiceQt(const web::uri &uri) : RESTServer(uri) -{ -} - -mitk::RESTServerMicroServiceQt::~RESTServerMicroServiceQt() {} - -void mitk::RESTServerMicroServiceQt::OpenListener() -{ - mitk::RESTServer::OpenListener(); -} - -void mitk::RESTServerMicroServiceQt::CloseListener() -{ - mitk::RESTServer::CloseListener(); -} diff --git a/Modules/CppRestSdkQt/src/mitkRESTServerQt.cpp b/Modules/CppRestSdkQt/src/mitkRESTServerQt.cpp new file mode 100644 index 0000000000..ca44ed4256 --- /dev/null +++ b/Modules/CppRestSdkQt/src/mitkRESTServerQt.cpp @@ -0,0 +1,17 @@ +#include "mitkRESTServerQt.h" + +mitk::RESTServerQt::RESTServerQt(const web::uri &uri) : RESTServer(uri) +{ +} + +mitk::RESTServerQt::~RESTServerQt() {} + +void mitk::RESTServerQt::OpenListener() +{ + mitk::RESTServer::OpenListener(); +} + +void mitk::RESTServerQt::CloseListener() +{ + mitk::RESTServer::CloseListener(); +}