Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / hetero_plugin / hetero_device_loader.h
1 //
2 // Copyright (C) 2018-2019 Intel Corporation.
3 //
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.
11 //
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.
15 //
16
17 #pragma once
18
19 #include "ie_ihetero_plugin.hpp"
20 #include <string>
21 #include <map>
22 #include <vector>
23 #include <cpp/ie_plugin_cpp.hpp>
24
25 namespace InferenceEngine {
26
27 class HeteroDeviceLoader: public IHeteroDeviceLoader {
28 public:
29     explicit HeteroDeviceLoader(const std::string& deviceId);
30     StatusCode LoadNetwork(
31         const std::string& device,
32         IExecutableNetwork::Ptr &ret,
33         ICNNNetwork &network,
34         const std::map<std::string, std::string> &config,
35         ResponseDesc *resp)noexcept override;
36
37     /**
38      * @depricated Use the version with config parameter
39      */
40     void QueryNetwork(const std::string &device,
41                       const ICNNNetwork &network,
42                       QueryNetworkResult &res)noexcept override;
43
44     void QueryNetwork(const std::string &device,
45                       const ICNNNetwork &network,
46                       const std::map<std::string, std::string>& config,
47                       QueryNetworkResult &res)noexcept override;
48
49     void initConfigs(const std::map<std::string, std::string> &config,
50                      const std::vector<InferenceEngine::IExtensionPtr> &extensions);
51
52     void SetLogCallback(IErrorListener &listener) override;
53
54 protected:
55     std::string _deviceId;
56     InferenceEngine::InferenceEnginePluginPtr _plugin;
57 };
58
59 }  // namespace InferenceEngine