NVIDIA IndeX API nvidia_logo_transpbg.gif Up
nv::index::IIndex Class Referenceabstract

Interface to represent the entry point to the NVIDIA IndeX library and its functionality. More...

#include <iindex.h>

Inherits mi::base::Interface_declare< 0x3beb46c0, ... >.

Public Member Functions

virtual mi::Sint32 authenticate (const char *vendor_key, mi::Sint32 vendor_key_length, const char *secret_key, mi::Sint32 secret_key_length, const char *flexnet_license_path=0, mi::Sint32 flexnet_license_path_length=0)=0
 Authenticates the NVIDIA IndeX library. More...
 
virtual mi::Uint32 start (bool is_dice_start_block=true)=0
 Starts the operation of the IndeX library. More...
 
virtual mi::Sint32 shutdown ()=0
 Shut down the IndeX library. More...
 
virtual mi::base::IInterface * get_api_component (const mi::base::Uuid &interface_id) const =0
 Retrieve an instance of an API component from the NVIDIA IndeX or DiCE library. More...
 
template<class T>
T * get_api_component () const
 Retrieve an instance of an API component from the IndeX library. More...
 
virtual IIndex_renderingcreate_rendering_interface () const =0
 An instance of the rendering interface IIndex_rendering allows rendering a scene to a user-defined canvas. More...
 
virtual bool register_serializable_class (mi::base::Uuid class_id, mi::neuraylib::IUser_class_factory *factory) const =0
 Registers a serializable class with DiCE and NVIDIA IndeX. More...
 
template<class T>
bool register_serializable_class () const
 Registers a serializable class with DiCE and NVIDIA IndeX. More...
 
virtual const char * get_product_name () const =0
 The NVIDIA IndeX library name or product name. More...
 
virtual const char * get_version () const =0
 The product version of the NVIDIA IndeX library. More...
 
virtual const char * get_revision () const =0
 The NVIDIA IndeX revision number indicates the build. More...
 
virtual const char * get_nvidia_driver_version () const =0
 Returns the NVIDIA driver version string. More...
 
virtual mi::Sint32 get_cuda_runtime_version () const =0
 Returns the CUDA runtime version number. More...
 
virtual const char * get_dice_version () const =0
 Returns the product version of the DiCE library. More...
 
virtual mi::base::ILogger * get_built_in_logger () const =0
 Get the IndeX library's built-in logger. More...
 
virtual mi::base::ILogger * get_forwarding_logger () const =0
 Get the IndeX library's forwarding logger. More...
 
virtual mi::neuraylib::INeuray * get_dice_interface ()=0
 The DiCE interface is available for further use. More...
 

Detailed Description

Interface to represent the entry point to the NVIDIA IndeX library and its functionality.

Only one instance of this class may exist at the same time. It enables the configuration, start-up and shutdown of the NVIDIA IndeX library and exposes the library's API functionality through API components.

Member Function Documentation

 authenticate()

virtual mi::Sint32 nv::index::IIndex::authenticate ( const char *  vendor_key,
mi::Sint32  vendor_key_length,
const char *  secret_key,
mi::Sint32  secret_key_length,
const char *  flexnet_license_path = 0,
mi::Sint32  flexnet_license_path_length = 0 
)
pure virtual

Authenticates the NVIDIA IndeX library.

Note: This call checks the argument validity only. The actual license validation will be done in the nv::index::IIndex::start() call.

Parameters
[in]vendor_keyVendor key string.
[in]vendor_key_lengthLength of the vendor key.
[in]secret_keySecret key string.
[in]secret_key_lengthLength of the secret key.
[in]flexnet_license_pathDeprecated, will be ignored.
[in]flexnet_license_path_lengthDeprecated, will be ignored.
Returns
Result of the NVIDIA IndeX library authentication attempt, 0 means success.

 create_rendering_interface()

virtual IIndex_rendering * nv::index::IIndex::create_rendering_interface ( ) const
pure virtual

An instance of the rendering interface IIndex_rendering allows rendering a scene to a user-defined canvas.

Multiple rendering interfaces may exists. The rendering interface instances enabled, for instance, rendering to different multiple views.

Returns
Creates and returns a new instance of the rendering interface IIndex_rendering. If the library hasn't been initialized yet, then 0 will be returned.

 get_api_component() [1/2]

template<class T>
T * nv::index::IIndex::get_api_component ( ) const
inline

Retrieve an instance of an API component from the IndeX library.

This templated method is a wrapper around get_api_component(const mi::base::Uuid&) for the user's convenience. It eliminates the need to call mi::IInterface::get_interface(const Uuid&) on the returned pointer, since the return type already is a pointer to the type specified as template parameter.

Template Parameters
TThe type of the interface to be queried.
Returns
A pointer to the interface or 0 if the interface is not supported. The pointer must be released when it is no longer needed.

 get_api_component() [2/2]

