SettingManager


Object tree SettingManaer branch

The SettingManager object allows you to manage the settings of the Engine and the Documents. Settings are named values which control the behavior of different functions on the lower levels of the CSDK. They are organized in a tree-structure. The setting tree contains a large number of settings, but you should use the SettingManager only to manipulate those that are documented in the RecAPI online help.

In a setting tree, every setting is attached to a node. The nodes do not necessarily have associated setting values. For example, some nodes might be created to act as the parent of a set of child nodes having associated setting values. Individual settings are identified by their unique path name, which is the concatenated names of the nodes from the root node to the setting node. The node names are separated by dots.

Several setting trees can co-exist at a time. Upon its creation, the Engine creates the first setting tree. All other setting trees are created as copies of the current settings of the Engine. Each newly created Document receives a copy of the Engine settings. This way the settings of the individual documents are independent from each other and from the settings of the Engine.

When a document is saved to an OPD file, the related Document settings are saved automatically. However, you should explicitly save the Engine settings if needed.

Scanner and Converter object settings present special cases. Although they do appear in setting trees, several of their individual setting values may depend on others. Therefore we suggest that you work with Scanner and Converter object settings through these objects themselves, and not through the SettingManager.

Scanner and Converter objects can be queried only from the Engine. These objects modify the settings of the Engine. To use document-specific Scanner and Converter settings, set SP_EXP_USEENGINECONVERTERS and SP_EXP_USEENGINESSCANNERS workflow step parameters to false.

The setting manager supports the following setting types:

  • Integer

  • Floating point

  • Boolean

  • String

  • Integer array

  • Floating point array

  • Boolean array

  • Enumerated

Saving and loading the entire setting tree, or an arbitrary sub-tree is also supported.