From 7d118cf47a4d892988b5538effc4ad588dfc595b Mon Sep 17 00:00:00 2001
From: aduffizi <alessandro.duffizi@lnf.infn.it>
Date: Mon, 17 Jun 2019 16:53:03 +0200
Subject: [PATCH] Windows compliant

---
 chaos_micro_unit_toolkit/CMakeLists.txt              | 12 +++++++++++-
 .../connection_adapter/AbstractConnectionAdapter.cpp |  6 +++---
 .../http/HTTPConnectionAdapter.cpp                   |  2 +-
 .../connection/unit_proxy/AbstractUnitProxy.cpp      |  2 +-
 .../unit_proxy/UnitProxyHandlerWrapper.cpp           |  3 +++
 .../raw_driver/ExternalDriverHandlerWrapper.cpp      |  4 ++--
 6 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/chaos_micro_unit_toolkit/CMakeLists.txt b/chaos_micro_unit_toolkit/CMakeLists.txt
index 37f34fb46..b0faf4c48 100644
--- a/chaos_micro_unit_toolkit/CMakeLists.txt
+++ b/chaos_micro_unit_toolkit/CMakeLists.txt
@@ -2,7 +2,11 @@ cmake_minimum_required(VERSION 2.8)
 
 project(chaos_micro_unit_toolkit)
 
-INCLUDE_DIRECTORIES( ../)
+if(WIN32)
+include_directories(${ALL_WINDOWS_INCLUDE_DIR})
+else()
+include_directories(../)
+endif(WIN32)
 
 SET(source ChaosMicroUnitToolkit.cpp)
 SET(source ${source} data/DataPack.cpp)
@@ -46,7 +50,13 @@ ADD_LIBRARY(${PROJECT_NAME} SHARED ${source})
 set_target_properties(${PROJECT_NAME} PROPERTIES VERSION 1.0.0 SOVERSION 1)
 ENDIF ()
 
+
+
+if(WIN32)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ALL_WINDOWS_LIBPATH} )
+else()
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} pthread)
+endif()
 
 FILE(GLOB files "*.h")
 INSTALL(FILES ${files} DESTINATION include/chaos_micro_unit_toolkit)
diff --git a/chaos_micro_unit_toolkit/connection/connection_adapter/AbstractConnectionAdapter.cpp b/chaos_micro_unit_toolkit/connection/connection_adapter/AbstractConnectionAdapter.cpp
index 10688c13b..22f99aa0b 100644
--- a/chaos_micro_unit_toolkit/connection/connection_adapter/AbstractConnectionAdapter.cpp
+++ b/chaos_micro_unit_toolkit/connection/connection_adapter/AbstractConnectionAdapter.cpp
@@ -33,7 +33,7 @@ adapter_request_id(0){}
 
 AbstractConnectionAdapter::~AbstractConnectionAdapter() {}
 
