Resources | Resources |




SettingsReg is a special implementation of ISettings provided by Brew MP that provides a unified settings namespace (registry) defined by URIs. The SettingsReg class itself does not provide any settings or store any settings. The main function of SettingsReg is to ensure that each setting is a part of the global registry namespace. (There are other implementations of ISettings that provide functions to access settings in native stores. When an application or component accesses a setting, SettingsReg delegates the operation to the appropriate ISettings class.)

SettingsReg is a top-level collector of other ISettings implementations that register themselves with SettingsReg via the MIF. Each implementation controls one or more nodes within the registry namespace. SettingsReg combines the various implementations to form a single global registry (referred to as the registry) that is accessible by any component via the ISettings interface (subject to access privileges).

Each URI identifies a subtree in the registry, for example: /path/to/a/setting. SettingsReg is comprised of sub-registries provided by any number of modules that plug in to the top-level registry, where each sub-registry controls a specific part of the tree. Each setting in a sub-registry is claimed by an application, which may choose to make its settings publicly accessible.

For example, if two applications, app1 and app2, register the following sub-registries with SettingsReg:


SettingsReg creates the following virtual tree that represents these two sub-registries:

SettingsReg supports native and non-native data stores. Native stores are those for which the registry has built-in support. Non-native stores are managed by the application or component.