ros-sports / nao_lola

Apache License 2.0
6 stars 6 forks source link

Use pimpl to minimize public API to prevent API/ABI from breaking #16

Closed ijnek closed 1 year ago

ijnek commented 1 year ago

This will allow important changes to be backported without the risk of breaking API/ABI

This minimizes the API to literally just:

class NaoLola : public rclcpp::Node
{
public:
  NaoLola();
  virtual ~NaoLola() {}

private:
  class Impl;
  std::shared_ptr<Impl> impl;
};

The decision to leave this in the public API, is if someone wants to use the NaoLola node as a library.

ijnek commented 1 year ago

Thought about this one, but this library was originally designed to be used as a library too, not just as a node. So not merging in these changes.