From e5ab4042198e49188caaebd73b413c879e799d66 Mon Sep 17 00:00:00 2001
From: Patzke <cpatzke@win.desy.de>
Date: Tue, 23 Jan 2018 15:48:08 +0100
Subject: [PATCH] Fixed windows build

---
 common/cpp/include/common/networking.h                       | 4 +---
 common/cpp/include/system_wrappers/system_io.h               | 5 +++++
 .../producer/dummy-data-producer/dummy_data_producer.cpp     | 1 +
 producer/api/include/producer/producer.h                     | 1 +
 producer/api/src/producer_impl.cpp                           | 2 --
 producer/api/unittests/test_producer_impl.cpp                | 1 -
 receiver/src/network_producer_peer.cpp                       | 4 ++--
 receiver/src/network_producer_peer_handlers.cpp              | 3 ---
 receiver/src/receiver.cpp                                    | 2 --
 receiver/src/receiver.h                                      | 1 -
 10 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/common/cpp/include/common/networking.h b/common/cpp/include/common/networking.h
index 6e8a6d630..6ea824a5f 100644
--- a/common/cpp/include/common/networking.h
+++ b/common/cpp/include/common/networking.h
@@ -28,14 +28,12 @@ enum NetworkErrorCode : uint16_t {
 struct GenericNetworkRequest {
     OpCode              op_code;
     NetworkRequestId    request_id;
-    char                data[];
 };
 
 struct GenericNetworkResponse {
     OpCode              op_code;
     NetworkRequestId    request_id;
     NetworkErrorCode    error_code;
-    char                data[];
 };
 
 struct SendDataRequest : GenericNetworkRequest {
@@ -48,7 +46,7 @@ struct SendDataRequest : GenericNetworkRequest {
  * - ::NET_ERR__FILENAME_ALREADY_IN_USE
  * - ::NET_ERR__ALLOCATE_STORAGE_FAILED
  */
-struct SendDataResponse : GenericNetworkResponse {
+struct SendDataResponse :  GenericNetworkResponse {
 };
 /** @} */
 
diff --git a/common/cpp/include/system_wrappers/system_io.h b/common/cpp/include/system_wrappers/system_io.h
index 51a55eb03..da12b4aba 100644
--- a/common/cpp/include/system_wrappers/system_io.h
+++ b/common/cpp/include/system_wrappers/system_io.h
@@ -3,6 +3,11 @@
 
 #include "io.h"
 
+#if defined(_MSC_VER)
+#include <BaseTsd.h>
+typedef SSIZE_T ssize_t;
+#endif
+
 namespace hidra2 {
 
 class SystemIO final : public IO {
diff --git a/examples/producer/dummy-data-producer/dummy_data_producer.cpp b/examples/producer/dummy-data-producer/dummy_data_producer.cpp
index 5edf2c634..ac3b80483 100644
--- a/examples/producer/dummy-data-producer/dummy_data_producer.cpp
+++ b/examples/producer/dummy-data-producer/dummy_data_producer.cpp
@@ -1,6 +1,7 @@
 
 #include <producer/producer.h>
 #include <iostream>
+#include <tuple>
 
 typedef std::tuple<std::string, size_t, uint64_t> ArgumentTuple;
 
diff --git a/producer/api/include/producer/producer.h b/producer/api/include/producer/producer.h
index 9e010db09..456ced8d1 100644
--- a/producer/api/include/producer/producer.h
+++ b/producer/api/include/producer/producer.h
@@ -2,6 +2,7 @@
 #define HIDRA2_PRODUCER__PRODUCER_H
 
 #include <memory>
+#include <string>
 
 namespace hidra2 {
 enum class ProducerError {
diff --git a/producer/api/src/producer_impl.cpp b/producer/api/src/producer_impl.cpp
index 819f99be1..9001457e1 100644
--- a/producer/api/src/producer_impl.cpp
+++ b/producer/api/src/producer_impl.cpp
@@ -1,5 +1,3 @@
-#include <sys/socket.h>
-#include <netinet/in.h>
 #include <iostream>
 #include <cstring>
 #include "producer_impl.h"
diff --git a/producer/api/unittests/test_producer_impl.cpp b/producer/api/unittests/test_producer_impl.cpp
index 2f9a93c7a..b7377370b 100644
--- a/producer/api/unittests/test_producer_impl.cpp
+++ b/producer/api/unittests/test_producer_impl.cpp
@@ -1,6 +1,5 @@
 #include <gtest/gtest.h>
 #include <gmock/gmock.h>
-#include <netinet/in.h>
 #include "../src/producer_impl.h"
 #include "../../../common/cpp/unittests/MockIO.h"
 
diff --git a/receiver/src/network_producer_peer.cpp b/receiver/src/network_producer_peer.cpp
index b249b76c7..f314ea188 100644
--- a/receiver/src/network_producer_peer.cpp
+++ b/receiver/src/network_producer_peer.cpp
@@ -49,7 +49,7 @@ void NetworkProducerPeer::internal_receiver_thread_() {
 
         if(err != IOErrors::kNoError) {
             if(err == IOErrors::kTimeout) {
-                pthread_yield();
+                std::this_thread::yield();
                 continue;
             }
 
@@ -112,7 +112,7 @@ size_t NetworkProducerPeer::handle_generic_request_(GenericNetworkRequest* reque
 
     IOErrors err;
     //receive the rest of the message
-    io->Receive(socket_fd_, request->data, handler_information.request_size - sizeof(GenericNetworkRequest), &err);
+    io->Receive(socket_fd_, request + sizeof(GenericNetworkRequest), handler_information.request_size - sizeof(GenericNetworkRequest), &err);
     if(err != IOErrors::kNoError) {
         std::cerr << "[" << connection_id() << "] NetworkProducerPeer::handle_generic_request_/receive_timeout: " <<
                   request->op_code << std::endl;
diff --git a/receiver/src/network_producer_peer_handlers.cpp b/receiver/src/network_producer_peer_handlers.cpp
index 579542a4f..24cbf36c1 100644
--- a/receiver/src/network_producer_peer_handlers.cpp
+++ b/receiver/src/network_producer_peer_handlers.cpp
@@ -1,10 +1,7 @@
 #include "network_producer_peer.h"
 #include "receiver.h"
-#include <sys/sendfile.h>
 #include <fcntl.h>
-#include <sys/mman.h>
 #include <cmath>
-#include <zconf.h>
 
 namespace hidra2 {
 
diff --git a/receiver/src/receiver.cpp b/receiver/src/receiver.cpp
index cd923cd35..d66a64c42 100644
--- a/receiver/src/receiver.cpp
+++ b/receiver/src/receiver.cpp
@@ -1,6 +1,4 @@
 #include <cstring>
-#include <unistd.h>
-#include <arpa/inet.h>
 #include <iostream>
 #include "receiver.h"
 #include "network_producer_peer.h"
diff --git a/receiver/src/receiver.h b/receiver/src/receiver.h
index e99546564..d2974cd2f 100644
--- a/receiver/src/receiver.h
+++ b/receiver/src/receiver.h
@@ -2,7 +2,6 @@
 #define HIDRA2_RECEIVER_H
 
 #include <string>
-#include <netinet/in.h>
 #include <thread>
 #include <system_wrappers/has_io.h>
 #include "network_producer_peer.h"
-- 
GitLab