• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mavlink / MAVSDK / 24114167644

08 Apr 2026 02:17AM UTC coverage: 50.468% (+0.003%) from 50.465%
24114167644

push

github

web-flow
core: hide symbols by default, export only public API (#2855)

* core: hide symbols by default, export only public API

Backport of #2824 to v3. Fixes segfault when MAVSDK is used alongside
ROS2 (or any library sharing bundled dependencies like OpenSSL/tinyxml2)
due to symbol conflicts from leaked third-party symbols.

- Add mavsdk_export.h with MAVSDK_PUBLIC, MAVSDK_TEST_EXPORT, and
  MAVSDK_TEMPL_INST macros
- Set CXX_VISIBILITY_PRESET=hidden and VISIBILITY_INLINES_HIDDEN=ON
- MAVSDK_SHARED compile definition gates dllexport/dllimport so that
  static builds on Windows are unaffected
- Annotate all public classes, free functions, operator overloads,
  and explicit template instantiations
- Update jinja2 templates to emit MAVSDK_PUBLIC on generated
  operator== and operator<< definitions
- Disable MSVC C4251 warning for DLL interface on STL members

Fixes #2852

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: remove stale asio includes from mission transfer client header

The backport patch incorrectly added asio includes that don't exist on
v3 (they were added on main after v3 branched).

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

15 of 379 new or added lines in 39 files covered. (3.96%)

4 existing lines in 3 files now uncovered.

19248 of 38139 relevant lines covered (50.47%)

672.95 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/mavsdk/core/connection_result.cpp
1
#include "connection_result.h"
2

3
namespace mavsdk {
4

NEW
5
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, const ConnectionResult& result)
×
6
{
7
    switch (result) {
×
8
        case ConnectionResult::Success:
×
9
            return str << "Success";
×
10
        case ConnectionResult::Timeout:
×
11
            return str << "Timeout";
×
12
        case ConnectionResult::SocketError:
×
13
            return str << "Socket error";
×
14
        case ConnectionResult::BindError:
×
15
            return str << "Bind error";
×
16
        case ConnectionResult::SocketConnectionError:
×
17
            return str << "Socket connection error";
×
18
        case ConnectionResult::ConnectionError:
×
19
            return str << "Connection error";
×
20
        case ConnectionResult::NotImplemented:
×
21
            return str << "Not implemented";
×
22
        case ConnectionResult::SystemNotConnected:
×
23
            return str << "System not connected";
×
24
        case ConnectionResult::SystemBusy:
×
25
            return str << "System busy";
×
26
        case ConnectionResult::CommandDenied:
×
27
            return str << "Command denied";
×
28
        case ConnectionResult::DestinationIpUnknown:
×
29
            return str << "Destination IP unknown";
×
30
        case ConnectionResult::ConnectionsExhausted:
×
31
            return str << "Connections exhausted";
×
32
        case ConnectionResult::ConnectionUrlInvalid:
×
33
            return str << "Invalid connection URL";
×
34
        case ConnectionResult::BaudrateUnknown:
×
35
            return str << "Baudrate unknown";
×
36
        default:
×
37
            return str << "Unknown";
×
38
    }
39
}
40

41
} // namespace mavsdk
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc