[#BloombergLP-ball-AttributeContext_RuleEvaluationCache-update]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::xref:BloombergLP/ball/AttributeContext_RuleEvaluationCache.adoc[AttributeContext&lowbar;RuleEvaluationCache]::update
:relfileprefix: ../../../
:mrdocs:

Update, for the specified `sequenceNumber`, the cache for those rules indicated by the specified `relevantRulesMask` bit mask in the specified set of `rules`, by evaluating those rules for the specified `attributes`&semi; return the bit mask indicating those rules that are known to be active&period; If a bit in the returned bit mask value is set to 1, the rule at the corresponding index in `rules` is &quot;active&quot;&semi; however, if a bit is set to 0, the corresponding rule is either not active _or_ has not been evaluated&period; This operation does, however, guarantee that all the rules indicated by the `relevantRulesMask` _will_ be evaluated&period; A particular rule is considered &quot;active&quot; if all of its attributes are satisfied by `attributes` (i&period;e&period;, if `Rule&colon;&colon;evaluate` returns `true` for `attributes`)&period; The behavior is undefined unless `rules` is not modified during this operation (i&period;e&period;, any lock associated with `rules` must be locked during this operation)&period;

== Synopsis

Declared in `&lt;ball&lowbar;attributecontext&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
xref:BloombergLP/ball/RuleSet/MaskType.adoc[RuleSet::MaskType]
update(
    xref:BloombergLP/bsls/Types/Int64.adoc[bsls::Types::Int64] sequenceNumber,
    xref:BloombergLP/ball/RuleSet/MaskType.adoc[RuleSet::MaskType] relevantRulesMask,
    xref:BloombergLP/ball/RuleSet.adoc[RuleSet] const& rules,
    xref:BloombergLP/ball/AttributeContainerList.adoc[AttributeContainerList] const& attributes);
----


[.small]#Created with https://www.mrdocs.com[MrDocs]#
