26 #ifndef NVNEURAL_PLUGINTYPES_H
27 #define NVNEURAL_PLUGINTYPES_H
120 virtual const
LayerDesc* getLayerDesc(std::
size_t layerIndex) const noexcept = 0;
126 virtual std::
size_t getFusingRuleCount() const noexcept = 0;
134 virtual const
FusingRule* getFusingRule(std::
size_t fusingRuleIndex) const noexcept = 0;
157 virtual const
ActivationDesc* getActivationDesc(std::
size_t activationIndex) const noexcept = 0;
180 virtual const
PrototypeDesc* getPrototypeDesc(std::
size_t prototypeIndex) const noexcept = 0;
188 virtual PrototypeRuntimeValidatorFunction getPrototypeRuntimeValidator(std::
size_t prototypeIndex) const noexcept = 0;
231 virtual std::
size_t pluginCount() const noexcept = 0;
238 virtual
IPlugin* getPluginByIndex(std::
size_t pluginIndex) const noexcept = 0;
246 virtual
NeuralResult getPluginPath(const
IPlugin* pPlugin, const
char** ppPluginPathOut) const noexcept = 0;
251 virtual
void allowIncompatiblePlugins() noexcept = 0;
Fundamental NvNeural data types are declared here.
NeuralResult
NeuralResult is a generic success/failure result type similar to COM HRESULT.
Definition: CoreTypes.h:275
NeuralResult(*)(IPlugin **ppPluginOut) noexcept NvNeuralCreatePluginV1_Func
Entry point used to create an IPlugin object.
Definition: PluginTypes.h:196
IActivationPlugin is an optional interface implemented by IPlugin objects that describes generic (non...
Definition: PluginTypes.h:140
virtual std::size_t getActivationDescCount() const noexcept=0
Returns the number of ActivationDesc objects accessible through this interface.
ILayerPlugin is an optional interface implemented by IPlugin objects that describes layers implemente...
Definition: PluginTypes.h:103
virtual std::size_t getLayerDescCount() const noexcept=0
Returns the number of LayerDesc objects accessible through this interface.
Logger interface class.
Definition: CoreTypes.h:414
IPlugin is the general factory interface used by NvNeural's plugin system.
Definition: PluginTypes.h:41
virtual NeuralResult createObject(IRefObject **ppOut, const char *pObjectClass) const noexcept=0
Creates the designated object using its manifest-specified class name.
virtual const char * pluginAuthor() const noexcept=0
Returns a pointer to a UTF-8-encoded author name.
static const IRefObject::TypeId typeID
Interface TypeId for InterfaceOf purposes.
Definition: PluginTypes.h:44
virtual const char * pluginVersion() const noexcept=0
Returns a pointer to a UTF-8-encoded version string.
virtual const char * pluginDescription() const noexcept=0
Returns a pointer to a UTF-8-encoded plugin description.
virtual const char * pluginName() const noexcept=0
Returns a pointer to a UTF-8-encoded plugin name.
virtual NeuralResult setDefaultLogger(ILogger *pLogger) noexcept=0
Sets the default logger for the plugin to the specified backend.
Platform-agnostic plugin loader interface.
Definition: PluginTypes.h:200
virtual NeuralResult releasePlugin(IPlugin *pPlugin) noexcept=0
Releases the internal reference to a given plugin object and frees the library.
virtual NeuralResult loadLibrary(const char *pFilename, IPlugin **ppPluginOut) noexcept=0
Loads a plugin from a specific shared library file.
virtual NeuralResult loadDirectory(const char *pPathname, std::uint32_t *pNumberLoadedOut) noexcept=0
Loads all compatible plugins from the provided directory.
virtual NeuralResult releaseAllPlugins() noexcept=0
Releases all plugins tracked by this object.
IPrototypePlugin is an optional interface implemented by IPlugin objects that describes generic proto...
Definition: PluginTypes.h:163
virtual std::size_t getPrototypeDescCount() const noexcept=0
Returns the number of PrototypeDesc objects accessible through this interface.
Base class for all objects, similar to COM's IUnknown.
Definition: CoreTypes.h:343
std::uint64_t TypeId
Every interface must define a unique TypeId. This should be randomized.
Definition: CoreTypes.h:349
Structure describing an activation function (IActivationFunction) for tool interfaces and network bui...
Definition: CoreTypes.h:1634
Defines a fusing rule that can be applied during model loading.
Definition: CoreTypes.h:1781
This structure describes an ILayer for tools and network builders.
Definition: CoreTypes.h:1554
This structure represent a prototype layer version (backend, tensor format and kernel type),...
Definition: CoreTypes.h:1697