To start DiCE, you create a singleton object of type mi::neuraylib::INeuray using a factory function. This object is your only access point to the system. It will be used to configure the system, start it up and shut it down. Only one instance of this object can exist at any time.
The factory function is a C function which returns an interface pointer to the singleton. This C function is the only exported global function of the DiCE library. This allows you to easily use DiCE as a shared library which can be loaded on demand without requiring to statically link an interface library to the application.
After you have obtained the singleton, you configure the system using this object. When the configuration is finished, you start the system using the singleton. When startup is completed, you can populate the database and execute jobs. Before you can shut down DiCE using the singleton, all jobs must be finished and all transactions must be closed.