2 // Copyright (C) 2018-2019 Intel Corporation.
4 // This software and the related documents are Intel copyrighted materials,
5 // and your use of them is governed by the express license under which they
6 // were provided to you (End User License Agreement for the Intel(R) Software
7 // Development Products (Version May 2017)). Unless the License provides
8 // otherwise, you may not use, modify, copy, publish, distribute, disclose or
9 // transmit this software or the related documents without Intel's prior
10 // written permission.
12 // This software and the related documents are provided as is, with no
13 // express or implied warranties, other than those that are expressly
14 // stated in the License.
18 #include "inference_engine.hpp"
19 #include "ie_ihetero_plugin.hpp"
20 #include "description_buffer.hpp"
21 #include "ie_error.hpp"
26 #include <cpp_interfaces/impl/ie_plugin_internal.hpp>
28 namespace HeteroPlugin {
30 class Engine : public InferenceEngine::InferencePluginInternal {
34 void GetVersion(const InferenceEngine::Version *&versionInfo) noexcept;
36 InferenceEngine::ExecutableNetworkInternal::Ptr
37 LoadExeNetworkImpl(InferenceEngine::ICNNNetwork &network,
38 const std::map<std::string, std::string> &config) override;
39 void SetConfig(const std::map<std::string, std::string> &config) override;
41 void SetDeviceLoader(const std::string &device, InferenceEngine::IHeteroDeviceLoader::Ptr pLoader);
43 void SetAffinity(InferenceEngine::ICNNNetwork& network, const std::map<std::string, std::string> &config);
45 void AddExtension(InferenceEngine::IExtensionPtr extension)override;
47 void SetLogCallback(InferenceEngine::IErrorListener &listener) override;
49 std::vector<InferenceEngine::IExtensionPtr> _extensions;
50 InferenceEngine::MapDeviceLoaders _deviceLoaders;
51 InferenceEngine::IErrorListener* error_listener = nullptr;
54 } // namespace HeteroPlugin