• 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

29.63
/src/mavsdk/plugins/component_metadata_server/component_metadata_server.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
4
// https://github.com/mavlink/MAVSDK-Proto/blob/master/protos/component_metadata_server/component_metadata_server.proto)
5

6
#include <iomanip>
7

8
#include "component_metadata_server_impl.h"
9
#include "plugins/component_metadata_server/component_metadata_server.h"
10

11
namespace mavsdk {
12

13
using Metadata = ComponentMetadataServer::Metadata;
14

15
ComponentMetadataServer::ComponentMetadataServer(
1✔
16
    std::shared_ptr<ServerComponent> server_component) :
1✔
17
    ServerPluginBase(),
18
    _impl{std::make_unique<ComponentMetadataServerImpl>(server_component)}
1✔
19
{}
1✔
20

21
ComponentMetadataServer::~ComponentMetadataServer() {}
1✔
22

23
void ComponentMetadataServer::set_metadata(std::vector<Metadata> metadata) const
1✔
24
{
25
    _impl->set_metadata(metadata);
1✔
26
}
1✔
27

NEW
28
MAVSDK_PUBLIC bool operator==(
×
29
    const ComponentMetadataServer::Metadata& lhs, const ComponentMetadataServer::Metadata& rhs)
30
{
31
    return (rhs.type == lhs.type) && (rhs.json_metadata == lhs.json_metadata);
×
32
}
33

34
MAVSDK_PUBLIC std::ostream&
NEW
35
operator<<(std::ostream& str, ComponentMetadataServer::Metadata const& metadata)
×
36
{
37
    str << std::setprecision(15);
×
38
    str << "metadata:" << '\n' << "{\n";
×
39
    str << "    type: " << metadata.type << '\n';
×
40
    str << "    json_metadata: " << metadata.json_metadata << '\n';
×
41
    str << '}';
×
42
    return str;
×
43
}
44

45
MAVSDK_PUBLIC std::ostream&
46
operator<<(std::ostream& str, ComponentMetadataServer::MetadataType const& metadata_type)
×
47
{
48
    switch (metadata_type) {
×
49
        case ComponentMetadataServer::MetadataType::Parameter:
×
50
            return str << "Parameter";
×
51
        case ComponentMetadataServer::MetadataType::Events:
×
52
            return str << "Events";
×
53
        case ComponentMetadataServer::MetadataType::Actuators:
×
54
            return str << "Actuators";
×
55
        default:
×
56
            return str << "Unknown";
×
57
    }
58
}
59

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