1 // Copyright (C) 2014-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) 2 // This Source Code Form is subject to the terms of the Mozilla Public 3 // License, v. 2.0. If a copy of the MPL was not distributed with this 4 // file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 6 #ifndef VSOMEIP_V3_PLUGIN_MANAGER_HPP 7 #define VSOMEIP_V3_PLUGIN_MANAGER_HPP 8 9 #include <memory> 10 #include <string> 11 12 #include <vsomeip/export.hpp> 13 #include <vsomeip/plugin.hpp> 14 15 namespace vsomeip_v3 { 16 17 class plugin_manager { 18 public: ~plugin_manager()19 VSOMEIP_EXPORT virtual ~plugin_manager() {}; 20 VSOMEIP_EXPORT static std::shared_ptr<plugin_manager> get(); 21 VSOMEIP_EXPORT virtual void load_plugins() = 0; 22 VSOMEIP_EXPORT virtual std::shared_ptr<plugin> get_plugin(plugin_type_e _type, std::string _name) = 0; 23 24 }; 25 26 } // namespace vsomeip_v3 27 28 #endif // VSOMEIP_V3_PLUGIN_MANAGER_HPP 29