1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
6 * @brief A header file contains a wrapper class for handling plugin instantiation and releasing resources
7 * @file ie_plugin_ptr.hpp
11 #include "details/ie_so_pointer.hpp"
12 #include "ie_plugin.hpp"
13 #include "ie_ihetero_plugin.hpp"
14 #include "ie_extension.h"
17 namespace InferenceEngine {
21 * @brief This class defines the name of the fabric for creating an IInferencePlugin object in DLL
24 class SOCreatorTrait<IInferencePlugin> {
27 * @brief A name of the fabric for creating IInferencePlugin object in DLL
29 static constexpr auto name = "CreatePluginEngine";
33 * @brief This class defines the name of the fabric for creating an IHeteroInferencePlugin object in DLL
36 class SOCreatorTrait<IHeteroInferencePlugin> {
39 * @brief A name of the fabric for creating IInferencePlugin object in DLL
41 static constexpr auto name = "CreatePluginEngine";
44 } // namespace details
47 * @brief A C++ helper to work with objects created by the plugin.
48 * Implements different interfaces.
50 using InferenceEnginePluginPtr = InferenceEngine::details::SOPointer<IInferencePlugin>;
52 /** @copybrief InferenceEnginePluginPtr */
53 using HeteroPluginPtr = InferenceEngine::details::SOPointer<IHeteroInferencePlugin>;
55 } // namespace InferenceEngine