virtual mi::base::IInterface * nv::index::IIndex::get_api_component ( const mi::base::Uuid &  interface_id) const
pure virtual

Retrieve an instance of an API component from the NVIDIA IndeX or DiCE library.

Examples of supported API components:

Parameters
interface_idThe unique id of the interface to be queried.
Returns
A pointer to the interface or 0 if the interface is not supported. The pointer must be released when it is no longer needed.

 get_built_in_logger()

virtual mi::base::ILogger * nv::index::IIndex::get_built_in_logger ( ) const
pure virtual

Get the IndeX library's built-in logger.

Returns
Returns the built-in logger used in the IndeX library. Please refer to the DiCE library API for details.

 get_cuda_runtime_version()

virtual mi::Sint32 nv::index::IIndex::get_cuda_runtime_version ( ) const
pure virtual

Returns the CUDA runtime version number.

Returns
Returns the detected CUDA runtime version.

 get_dice_interface()

virtual mi::neuraylib::INeuray * nv::index::IIndex::get_dice_interface ( )
pure virtual

The DiCE interface is available for further use.

Please refer to the DiCE library API for details.

Returns
Exposes the DiCE interface.

 get_dice_version()

virtual const char * nv::index::IIndex::get_dice_version ( ) const
pure virtual

Returns the product version of the DiCE library.

Returns
Returns the DiCE product version.

 get_forwarding_logger()

virtual mi::base::ILogger * nv::index::IIndex::get_forwarding_logger ( ) const
pure virtual

Get the IndeX library's forwarding logger.

Returns
Returns the forwarding logger used in the IndeX library. Please refer to the DiCE library API for details.

 get_nvidia_driver_version()

virtual const char * nv::index::IIndex::get_nvidia_driver_version ( ) const
pure virtual

Returns the NVIDIA driver version string.

Returns
Returns the detected NVIDIA driver version string.

 get_product_name()

virtual const char * nv::index::IIndex::get_product_name ( ) const
pure virtual

The NVIDIA IndeX library name or product name.

Returns
Returns the NVIDIA IndeX product name as a null-terminated string.

 get_revision()

virtual const char * nv::index::IIndex::get_revision ( ) const
pure virtual

The NVIDIA IndeX revision number indicates the build.

Please also refer to the product version in support requests.

Returns
Returns NVIDIA IndeX product revision number as a null-terminated string.

 get_version()

virtual const char * nv::index::IIndex::get_version ( ) const
pure virtual

The product version of the NVIDIA IndeX library.

Please also refer to the product version in support requests.

Returns
Returns the NVIDIA IndeX product version as a null-terminated string.

 register_serializable_class() [1/2]

template<class T>
bool nv::index::IIndex::register_serializable_class ( ) const
inline

Registers a serializable class with DiCE and NVIDIA IndeX.

Registering a class for serialization allows communicating class instances through the serialization mechanism. It enables, for instance, storing database elements and jobs in the distributed database or communicating job results (see mi::neuraylib::IFragmented_job::execute_fragment_remote()).

Registering a class for serialization can only be done before DiCE library has been started.

This templated member function is a wrapper of the non-template variant for the user's convenience. It uses the default class factory mi::neuraylib::IUser_class_factory specialized for T.

Returns
Returns true if the class of type T was successfully registered for serialization, and false otherwise.

 register_serializable_class() [2/2]

virtual bool nv::index::IIndex::register_serializable_class ( mi::base::Uuid  class_id,
mi::neuraylib::IUser_class_factory *  factory 
) const
pure virtual

Registers a serializable class with DiCE and NVIDIA IndeX.

Registering a class for serialization allows communicating class instances through the serialization mechanism. It enables, for instance, storing database elements and jobs in the distributed database or communicating job results (see mi::neuraylib::IFragmented_job::execute_fragment_remote()).

Registering a class for serialization can only be done before DiCE library has been started.

Parameters
class_idThe class ID of the class that shall be registered for serialization.
factoryThe class factory.
Returns
Returns true if the class of was successfully registered for serialization, and false otherwise.

 shutdown()

virtual mi::Sint32 nv::index::IIndex::shutdown ( )
pure virtual

Shut down the IndeX library.

After this call, all library-related function calls will fail.

Note
Restarting is not supported.
Returns
Return 0 on success

 start()

virtual mi::Uint32 nv::index::IIndex::start ( bool  is_dice_start_block = true)
pure virtual

Starts the operation of the IndeX library.

Note
All user-defined serializable classes must have been registered before calling this method.
Parameters
[in]is_dice_start_blockIndicates whether the DiCE start up should be done in blocking mode (compare mi::neuraylib::INeuray::start()). Currently blocking mode is required by NVIDIA IndeX and a warning will be printed if false is specified here.
Returns
Returns 0 on success.

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