5 #include <boost/filesystem.hpp>
13 namespace linuxdeploy {
17 * Base class for plugins.
19 template<int API_LEVEL>
20 class PluginBase : public IPlugin {
22 // private data class pattern
28 // default constructor
29 // construct Plugin from given path
30 explicit PluginBase(const boost::filesystem::path& path);
32 ~PluginBase() override;
35 int apiLevel() const override;
38 boost::filesystem::path path() const override;
41 PLUGIN_TYPE pluginType() const override;
42 std::string pluginTypeString() const override;
45 int run(const boost::filesystem::path& appDirPath) override;
51 // need to include implementation at the end of the file to solve issues like
52 // https://bytefreaks.net/programming-2/c/c-undefined-reference-to-templated-class-function
53 #include "base_impl.h"