From 861c94356f08a51b325d0bdddbe31fe8b53f4355 Mon Sep 17 00:00:00 2001 From: admercs Date: Mon, 4 Mar 2024 09:21:16 -0800 Subject: [PATCH] update linux build shared_ptr of abstract class --- MavLinkCom/include/AdHocConnection.hpp | 1 + MavLinkCom/include/MavLinkConnection.hpp | 1 + MavLinkCom/include/MavLinkDebugLog.hpp | 1 + MavLinkCom/include/MavLinkFtpClient.hpp | 1 + MavLinkCom/include/MavLinkLog.hpp | 1 + MavLinkCom/include/MavLinkMessageBase.hpp | 2 ++ MavLinkCom/include/MavLinkNode.hpp | 2 ++ MavLinkCom/include/MavLinkTcpServer.hpp | 1 + MavLinkCom/include/MavLinkVehicle.hpp | 1 + MavLinkCom/include/MavLinkVideoStream.hpp | 2 ++ MavLinkCom/include/UdpSocket.hpp | 1 + MavLinkCom/include/VehicleState.hpp | 1 + MavLinkCom/src/impl/AdHocConnectionImpl.cpp | 12 ++++-------- MavLinkCom/src/impl/MavLinkConnectionImpl.cpp | 12 ++++-------- MavLinkCom/src/impl/MavLinkNodeImpl.cpp | 1 - MavLinkCom/src/impl/MavLinkVehicleImpl.cpp | 1 - MavLinkCom/src/impl/MavLinkVideoStreamImpl.cpp | 1 - 17 files changed, 23 insertions(+), 19 deletions(-) diff --git a/MavLinkCom/include/AdHocConnection.hpp b/MavLinkCom/include/AdHocConnection.hpp index 92b46764..73dc6ef5 100644 --- a/MavLinkCom/include/AdHocConnection.hpp +++ b/MavLinkCom/include/AdHocConnection.hpp @@ -16,6 +16,7 @@ class Port; namespace mavlinkcom_impl { + class AdHocConnectionImpl; } diff --git a/MavLinkCom/include/MavLinkConnection.hpp b/MavLinkCom/include/MavLinkConnection.hpp index 9ad76376..7defedc4 100644 --- a/MavLinkCom/include/MavLinkConnection.hpp +++ b/MavLinkCom/include/MavLinkConnection.hpp @@ -21,6 +21,7 @@ class Port; namespace mavlinkcom_impl { + class MavLinkConnectionImpl; class MavLinkTcpServerImpl; class MavLinkNodeImpl; diff --git a/MavLinkCom/include/MavLinkDebugLog.hpp b/MavLinkCom/include/MavLinkDebugLog.hpp index eebd6c8f..c220c0c1 100644 --- a/MavLinkCom/include/MavLinkDebugLog.hpp +++ b/MavLinkCom/include/MavLinkDebugLog.hpp @@ -8,6 +8,7 @@ #include namespace mavlinkcom { + class MavLinkDebugLog { public: virtual void log(int level, const std::string &message) { diff --git a/MavLinkCom/include/MavLinkFtpClient.hpp b/MavLinkCom/include/MavLinkFtpClient.hpp index 376fdf43..c75fb9c1 100644 --- a/MavLinkCom/include/MavLinkFtpClient.hpp +++ b/MavLinkCom/include/MavLinkFtpClient.hpp @@ -10,6 +10,7 @@ #include namespace mavlinkcom_impl { + class MavLinkFtpClientImpl; } diff --git a/MavLinkCom/include/MavLinkLog.hpp b/MavLinkCom/include/MavLinkLog.hpp index a5d43d8d..06b330c6 100644 --- a/MavLinkCom/include/MavLinkLog.hpp +++ b/MavLinkCom/include/MavLinkLog.hpp @@ -13,6 +13,7 @@ #define MAVLINK_STX_MAVLINK1 0xFE // marker for old protocol namespace mavlinkcom { + // This abstract class defines the interface for logging MavLinkMessages. class MavLinkLog { public: diff --git a/MavLinkCom/include/MavLinkMessageBase.hpp b/MavLinkCom/include/MavLinkMessageBase.hpp index e2be2c4c..4288c317 100644 --- a/MavLinkCom/include/MavLinkMessageBase.hpp +++ b/MavLinkCom/include/MavLinkMessageBase.hpp @@ -9,9 +9,11 @@ #include #include namespace mavlinkcom_impl { + class MavLinkConnectionImpl; class MavLinkNodeImpl; } // namespace mavlinkcom_impl + namespace mavlinkcom { class MavLinkConnection; diff --git a/MavLinkCom/include/MavLinkNode.hpp b/MavLinkCom/include/MavLinkNode.hpp index 142e08fb..14f99973 100644 --- a/MavLinkCom/include/MavLinkNode.hpp +++ b/MavLinkCom/include/MavLinkNode.hpp @@ -11,8 +11,10 @@ #include namespace mavlinkcom_impl { + class MavLinkNodeImpl; } + namespace mavlinkcom { struct MavLinkParameter { diff --git a/MavLinkCom/include/MavLinkTcpServer.hpp b/MavLinkCom/include/MavLinkTcpServer.hpp index 1e496483..e6f07792 100644 --- a/MavLinkCom/include/MavLinkTcpServer.hpp +++ b/MavLinkCom/include/MavLinkTcpServer.hpp @@ -9,6 +9,7 @@ #include namespace mavlinkcom_impl { + class MavLinkTcpServerImpl; } diff --git a/MavLinkCom/include/MavLinkVehicle.hpp b/MavLinkCom/include/MavLinkVehicle.hpp index f1c1564c..b2ef48e2 100644 --- a/MavLinkCom/include/MavLinkVehicle.hpp +++ b/MavLinkCom/include/MavLinkVehicle.hpp @@ -12,6 +12,7 @@ #include namespace mavlinkcom_impl { + class MavLinkVehicleImpl; } diff --git a/MavLinkCom/include/MavLinkVideoStream.hpp b/MavLinkCom/include/MavLinkVideoStream.hpp index 92368e7e..c06634d6 100644 --- a/MavLinkCom/include/MavLinkVideoStream.hpp +++ b/MavLinkCom/include/MavLinkVideoStream.hpp @@ -11,9 +11,11 @@ #include namespace mavlinkcom_impl { + class MavLinkVideoClientImpl; class MavLinkVideoServerImpl; } // namespace mavlinkcom_impl + namespace mavlinkcom { // This class implements the client side of a video stream request diff --git a/MavLinkCom/include/UdpSocket.hpp b/MavLinkCom/include/UdpSocket.hpp index 4c94a4a1..a7165d39 100644 --- a/MavLinkCom/include/UdpSocket.hpp +++ b/MavLinkCom/include/UdpSocket.hpp @@ -5,6 +5,7 @@ #include namespace mavlinkcom_impl { + class UdpSocketImpl; } diff --git a/MavLinkCom/include/VehicleState.hpp b/MavLinkCom/include/VehicleState.hpp index bf3dd326..cf60427c 100644 --- a/MavLinkCom/include/VehicleState.hpp +++ b/MavLinkCom/include/VehicleState.hpp @@ -8,6 +8,7 @@ #include namespace mavlinkcom { + typedef struct _VehicleState { typedef unsigned long long uint64_t; typedef unsigned char uint8_t; diff --git a/MavLinkCom/src/impl/AdHocConnectionImpl.cpp b/MavLinkCom/src/impl/AdHocConnectionImpl.cpp index 29799e9c..cdb566eb 100644 --- a/MavLinkCom/src/impl/AdHocConnectionImpl.cpp +++ b/MavLinkCom/src/impl/AdHocConnectionImpl.cpp @@ -37,8 +37,7 @@ std::shared_ptr AdHocConnectionImpl::connectLocalUdp(const std: std::string localAddr, int localPort) { std::shared_ptr socket = std::make_shared(); socket->connect(localAddr, localPort, "", 0); - std::shared_ptr port = socket; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(socket)); } std::shared_ptr AdHocConnectionImpl::connectRemoteUdp(const std::string &nodeName, @@ -52,8 +51,7 @@ std::shared_ptr AdHocConnectionImpl::connectRemoteUdp(const std std::shared_ptr socket = std::make_shared(); socket->connect(local, 0, remoteAddr, remotePort); - std::shared_ptr port = socket; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(socket)); } std::shared_ptr AdHocConnectionImpl::connectTcp(const std::string &nodeName, std::string localAddr, @@ -66,8 +64,7 @@ std::shared_ptr AdHocConnectionImpl::connectTcp(const std::stri std::shared_ptr socket = std::make_shared(); socket->connect(local, 0, remoteIpAddr, remotePort); - std::shared_ptr port = socket; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(socket)); } std::shared_ptr AdHocConnectionImpl::connectSerial(const std::string &nodeName, std::string name, @@ -82,8 +79,7 @@ std::shared_ptr AdHocConnectionImpl::connectSerial(const std::s if (initString.size() > 0) { serial->write(reinterpret_cast(initString.c_str()), static_cast(initString.size())); } - std::shared_ptr port = serial; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(serial)); } void AdHocConnectionImpl::startListening(std::shared_ptr parent, const std::string &nodeName, diff --git a/MavLinkCom/src/impl/MavLinkConnectionImpl.cpp b/MavLinkCom/src/impl/MavLinkConnectionImpl.cpp index da7e1717..887b078e 100644 --- a/MavLinkCom/src/impl/MavLinkConnectionImpl.cpp +++ b/MavLinkCom/src/impl/MavLinkConnectionImpl.cpp @@ -46,8 +46,7 @@ std::shared_ptr MavLinkConnectionImpl::connectLocalUdp(const const std::string &localAddr, int localPort) { std::shared_ptr socket = std::make_shared(); socket->connect(localAddr, localPort, "", 0); - std::shared_ptr port = socket; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(socket)); } std::shared_ptr MavLinkConnectionImpl::connectRemoteUdp(const std::string &nodeName, @@ -61,8 +60,7 @@ std::shared_ptr MavLinkConnectionImpl::connectRemoteUdp(const } std::shared_ptr socket = std::make_shared(); socket->connect(local, 0, remoteAddr, remotePort); - std::shared_ptr port = socket; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(socket)); } std::shared_ptr MavLinkConnectionImpl::connectTcp(const std::string &nodeName, @@ -75,8 +73,7 @@ std::shared_ptr MavLinkConnectionImpl::connectTcp(const std:: } std::shared_ptr socket = std::make_shared(); socket->connect(local, 0, remoteIpAddr, remotePort); - std::shared_ptr port = socket; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(socket)); } std::string MavLinkConnectionImpl::acceptTcp(std::shared_ptr parent, const std::string &nodeName, @@ -110,8 +107,7 @@ std::shared_ptr MavLinkConnectionImpl::connectSerial(const st if (initString.size() > 0) { serial->write(reinterpret_cast(initString.c_str()), static_cast(initString.size())); } - std::shared_ptr port = serial; - return createConnection(nodeName, port); + return createConnection(nodeName, std::shared_ptr(serial)); } void MavLinkConnectionImpl::startListening(std::shared_ptr parent, const std::string &nodeName, diff --git a/MavLinkCom/src/impl/MavLinkNodeImpl.cpp b/MavLinkCom/src/impl/MavLinkNodeImpl.cpp index c0cfa065..dc72dbbb 100644 --- a/MavLinkCom/src/impl/MavLinkNodeImpl.cpp +++ b/MavLinkCom/src/impl/MavLinkNodeImpl.cpp @@ -8,7 +8,6 @@ #include "Utils.hpp" using namespace mavlink_utils; - using namespace mavlinkcom_impl; const int heartbeatMilliseconds = 1000; diff --git a/MavLinkCom/src/impl/MavLinkVehicleImpl.cpp b/MavLinkCom/src/impl/MavLinkVehicleImpl.cpp index 5b9588c4..6a377565 100644 --- a/MavLinkCom/src/impl/MavLinkVehicleImpl.cpp +++ b/MavLinkCom/src/impl/MavLinkVehicleImpl.cpp @@ -12,7 +12,6 @@ #define PACKET_PAYLOAD 253 // hard coded in MavLink code - do not change using namespace mavlink_utils; - using namespace mavlinkcom_impl; void mavlink_euler_to_quaternion(float roll, float pitch, float yaw, float quaternion[4]) { diff --git a/MavLinkCom/src/impl/MavLinkVideoStreamImpl.cpp b/MavLinkCom/src/impl/MavLinkVideoStreamImpl.cpp index a0eb0f78..b58c5645 100644 --- a/MavLinkCom/src/impl/MavLinkVideoStreamImpl.cpp +++ b/MavLinkCom/src/impl/MavLinkVideoStreamImpl.cpp @@ -9,7 +9,6 @@ #define PACKET_PAYLOAD 253 // hard coded in MavLink code - do not change using namespace mavlink_utils; - using namespace mavlinkcom_impl; //================================= CLIENT ==============================================================