From aa170084d63dfd6cffbd54d05c89a811bea81c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93mar=20H=C3=B6gni=20Gu=C3=B0marsson?= Date: Thu, 26 Oct 2023 13:00:30 +0000 Subject: [PATCH] Everything working under clang --- src/deserialize.cxx | 2 +- src/modbus.cxx | 5 ++++- src/packet.cxx | 3 ++- src/serialize.cxx | 2 +- src/tcp.cxx | 2 +- tests/helpers/mbpoll_request_encoding_sniffer.cpp | 1 + tests/serialization.cxx | 3 +++ 7 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/deserialize.cxx b/src/deserialize.cxx index c1f9833..411a754 100644 --- a/src/deserialize.cxx +++ b/src/deserialize.cxx @@ -8,7 +8,7 @@ export module modbus:deserialize; import :function; import :error; -namespace modbus::impl { +export namespace modbus::impl { /// Check if length is sufficient. [[nodiscard]] inline auto check_length(std::size_t actual, std::size_t needed) -> std::error_code { diff --git a/src/modbus.cxx b/src/modbus.cxx index 74bfa51..a3608f6 100644 --- a/src/modbus.cxx +++ b/src/modbus.cxx @@ -4,5 +4,8 @@ export import :client; export import :error; export import :packet; export import :deserialize; +export import :serialize; export import :default_handler; -export import :server; \ No newline at end of file +export import :server; +export import :tcp; +export import :function; \ No newline at end of file diff --git a/src/packet.cxx b/src/packet.cxx index 82c0b33..e47e60d 100644 --- a/src/packet.cxx +++ b/src/packet.cxx @@ -32,8 +32,9 @@ export module modbus:packet; import :deserialize; import :serialize; import :function; +import :tcp; -namespace modbus { +export namespace modbus { namespace request { struct read_coils; struct read_discrete_inputs; diff --git a/src/serialize.cxx b/src/serialize.cxx index a418083..a156baa 100644 --- a/src/serialize.cxx +++ b/src/serialize.cxx @@ -7,7 +7,7 @@ module; export module modbus:serialize; import :function; -namespace modbus::impl { +export namespace modbus::impl { /// Convert a boolean to a uint16 Modbus representation. inline auto bool_to_uint16(bool value) -> std::uint16_t { diff --git a/src/tcp.cxx b/src/tcp.cxx index 8b8371b..25934d1 100644 --- a/src/tcp.cxx +++ b/src/tcp.cxx @@ -11,7 +11,7 @@ namespace modbus { /// Modbus/TCP application protocol (MBAP) header. #pragma pack(push, 1) -struct tcp_mbap { +export struct tcp_mbap { std::uint16_t transaction; std::uint16_t protocol = 0; // 0 for modbus. std::uint16_t length; diff --git a/tests/helpers/mbpoll_request_encoding_sniffer.cpp b/tests/helpers/mbpoll_request_encoding_sniffer.cpp index 69c056f..1200c3b 100644 --- a/tests/helpers/mbpoll_request_encoding_sniffer.cpp +++ b/tests/helpers/mbpoll_request_encoding_sniffer.cpp @@ -3,6 +3,7 @@ // Used to generate test data from known working modbus clients // fe mbpoll +#include #include #include diff --git a/tests/serialization.cxx b/tests/serialization.cxx index c8cbd2c..356b5ae 100644 --- a/tests/serialization.cxx +++ b/tests/serialization.cxx @@ -1,6 +1,9 @@ #include #include +#include + +import modbus; void print_bytes(std::span data) { for (auto& k : data) {