• 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/failure/failure.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/failure/failure.proto)
4

5
#include <iomanip>
6

7
#include "failure_impl.h"
8
#include "plugins/failure/failure.h"
9

10
namespace mavsdk {
11

12
Failure::Failure(System& system) : PluginBase(), _impl{std::make_unique<FailureImpl>(system)} {}
×
13

14
Failure::Failure(std::shared_ptr<System> system) :
×
15
    PluginBase(),
16
    _impl{std::make_unique<FailureImpl>(system)}
×
17
{}
×
18

19
Failure::~Failure() {}
×
20

21
Failure::Result
22
Failure::inject(FailureUnit failure_unit, FailureType failure_type, int32_t instance) const
×
23
{
24
    return _impl->inject(failure_unit, failure_type, instance);
×
25
}
26

NEW
27
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, Failure::Result const& result)
×
28
{
29
    switch (result) {
×
30
        case Failure::Result::Unknown:
×
31
            return str << "Unknown";
×
32
        case Failure::Result::Success:
×
33
            return str << "Success";
×
34
        case Failure::Result::NoSystem:
×
35
            return str << "No System";
×
36
        case Failure::Result::ConnectionError:
×
37
            return str << "Connection Error";
×
38
        case Failure::Result::Unsupported:
×
39
            return str << "Unsupported";
×
40
        case Failure::Result::Denied:
×
41
            return str << "Denied";
×
42
        case Failure::Result::Disabled:
×
43
            return str << "Disabled";
×
44
        case Failure::Result::Timeout:
×
45
            return str << "Timeout";
×
46
        default:
×
47
            return str << "Unknown";
×
48
    }
49
}
50

NEW
51
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, Failure::FailureUnit const& failure_unit)
×
52
{
53
    switch (failure_unit) {
×
54
        case Failure::FailureUnit::SensorGyro:
×
55
            return str << "Sensor Gyro";
×
56
        case Failure::FailureUnit::SensorAccel:
×
57
            return str << "Sensor Accel";
×
58
        case Failure::FailureUnit::SensorMag:
×
59
            return str << "Sensor Mag";
×
60
        case Failure::FailureUnit::SensorBaro:
×
61
            return str << "Sensor Baro";
×
62
        case Failure::FailureUnit::SensorGps:
×
63
            return str << "Sensor Gps";
×
64
        case Failure::FailureUnit::SensorOpticalFlow:
×
65
            return str << "Sensor Optical Flow";
×
66
        case Failure::FailureUnit::SensorVio:
×
67
            return str << "Sensor Vio";
×
68
        case Failure::FailureUnit::SensorDistanceSensor:
×
69
            return str << "Sensor Distance Sensor";
×
70
        case Failure::FailureUnit::SensorAirspeed:
×
71
            return str << "Sensor Airspeed";
×
72
        case Failure::FailureUnit::SystemBattery:
×
73
            return str << "System Battery";
×
74
        case Failure::FailureUnit::SystemMotor:
×
75
            return str << "System Motor";
×
76
        case Failure::FailureUnit::SystemServo:
×
77
            return str << "System Servo";
×
78
        case Failure::FailureUnit::SystemAvoidance:
×
79
            return str << "System Avoidance";
×
80
        case Failure::FailureUnit::SystemRcSignal:
×
81
            return str << "System Rc Signal";
×
82
        case Failure::FailureUnit::SystemMavlinkSignal:
×
83
            return str << "System Mavlink Signal";
×
84
        default:
×
85
            return str << "Unknown";
×
86
    }
87
}
88

NEW
89
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, Failure::FailureType const& failure_type)
×
90
{
91
    switch (failure_type) {
×
92
        case Failure::FailureType::Ok:
×
93
            return str << "Ok";
×
94
        case Failure::FailureType::Off:
×
95
            return str << "Off";
×
96
        case Failure::FailureType::Stuck:
×
97
            return str << "Stuck";
×
98
        case Failure::FailureType::Garbage:
×
99
            return str << "Garbage";
×
100
        case Failure::FailureType::Wrong:
×
101
            return str << "Wrong";
×
102
        case Failure::FailureType::Slow:
×
103
            return str << "Slow";
×
104
        case Failure::FailureType::Delayed:
×
105
            return str << "Delayed";
×
106
        case Failure::FailureType::Intermittent:
×
107
            return str << "Intermittent";
×
108
        default:
×
109
            return str << "Unknown";
×
110
    }
111
}
112

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

© 2026 Coveralls, Inc