[#BloombergLP-ball-AttributeContext_RuleEvaluationCache] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::AttributeContext_RuleEvaluationCache :relfileprefix: ../../ :mrdocs: Implementation type that evaluates and caches whether logging rules are active. == Synopsis Declared in `<ball_attributecontext.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class AttributeContext_RuleEvaluationCache; ---- == Description This is an implementation type of `AttributeContext` and should not be used by clients of this package. A rule evaluation cache is a mechanism for evaluating and caching whether a rule is active. A rule is considered active if all of its attributes are satisfied by the collection of attributes held in a `AttributeContainerList` object (i.e., `Rule::evaluate` returns `true` for the `AttributeContainerList` object). The rules this cache evaluates are contained in a `RuleSet` object. `RuleSet::MaskType` is a bit mask for a rule set, where each bit is a boolean value associated with the rule at the corresponding index in a rule set. An `AttributeContext` determines, using the `isDataAvailable` method, if a particular set of rules (described using a bit mask) have already been evaluated. A context accesses the current cache of rule evaluations using the `knownActiveRules` method. Finally, a context updates the cache of rule evaluations using the `update` method. Note that the `isDataAvailable` method should be used prior to using `knownActiveRules` in order to ensure the relevant rules have been evaluated and that those evaluations are up‐to‐date. == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache/2constructor.adoc[`AttributeContext_RuleEvaluationCache`] [.small]#[constructor]# | Create an empty rule evaluation cache having a sequence number of ‐1. | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache/clear.adoc[`clear`] | Clear any currently cached rule evaluation data, restoring this object to its default constructed state (empty). | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache/isDataAvailable.adoc[`isDataAvailable`] | Return whether this cache has up‐to‐date evaluations for the given rules. | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache/knownActiveRules.adoc[`knownActiveRules`] | Return a bit mask of rules known to be active after the last update. | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache/print.adoc[`print`] | Format this object to the specified output stream. | xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache/update.adoc[`update`] | Update the cache of rule evaluations for the specified sequence number and rules. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#