1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
11 #include <ie_iinfer_request.hpp>
12 #include <ie_primitive_info.hpp>
13 #include <cpp_interfaces/interface/ie_imemory_state_internal.hpp>
15 namespace InferenceEngine {
18 * @brief minimum API to be implemented by plugin, which is used in ExecutableNetworkBase forwarding mechanism.
20 class IExecutableNetworkInternal {
22 typedef std::shared_ptr<IExecutableNetworkInternal> Ptr;
24 virtual ~IExecutableNetworkInternal() = default;
28 * @brief Gets the Executable network output Data node information. The received info is stored in the given Data node.
29 * This method need to be called to find output names for using them later during filling of a map
30 * of blobs passed later to InferenceEngine::IInferencePlugin::Infer()
31 * @return out Reference to the ConstOutputsDataMap object
33 virtual ConstOutputsDataMap GetOutputsInfo() const = 0;
36 * @brief Gets the Executable network input Data node information. The received info is stored in the given InputsDataMap object.
37 * This method need to be called to find out input names for using them later during filling of a map
38 * of blobs passed later to InferenceEngine::IInferencePlugin::Infer()
39 * @return inputs Reference to ConstInputsDataMap object.
41 virtual ConstInputsDataMap GetInputsInfo() const = 0;
45 * @brief Create an inference request object used to infer the network
46 * Note: the returned request will have allocated input and output blobs (that can be changed later)
47 * @param req - shared_ptr for the created request
49 virtual void CreateInferRequest(IInferRequest::Ptr &req) = 0;
52 * @brief Export the current created executable network so it can be used later in the Import() main API
53 * @param modelFileName - path to the location of the exported file
55 virtual void Export(const std::string &modelFileName) = 0;
58 * @brief Get the mapping of IR layer names to actual implemented kernels
59 * @param deployedTopology - map of PrimitiveInfo objects representing the deployed topology
61 virtual void GetMappedTopology(std::map<std::string, std::vector<PrimitiveInfo::Ptr>> &deployedTopology) = 0;
64 * @brief Get executable graph information from a device
65 * @param graphPtr network ptr to store executable graph information
67 virtual void GetExecGraphInfo(ICNNNetwork::Ptr &graphPtr) = 0;
69 virtual std::vector<IMemoryStateInternal::Ptr> QueryState() = 0;
72 } // namespace InferenceEngine