-void AbstractConnectionAdapter::handleReceivedMessage(data::CDWShrdPtr& received_message) {
+void AbstractConnectionAdapter::handleReceivedMessage(CDWShrdPtr& received_message) {
     //checn whenever the message is a response or spontaneus message
     if(received_message->hasKey("etx_request_id") &&
        received_message->isInt32Value("etx_request_id")) {
@@ -44,14 +44,14 @@ void AbstractConnectionAdapter::handleReceivedMessage(data::CDWShrdPtr& received
     }
 }
 
-int AbstractConnectionAdapter::sendMessage(data::CDWUniquePtr& message) {
+int AbstractConnectionAdapter::sendMessage(CDWUniquePtr& message) {
     if(connection_status != ConnectionStateAccepted){
         return -1;
     }
     return sendRawMessage(message);
 }
 
-int AbstractConnectionAdapter::sendRequest(data::CDWUniquePtr& message,
+int AbstractConnectionAdapter::sendRequest(CDWUniquePtr& message,
                                            uint32_t& request_id) {
     request_id = adapter_request_id++;
     message->addInt32Value("ext_request_id", request_id);
diff --git a/chaos_micro_unit_toolkit/connection/connection_adapter/http/HTTPConnectionAdapter.cpp b/chaos_micro_unit_toolkit/connection/connection_adapter/http/HTTPConnectionAdapter.cpp
index 144364d01..8a34466b1 100644
--- a/chaos_micro_unit_toolkit/connection/connection_adapter/http/HTTPConnectionAdapter.cpp
+++ b/chaos_micro_unit_toolkit/connection/connection_adapter/http/HTTPConnectionAdapter.cpp
@@ -26,7 +26,7 @@
 using namespace chaos::micro_unit_toolkit::data;
 using namespace chaos::micro_unit_toolkit::connection::connection_adapter::http;
 
-const chaos::micro_unit_toolkit::connection::ConnectionType HTTPConnectionAdapter::connection_type = ConnectionTypeHTTP;
+const chaos::micro_unit_toolkit::connection::ConnectionType HTTPConnectionAdapter::connection_type = chaos::micro_unit_toolkit::connection::ConnectionType::ConnectionTypeHTTP;
 
 HTTPConnectionAdapter::HTTPConnectionAdapter(const std::string& endpoint,
                                          const std::string& connection_header):
diff --git a/chaos_micro_unit_toolkit/connection/unit_proxy/AbstractUnitProxy.cpp b/chaos_micro_unit_toolkit/connection/unit_proxy/AbstractUnitProxy.cpp
index 15116c53e..68f5c1188 100644
--- a/chaos_micro_unit_toolkit/connection/unit_proxy/AbstractUnitProxy.cpp
+++ b/chaos_micro_unit_toolkit/connection/unit_proxy/AbstractUnitProxy.cpp
@@ -53,7 +53,7 @@ std::string RemoteMessage::getErrorDomain() const {
 }
 
 AbstractUnitProxy::AbstractUnitProxy(const std::string& _authorization_key,
-                                     ChaosUniquePtr<connection_adapter::AbstractConnectionAdapter>& _protocol_adapter):
+                                     ChaosUniquePtr<chaos::micro_unit_toolkit::connection::connection_adapter::AbstractConnectionAdapter>& _protocol_adapter):
 connection_adapter(MOVE(_protocol_adapter)),
 unit_state(UnitStateUnknown),
 authorization_key(_authorization_key){assert(connection_adapter.get());}
diff --git a/chaos_micro_unit_toolkit/connection/unit_proxy/UnitProxyHandlerWrapper.cpp b/chaos_micro_unit_toolkit/connection/unit_proxy/UnitProxyHandlerWrapper.cpp
index 73bfa4587..2fc3d365e 100644
--- a/chaos_micro_unit_toolkit/connection/unit_proxy/UnitProxyHandlerWrapper.cpp
+++ b/chaos_micro_unit_toolkit/connection/unit_proxy/UnitProxyHandlerWrapper.cpp
@@ -21,7 +21,10 @@
 
 #include <chaos_micro_unit_toolkit/connection/unit_proxy/UnitProxyHandlerWrapper.h>
 #include <iostream>
+#ifndef _WIN32
 #include <unistd.h>
+#endif
+#include <chaos/cu_toolkit/windowsCompliant.h>
 #include <cassert>
 
 using namespace chaos::micro_unit_toolkit::data;
diff --git a/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/ExternalDriverHandlerWrapper.cpp b/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/ExternalDriverHandlerWrapper.cpp
index 1ce4dc611..89edf915c 100644
--- a/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/ExternalDriverHandlerWrapper.cpp
+++ b/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/ExternalDriverHandlerWrapper.cpp
@@ -35,7 +35,7 @@ using namespace chaos::micro_unit_toolkit::connection::unit_proxy::raw_driver;
 #define DEINIT_OPCODE           "deinit"
 #define CONFIGURATION_STATE     "configuration_state"
 
-ExternalDriverHandlerWrapper::ExternalDriverHandlerWrapper(UnitProxyHandler handler,
+ExternalDriverHandlerWrapper::ExternalDriverHandlerWrapper(chaos::micro_unit_toolkit::connection::unit_proxy::UnitProxyHandler handler,
                                                            void *user_data,
                                                            ChaosUniquePtr<ExternalDriverUnitProxy>& _u_proxy):
 UnitProxyHandlerWrapper(handler,
@@ -51,7 +51,7 @@ authorized(false){}
 
 ExternalDriverHandlerWrapper::~ExternalDriverHandlerWrapper(){}
 
-int ExternalDriverHandlerWrapper::sendMessage(data::CDWUniquePtr& message_data) {
+int ExternalDriverHandlerWrapper::sendMessage(CDWUniquePtr& message_data) {
     ExternalDriverUnitProxy * const rd = static_cast<ExternalDriverUnitProxy*>(base_unit.get());
     return rd->sendMessage(message_data);
 }
-- 
GitLab