Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / hetero_plugin / fallback_policy.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 #include <string>
19 #include <map>
20 #include <ie_icnn_network.hpp>
21 #include <ie_ihetero_plugin.hpp>
22 #include <utility>
23 #include <vector>
24
25 namespace InferenceEngine {
26
27 class FallbackPolicy {
28 public:
29     FallbackPolicy(InferenceEngine::MapDeviceLoaders& deviceLoaders, bool dumpDotFile);
30
31     void init(const std::string &config, const std::map<std::string, std::string> &allConfigs,
32               const std::vector<InferenceEngine::IExtensionPtr> &extensions);
33
34     void setAffinity(const std::map<std::string, std::string>& config, ICNNNetwork& pNetwork);
35
36 private:
37     InferenceEngine::MapDeviceLoaders &_deviceLoaders;
38     std::vector<std::string> _fallbackDevices;
39     bool _dumpDotFile;
40 };
41
42 }  // namespace InferenceEngine