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

5
#include <iomanip>
6

7
#include "shell_impl.h"
8
#include "plugins/shell/shell.h"
9

10
namespace mavsdk {
11

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

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

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

21
Shell::Result Shell::send(std::string command) const
×
22
{
23
    return _impl->send(command);
×
24
}
25

26
Shell::ReceiveHandle Shell::subscribe_receive(const ReceiveCallback& callback)
×
27
{
28
    return _impl->subscribe_receive(callback);
×
29
}
30

31
void Shell::unsubscribe_receive(ReceiveHandle handle)
×
32
{
33
    _impl->unsubscribe_receive(handle);
×
34
}
×
35

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

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