8#ifndef INCLUDED_BALL_ATTRIBUTECONTEXT
9#define INCLUDED_BALL_ATTRIBUTECONTEXT
333#include <balscm_version.h>
346#include <bsl_iosfwd.h>
352class AttributeContainer;
354class CategoryManager;
355class ThresholdAggregate;
473 bsl::ostream&
print(bsl::ostream& stream,
475 int spacesPerLevel = 4)
const;
484 bsl::ostream& stream,
564 static void removeContext(
void *arg);
705 bsl::ostream&
print(bsl::ostream& stream,
707 int spacesPerLevel = 4)
const;
759, d_sequenceNumber(-1)
769 d_sequenceNumber = -1;
778 return sequenceNumber == d_sequenceNumber
779 && relevantRulesMask == (relevantRulesMask & d_evalMask);
800 d_ruleCache_p.
clear();
801 return d_containerList.
pushFront(attributes);
807 d_ruleCache_p.
clear();
813 d_ruleCache_p.
clear();
814 d_containerList.
remove(element);
821 return d_containerList;
827 return d_containerList.
hasValue(value);
845 bsl::ostream& stream,
846 const AttributeContext_RuleEvaluationCache& cache)
848 return cache.print(stream, 0, -1);
853 const AttributeContext& context)
855 return context.print(stream, 0, -1);
Definition ball_attributecontainerlist.h:168
Definition ball_attributecontainerlist.h:267
iterator pushFront(const AttributeContainer *container)
bool hasValue(const Attribute &value) const
void remove(const iterator &element)
Definition ball_attributecontainer.h:426
Definition ball_attributecontext.h:729
~AttributeContextProctor()
Destroy this object (as well as the current attribute context).
AttributeContextProctor()
Definition ball_attributecontext.h:836
Definition ball_attributecontext.h:380
~AttributeContext_RuleEvaluationCache()=default
Destroy this object.
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
RuleSet::MaskType update(bsls::Types::Int64 sequenceNumber, RuleSet::MaskType relevantRulesMask, const RuleSet &rules, const AttributeContainerList &attributes)
AttributeContext_RuleEvaluationCache()
Create an empty rule evaluation cache having a sequence number of -1.
Definition ball_attributecontext.h:756
RuleSet::MaskType knownActiveRules() const
Definition ball_attributecontext.h:784
void clear()
Definition ball_attributecontext.h:765
bool isDataAvailable(bsls::Types::Int64 sequenceNumber, RuleSet::MaskType relevantRulesMask) const
Definition ball_attributecontext.h:774
Definition ball_attributecontext.h:520
bool hasAttribute(const Attribute &value) const
Definition ball_attributecontext.h:825
static void initialize(CategoryManager *categoryManager, bslma::Allocator *globalAllocator=0)
const AttributeContainerList & containers() const
Definition ball_attributecontext.h:819
static AttributeContext * getContext()
void removeAttributes(iterator element)
Definition ball_attributecontext.h:811
void determineThresholdLevels(ThresholdAggregate *levels, const Category *category) const
static void visitAttributes(const bsl::function< void(const ball::Attribute &)> &visitor)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
AttributeContainerList::iterator iterator
Definition ball_attributecontext.h:580
iterator addAttributes(const AttributeContainer *attributes)
Definition ball_attributecontext.h:796
static AttributeContext * lookupContext()
bool hasRelevantActiveRules(const Category *category) const
void clearCache()
Definition ball_attributecontext.h:805
Definition ball_attribute.h:198
Definition ball_categorymanager.h:231
Definition ball_category.h:184
Definition ball_ruleset.h:151
unsigned int MaskType
Definition ball_ruleset.h:158
Definition ball_thresholdaggregate.h:97
Forward declaration.
Definition bslstl_function.h:934
Definition bslma_allocator.h:457
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition ball_administration.h:214
bsl::ostream & operator<<(bsl::ostream &output, const Attribute &attribute)
Imp::Key Key
Thread-specific key type, used to refer to thread-specific storage.
Definition bslmt_threadutil.h:399
long long Int64
Definition bsls_types.h:132