TensorRT 10.0.1
nvinfer1::IPluginRegistry Class Referenceabstract

Single registration point for all plugins in an application. It is used to find plugin implementations during engine deserialization. Internally, the plugin registry is considered to be a singleton so all plugins in an application are part of the same global registry. Note that the plugin registry is only supported for plugins of type IPluginV2 and should also have a corresponding IPluginCreator implementation. More...

#include <NvInferRuntimeCommon.h>

Public Types

using PluginLibraryHandle = void *
 Pointer for plugin library handle. More...
 

Public Member Functions

virtual TRT_DEPRECATED bool registerCreator (IPluginCreator &creator, AsciiChar const *const pluginNamespace) noexcept=0
 Register a plugin creator implementing IPluginCreator. Returns false if any plugin creator with the same name, version or namespace is already registered. More...
 
virtual TRT_DEPRECATED IPluginCreator *const * getPluginCreatorList (int32_t *const numCreators) const noexcept=0
 Return all the registered plugin creators and the number of registered plugin creators. Returns nullptr if none found. More...
 
virtual TRT_DEPRECATED IPluginCreatorgetPluginCreator (AsciiChar const *const pluginName, AsciiChar const *const pluginVersion, AsciiChar const *const pluginNamespace="") noexcept=0
 Return plugin creator based on plugin name, version, and namespace associated with plugin during network creation. More...
 
virtual void setErrorRecorder (IErrorRecorder *const recorder) noexcept=0
 Set the ErrorRecorder for this interface. More...
 
virtual IErrorRecordergetErrorRecorder () const noexcept=0
 Get the ErrorRecorder assigned to this interface. More...
 
virtual TRT_DEPRECATED bool deregisterCreator (IPluginCreator const &creator) noexcept=0
 Deregister a previously registered plugin creator implementing IPluginCreator. More...
 
virtual bool isParentSearchEnabled () const =0
 Return whether the parent registry will be searched if a plugin is not found in this registry default: true. More...
 
virtual void setParentSearchEnabled (bool const enabled)=0
 Set whether the parent registry will be searched if a plugin is not found in this registry. More...
 
virtual PluginLibraryHandle loadLibrary (AsciiChar const *pluginPath) noexcept=0
 Load and register a shared library of plugins. More...
 
virtual void deregisterLibrary (PluginLibraryHandle handle) noexcept=0
 Deregister plugins associated with a library. Any resources acquired when the library was loaded will be released. More...
 
virtual bool registerCreator (IPluginCreatorInterface &creator, AsciiChar const *const pluginNamespace) noexcept=0
 Register a plugin creator. Returns false if a plugin creator with the same type is already registered. More...
 
virtual IPluginCreatorInterface *const * getAllCreators (int32_t *const numCreators) const noexcept=0
 Return all registered plugin creators. Returns nullptr if none found. More...
 
virtual IPluginCreatorInterfacegetCreator (AsciiChar const *const pluginName, AsciiChar const *const pluginVersion, AsciiChar const *const pluginNamespace="") noexcept=0
 Return a registered plugin creator based on plugin name, version, and namespace associated with the plugin during network creation. More...
 
virtual bool deregisterCreator (IPluginCreatorInterface const &creator) noexcept=0
 Deregister a previously registered plugin creator. More...
 
virtual IPluginResourceacquirePluginResource (AsciiChar const *key, IPluginResource *resource) noexcept=0
 Get a plugin resource. More...
 
virtual int32_t releasePluginResource (AsciiChar const *key) noexcept=0
 Decrement reference count for the resource with this key If reference count goes to zero after decrement, release() will be invoked on the resource, the key will be deregistered and the resource object will be deleted. More...
 

Protected Member Functions

virtual ~IPluginRegistry () noexcept=default
 

Detailed Description

Single registration point for all plugins in an application. It is used to find plugin implementations during engine deserialization. Internally, the plugin registry is considered to be a singleton so all plugins in an application are part of the same global registry. Note that the plugin registry is only supported for plugins of type IPluginV2 and should also have a corresponding IPluginCreator implementation.

See also
IPluginV2 and IPluginCreator
Warning
Do not inherit from this class, as doing so will break forward-compatibility of the API and ABI.
In the automotive safety context, be sure to call IPluginRegistry::setErrorRecorder() to register an error recorder with the registry before using other methods in the registry.

Member Typedef Documentation

◆ PluginLibraryHandle

Pointer for plugin library handle.

Constructor & Destructor Documentation

