From 1e77e8a2c914fb54d76b7cbc703c055cb082630b Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 29 Jul 2017 20:23:16 +1000 Subject: [PATCH] Fixing bare-metal compilation. --- client/src/basic/BasicClient.h | 6 ++++-- .../test/bare_metal_app/test_client_build/stub.cpp | 12 ++++++++++++ .../include/mqttsn/protocol/message/SubUnsubBase.h | 3 +++ .../include/mqttsn/protocol/message/WilltopicBase.h | 3 +++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/client/src/basic/BasicClient.h b/client/src/basic/BasicClient.h index 8d8cdc9..ec03d77 100644 --- a/client/src/basic/BasicClient.h +++ b/client/src/basic/BasicClient.h @@ -320,7 +320,7 @@ class BasicClient typedef mqttsn::protocol::message::Willmsgresp WillmsgrespMsg; BasicClient() = default; - virtual ~BasicClient() = default; + ~BasicClient() noexcept = default; typedef typename Message::ReadIterator ReadIterator; @@ -2474,7 +2474,9 @@ class BasicClient ++op->m_attempt; PingreqMsg msg; - msg.field_clientId().value() = m_clientId; + auto& clientIdStorage = msg.field_clientId().value(); + using ClientIdStorage = typename std::decay::type; + clientIdStorage = ClientIdStorage(m_clientId.c_str(), m_clientId.size()); sendMessage(msg); return true; } diff --git a/client/test/bare_metal_app/test_client_build/stub.cpp b/client/test/bare_metal_app/test_client_build/stub.cpp index 8231813..050cecd 100644 --- a/client/test/bare_metal_app/test_client_build/stub.cpp +++ b/client/test/bare_metal_app/test_client_build/stub.cpp @@ -75,6 +75,18 @@ void* memcpy( void* dest, const void* src, std::size_t count ) return nullptr; } +extern "C" +int memcmp(const void*, const void*, std::size_t) +{ + return 0; +} + +extern "C" +std::size_t strlen(const char*) +{ + return 0U; +} + extern "C" void __aeabi_uidiv() { diff --git a/protocol/include/mqttsn/protocol/message/SubUnsubBase.h b/protocol/include/mqttsn/protocol/message/SubUnsubBase.h index 8e87443..e48b452 100644 --- a/protocol/include/mqttsn/protocol/message/SubUnsubBase.h +++ b/protocol/include/mqttsn/protocol/message/SubUnsubBase.h @@ -145,6 +145,9 @@ class SubUnsubBase : public return refreshed; } + +protected: + ~SubUnsubBase() noexcept = default; }; } // namespace message diff --git a/protocol/include/mqttsn/protocol/message/WilltopicBase.h b/protocol/include/mqttsn/protocol/message/WilltopicBase.h index 8db681e..b31b290 100644 --- a/protocol/include/mqttsn/protocol/message/WilltopicBase.h +++ b/protocol/include/mqttsn/protocol/message/WilltopicBase.h @@ -123,6 +123,9 @@ class WilltopicBase : public return refreshed; } + +protected: + ~WilltopicBase() noexcept = default; }; } // namespace message