28 class SOCreatorTrait<IExtension> {
33 static constexpr
auto name =
"CreateExtension";
41 class INFERENCE_ENGINE_API_CLASS(Extension) :
public IExtension {
49 typename = details::enableIfSupportedChar<C>>
50 explicit Extension(
const std::basic_string<C>& name): actual(name) {}
58 actual->GetVersion(versionInfo);
78 std::map<std::string, ngraph::OpSet>
getOpSets()
override;
85 std::vector<std::string>
getImplTypes(
const std::shared_ptr<ngraph::Node>& node)
override {
86 if (node ==
nullptr)
THROW_IE_EXCEPTION <<
"Provided ngraph::Node pointer is nullptr.";
87 return actual->getImplTypes(node);
97 if (node ==
nullptr)
THROW_IE_EXCEPTION <<
"Provided ngraph::Node pointer is nullptr.";
98 return actual->getImplementation(node, implType);
116 return std::make_shared<Extension>(name);
119 #ifdef ENABLE_UNICODE_PATH_SUPPORT
122 inline std::shared_ptr<IExtension>
make_so_pointer(
const std::wstring& name) {
123 return std::make_shared<Extension>(name);
void GetVersion(const InferenceEngine::Version *&versionInfo) const noexcept override
Gets the extension version information.
Definition: ie_extension.h:57
void Release() noexcept override
Does nothing since destruction is done via the regular mechanism.
Definition: ie_extension.h:71
void Unload() noexcept override
Cleans the resources up.
Definition: ie_extension.h:64
std::map< std::string, ngraph::OpSet > getOpSets() override
Returns operation sets This method throws an exception if it was not implemented.
ILayerImpl::Ptr getImplementation(const std::shared_ptr< ngraph::Node > &node, const std::string &implType) override
Returns implementation for specific nGraph op.
Definition: ie_extension.h:96
std::vector< std::string > getImplTypes(const std::shared_ptr< ngraph::Node > &node) override
Returns vector of implementation types.
Definition: ie_extension.h:85
details::SOPointer< IExtension > actual
A SOPointer instance to the loaded templated object.
Definition: ie_extension.h:105
Extension(const std::basic_string< C > &name)
Loads extension from a shared library.
Definition: ie_extension.h:50
This class is the main extension interface.
Definition: ie_iextension.h:149
std::shared_ptr< ILayerImpl > Ptr
A shared pointer to the ILayerImpl interface.
Definition: ie_iextension.h:92
#define THROW_IE_EXCEPTION
A macro used to throw general exception with a description.
Definition: ie_exception.hpp:25
This is a header file for Inference Engine Extension Interface.
This is a wrapper class for handling plugin instantiation and releasing resources.
Inference Engine C++ API.
Definition: cldnn_config.hpp:15
@ C
A bias layout for operation.
Definition: ie_common.h:82
std::shared_ptr< T > make_so_pointer(const std::string &name)=delete
Creates a special shared_pointer wrapper for the given type from a specific shared module.
Definition: ie_extension.h:115
Represents version information that describes plugins and the inference engine runtime library.
Definition: ie_version.hpp:24