The main object in OpenNI is the Context. A context is an object keeping a complete state for applications using OpenNI, including the entire production graph used by the application. The same application may create more than one context, but the contexes can not share information between them (for example, an algorithm node can not use a device node from another context). The context needs to be initialized once before starting to use it. In this point, all plug-ins are loaded and analyzed. In order to free all memory used by the context, one should call the shutdown function.