• 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/plugins/rtk/rtk.cpp
1
// WARNING: THIS FILE IS AUTOGENERATED! As such, it should not be edited.
2
// Edits need to be made to the proto files
3
// (see https://github.com/mavlink/MAVSDK-Proto/blob/master/protos/rtk/rtk.proto)
4

5
#include <iomanip>
6

7
#include "rtk_impl.h"
8
#include "plugins/rtk/rtk.h"
9

10
namespace mavsdk {
11

12
using RtcmData = Rtk::RtcmData;
13

14
Rtk::Rtk(System& system) : PluginBase(), _impl{std::make_unique<RtkImpl>(system)} {}
×
15

16
Rtk::Rtk(std::shared_ptr<System> system) : PluginBase(), _impl{std::make_unique<RtkImpl>(system)} {}
×
17

18
Rtk::~Rtk() {}
×
19

20
Rtk::Result Rtk::send_rtcm_data(RtcmData rtcm_data) const
×
21
{
22
    return _impl->send_rtcm_data(rtcm_data);
×
23
}
24

NEW
25
MAVSDK_PUBLIC bool operator==(const Rtk::RtcmData& lhs, const Rtk::RtcmData& rhs)
×
26
{
27
    return (rhs.data_base64 == lhs.data_base64);
×
28
}
29

NEW
30
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, Rtk::RtcmData const& rtcm_data)
×
31
{
32
    str << std::setprecision(15);
×
33
    str << "rtcm_data:" << '\n' << "{\n";
×
34
    str << "    data_base64: " << rtcm_data.data_base64 << '\n';
×
35
    str << '}';
×
36
    return str;
×
37
}
38

NEW
39
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, Rtk::Result const& result)
×
40
{
41
    switch (result) {
×
42
        case Rtk::Result::Unknown:
×
43
            return str << "Unknown";
×
44
        case Rtk::Result::Success:
×
45
            return str << "Success";
×
46
        case Rtk::Result::TooLong:
×
47
            return str << "Too Long";
×
48
        case Rtk::Result::NoSystem:
×
49
            return str << "No System";
×
50
        case Rtk::Result::ConnectionError:
×
51
            return str << "Connection Error";
×
52
        default:
×
53
            return str << "Unknown";
×
54
    }
55
}
56

57
} // 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