a6fcf44d1a0a04239587d744aa13f50a80524705
[platform/upstream/dldt.git] / inference-engine / src / inference_engine / ie_icore.hpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 /**
6  * @brief A header file for ICore interface
7  * @file ie_icore.hpp
8  */
9 #pragma once
10
11 #include <memory>
12 #include <string>
13 #include <ie_plugin_ptr.hpp>
14
15 namespace InferenceEngine {
16
17 class ITaskExecutor;
18
19 /**
20  * @brief Minimal ICore interface to allow plugin to get information from Core Inference Engine class.
21  */
22 class ICore {
23 public:
24     /**
25      * @brief Returns global to Inference Engine class task executor
26      * @return Reference to task executor
27      */
28     virtual std::shared_ptr<ITaskExecutor> GetTaskExecutor() const = 0;
29
30     /**
31      * @brief Returns reference to plugin by a device name
32      * @param deviceName - a name of device
33      * @return Reference to plugin
34      */
35     virtual InferenceEnginePluginPtr GetPluginByName(const std::string & deviceName) const = 0;
36
37     /**
38      * @brief Default virtual destructor
39      */
40     virtual ~ICore() = default;
41 };
42
43 }  // namespace InferenceEngine