1 // Copyright (C) 2018 Intel Corporation
3 // SPDX-License-Identifier: Apache-2.0
12 #include <ie_plugin_ptr.hpp>
13 #include "cpp_interfaces/interface/ie_iinfer_request_internal.hpp"
14 #include "cpp_interfaces/interface/ie_iexecutable_network_internal.hpp"
15 #include "cpp_interfaces/impl/ie_infer_request_internal.hpp"
16 #include "cpp_interfaces/impl/ie_infer_async_request_internal.hpp"
18 namespace InferenceEngine {
20 class InferencePluginInternal;
22 typedef std::shared_ptr<InferencePluginInternal> InferencePluginInternalPtr;
25 * @brief minimum API to be implemented by plugin, which is used in ExecutableNetworkBase forwarding mechanism
27 class ExecutableNetworkInternal : public IExecutableNetworkInternal {
29 typedef std::shared_ptr<ExecutableNetworkInternal> Ptr;
31 virtual void setNetworkInputs(const InferenceEngine::InputsDataMap networkInputs) {
32 _networkInputs = networkInputs;
35 virtual void setNetworkOutputs(const InferenceEngine::OutputsDataMap networkOutputs) {
36 _networkOutputs = networkOutputs;
39 ConstOutputsDataMap GetOutputsInfo() const override {
40 ConstOutputsDataMap outputMap;
41 for (const auto & output : _networkOutputs) {
42 outputMap[output.first] = output.second;
47 ConstInputsDataMap GetInputsInfo() const override {
48 ConstInputsDataMap inputMap;
49 for (const auto & input : _networkInputs) {
50 inputMap[input.first] = input.second;
55 void Export(const std::string &modelFileName) override {
56 THROW_IE_EXCEPTION << NOT_IMPLEMENTED_str;
59 void GetMappedTopology(std::map<std::string, std::vector<PrimitiveInfo::Ptr>> &deployedTopology) override {
60 THROW_IE_EXCEPTION << NOT_IMPLEMENTED_str;
63 void SetPointerToPluginInternal(InferencePluginInternalPtr plugin) {
67 std::vector<IMemoryStateInternal::Ptr> QueryState() override {
68 // meaning base plugin reports as no state available - plugin owners need to create proper override of this
74 InferenceEngine::InputsDataMap _networkInputs;
75 InferenceEngine::OutputsDataMap _networkOutputs;
77 InferencePluginInternalPtr _plugin;
80 } // namespace InferenceEngine