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