◆ ~IPluginRegistry()

virtual nvinfer1::IPluginRegistry::~IPluginRegistry ( )
protectedvirtualdefaultnoexcept

Member Function Documentation

◆ acquirePluginResource()

virtual IPluginResource * nvinfer1::IPluginRegistry::acquirePluginResource ( AsciiChar const *  key,
IPluginResource resource 
)
pure virtualnoexcept

Get a plugin resource.

Parameters
keyKey for identifying the resource. Cannot be null.
resourceA plugin resource object. The object will only need to be valid until this method returns, as only a clone of this object will be registered by TRT. Cannot be null.
Returns
Registered plugin resource object


Usage considerations

  • Allowed context for the API call
    • Thread-safe: Yes; calls to this method will be synchronized by a mutex.

◆ deregisterCreator() [1/2]

virtual TRT_DEPRECATED bool nvinfer1::IPluginRegistry::deregisterCreator ( IPluginCreator const &  creator)
pure virtualnoexcept

Deregister a previously registered plugin creator implementing IPluginCreator.

Since there may be a desire to limit the number of plugins, this function provides a mechanism for removing plugin creators registered in TensorRT. The plugin creator that is specified by creator is removed from TensorRT and no longer tracked.

Returns
True if the plugin creator was deregistered, false if it was not found in the registry or otherwise could not be deregistered.


Usage considerations

◆ deregisterCreator() [2/2]

virtual bool nvinfer1::IPluginRegistry::deregisterCreator ( IPluginCreatorInterface const &  creator)
pure virtualnoexcept

Deregister a previously registered plugin creator.

Since there may be a desire to limit the number of plugins, this function provides a mechanism for removing plugin creators registered in TensorRT. The plugin creator that is specified by creator is removed from TensorRT and no longer tracked.

Returns
True if the plugin creator was deregistered, false if it was not found in the registry or otherwise could not be deregistered.


Usage considerations

  • Allowed context for the API call
    • Thread-safe: Yes

◆ deregisterLibrary()

virtual void nvinfer1::IPluginRegistry::deregisterLibrary ( PluginLibraryHandle  handle)
pure virtualnoexcept

Deregister plugins associated with a library. Any resources acquired when the library was loaded will be released.

Parameters
handlethe plugin library handle to deregister.

◆ getAllCreators()

virtual IPluginCreatorInterface *const * nvinfer1::IPluginRegistry::getAllCreators ( int32_t *const  numCreators) const
pure virtualnoexcept

Return all registered plugin creators. Returns nullptr if none found.

Warning
If any plugin creators are registered or deregistered after calling this function, the returned pointer is not guaranteed to be valid thereafter.


Usage considerations

  • Allowed context for the API call
    • Thread-safe: No

◆ getCreator()

virtual IPluginCreatorInterface * nvinfer1::IPluginRegistry::getCreator ( AsciiChar const *const  pluginName,
AsciiChar const *const  pluginVersion,
AsciiChar const *const  pluginNamespace = "" 
)
pure virtualnoexcept

Return a registered plugin creator based on plugin name, version, and namespace associated with the plugin during network creation.

Warning
The strings pluginName, pluginVersion, and pluginNamespace must be 1024 bytes or less including the NULL terminator and must be NULL terminated.


Usage considerations

  • Allowed context for the API call
    • Thread-safe: Yes

◆ getErrorRecorder()

virtual IErrorRecorder * nvinfer1::IPluginRegistry::getErrorRecorder ( ) const
pure virtualnoexcept

Get the ErrorRecorder assigned to this interface.

Retrieves the assigned error recorder object for the given class. A default error recorder does not exist, so a nullptr will be returned if setErrorRecorder has not been called, or an ErrorRecorder has not been inherited.

Returns
A pointer to the IErrorRecorder object that has been registered.
See also
setErrorRecorder()


Usage considerations

  • Allowed context for the API call
    • Thread-safe: Yes

◆ getPluginCreator()

virtual TRT_DEPRECATED IPluginCreator * nvinfer1::IPluginRegistry::getPluginCreator ( AsciiChar const *const  pluginName,
AsciiChar const *const  pluginVersion,
AsciiChar const *const  pluginNamespace = "" 
)
pure virtualnoexcept

Return plugin creator based on plugin name, version, and namespace associated with plugin during network creation.

Warning
The strings pluginName, pluginVersion, and pluginNamespace must be 1024 bytes or less including the NULL terminator and must be NULL terminated.
Returns nullptr if a plugin creator with matching name, version, and namespace is found, but is not a descendent of IPluginCreator


