API Reference | developer.brewmp.com API Reference | developer.brewmp.com

Developer

API Reference

ISETTINGS

Brew Release
Brew MP 1.0.2
See Also
ISignal ISettings_OnChange ISettings_Reset ISettings_GetNumChildren ISettings_GetChildName ISettings_GetSubTree
Description
ISettings provides components with a URI-based settings store. Settings are identified by string based URIs (as opposed to unique IDs) and may thus be stored in a tree structure, though the interface also allows for a "flat", non-tree structure as well. Each setting has exactly one value, either a string or NULL.
Usage
Components may use ISettings to iterate over settings to determine their existence, names, and values. Enumerations take place over a single level in the tree and are specified via a parent URI by the caller. Components may recurse through the entire settings store with multiple calls to the enumerator function.
Components may register for settings change notifications through the ISettings interface. Notifications are done using ISignal objects. Components specify a URI identifying the setting or settings sub-tree they're interested in along with an ISignal object they create to be notified through in a call to ISettings_OnChange(). This method returns a registration object the component holds on to for the lifetime of the notification. ISettings then sets the ISignal when a change to the specified setting or settings subtree occurs, notifying the caller.
ISettings_Reset() may be used to restore a settings subtree to its default state. Components specify a setting or subtree to reset. ISettings replaces the setting(s) with default values if the implementation allows it.
If the ISettings implementation supports the notion of children, the ISettings_GetNumChildren() and ISettings_GetChildName() methods may be used to enumerate over the children. A component may also request an ISettings object rooted at a particular subtree using ISettings_GetSubTree(). Operations on this subtree require a key relative to the subtree rather than a key relative to the root of the entire ISettings tree.
ISettings implementations need not support all methods defined by the ISettings interface and will return AEE_EUNSUPPORTED if a particular operation is not allowed.