Usage considerations

  • Allowed context for the API call

    • Thread-safe: Yes
    Deprecated:
    Deprecated in TensorRT 10.0. Superseded by IPluginRegistry::getCreator(AsciiChar const* const, AsciiChar const* const, AsciiChar const* const).

◆ getPluginCreatorList()

virtual TRT_DEPRECATED IPluginCreator *const * nvinfer1::IPluginRegistry::getPluginCreatorList ( int32_t *const  numCreators) const
pure virtualnoexcept

Return all the registered plugin creators and the number of registered plugin creators. Returns nullptr if none found.

Warning
If any plugin creators are registered or deregistered after calling this function, the returned pointer is not guaranteed to be valid thereafter.


Usage considerations

  • Allowed context for the API call

    • Thread-safe: No
    Deprecated:
    Deprecated in TensorRT 10.0. Superseded by IPluginRegistry::getAllCreators(int32_t* const).

◆ isParentSearchEnabled()

virtual bool nvinfer1::IPluginRegistry::isParentSearchEnabled ( ) const
pure virtual

Return whether the parent registry will be searched if a plugin is not found in this registry default: true.

Returns
bool variable indicating whether parent search is enabled.
See also
setParentSearchEnabled

◆ loadLibrary()

virtual PluginLibraryHandle nvinfer1::IPluginRegistry::loadLibrary ( AsciiChar const *  pluginPath)
pure virtualnoexcept

Load and register a shared library of plugins.

Parameters
pluginPaththe plugin library path.
Returns
The loaded plugin library handle. The call will fail and return nullptr if any of the plugins are already registered.

◆ registerCreator() [1/2]

virtual TRT_DEPRECATED bool nvinfer1::IPluginRegistry::registerCreator ( IPluginCreator creator,
AsciiChar const *const  pluginNamespace 
)
pure virtualnoexcept

Register a plugin creator implementing IPluginCreator. Returns false if any plugin creator with the same name, version or namespace is already registered.

Warning
The string pluginNamespace must be 1024 bytes or less including the NULL terminator and must be NULL terminated.


Usage considerations

◆ registerCreator() [2/2]

virtual bool nvinfer1::IPluginRegistry::registerCreator ( IPluginCreatorInterface creator,
AsciiChar const *const  pluginNamespace 
)
pure virtualnoexcept

Register a plugin creator. Returns false if a plugin creator with the same type is already registered.

Warning
The string pluginNamespace must be 1024 bytes or less including the NULL terminator and must be NULL terminated.


Usage considerations

  • Allowed context for the API call
    • Thread-safe: Yes; calls to this method will be synchronized by a mutex.

◆ releasePluginResource()

virtual int32_t nvinfer1::IPluginRegistry::releasePluginResource ( AsciiChar const *  key)
pure virtualnoexcept

Decrement reference count for the resource with this key If reference count goes to zero after decrement, release() will be invoked on the resource, the key will be deregistered and the resource object will be deleted.

Parameters
keyKey that was used to register the resource. Cannot be null.
Returns
0 for success, else non-zero


Usage considerations

  • Allowed context for the API call
    • Thread-safe: Yes; calls to this method will be synchronized by a mutex.

◆ setErrorRecorder()

virtual void nvinfer1::IPluginRegistry::setErrorRecorder ( IErrorRecorder *const  recorder)
pure virtualnoexcept

Set the ErrorRecorder for this interface.

Assigns the ErrorRecorder to this interface. The ErrorRecorder will track all errors during execution. This function will call incRefCount of the registered ErrorRecorder at least once. Setting recorder to nullptr unregisters the recorder with the interface, resulting in a call to decRefCount if a recorder has been registered.

Parameters
recorderThe error recorder to register with this interface.
See also
getErrorRecorder()


Usage considerations

  • Allowed context for the API call
    • Thread-safe: No

◆ setParentSearchEnabled()

virtual void nvinfer1::IPluginRegistry::setParentSearchEnabled ( bool const  enabled)
pure virtual

Set whether the parent registry will be searched if a plugin is not found in this registry.

Parameters
enabledThe bool variable indicating whether parent search is enabled.
See also
isParentSearchEnabled

The documentation for this class was generated from the following file:

  Copyright © 2024 NVIDIA Corporation
  Privacy Policy | Manage My Privacy | Do Not Sell or Share My Data | Terms of Service | Accessibility | Corporate Policies | Product Security | Contact