8#ifndef INCLUDED_BALL_ATTRIBUTECONTEXT
9#define INCLUDED_BALL_ATTRIBUTECONTEXT
333#include <balscm_version.h>
346#include <bsl_functional.h>
347#include <bsl_iosfwd.h>
353class AttributeContainer;
355class CategoryManager;
356class ThresholdAggregate;
478 bsl::ostream&
print(bsl::ostream& stream,
480 int spacesPerLevel = 4)
const;
489 bsl::ostream& stream,
573 static void removeContext(
void *arg);
727 bsl::ostream&
print(bsl::ostream& stream,
729 int spacesPerLevel = 4)
const;
782, d_sequenceNumber(-1)
792 d_sequenceNumber = -1;
801 return sequenceNumber == d_sequenceNumber
802 && relevantRulesMask == (relevantRulesMask & d_evalMask);
823 d_ruleCache_p.
clear();
824 return d_containerList.
pushFront(attributes);
830 d_ruleCache_p.
clear();
836 d_ruleCache_p.
clear();
837 d_containerList.
remove(element);
844 return d_containerList;
850 return d_containerList.
hasValue(value);
868 bsl::ostream& stream,
869 const AttributeContext_RuleEvaluationCache& cache)
871 return cache.print(stream, 0, -1);
876 const AttributeContext& context)
878 return context.print(stream, 0, -1);
Definition ball_attributecontainerlist.h:168
Definition ball_attributecontainerlist.h:271
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:751
~AttributeContextProctor()
Destroy this object (as well as the current attribute context).
AttributeContextProctor()
Definition ball_attributecontext.h:859
Definition ball_attributecontext.h:382
~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:779
RuleSet::MaskType knownActiveRules() const
Definition ball_attributecontext.h:807
void clear()
Definition ball_attributecontext.h:788
bool isDataAvailable(bsls::Types::Int64 sequenceNumber, RuleSet::MaskType relevantRulesMask) const
Definition ball_attributecontext.h:797
Definition ball_attributecontext.h:526
bool hasAttribute(const Attribute &value) const
Definition ball_attributecontext.h:848
static void initialize(CategoryManager *categoryManager, bslma::Allocator *globalAllocator=0)
const AttributeContainerList & containers() const
Definition ball_attributecontext.h:842
static AttributeContext * getContext()
void removeAttributes(iterator element)
Definition ball_attributecontext.h:834
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:590
iterator addAttributes(const AttributeContainer *attributes)
Definition ball_attributecontext.h:819
static AttributeContext * lookupContext()
bool hasRelevantActiveRules(const Category *category) const
void clearCache()
Definition ball_attributecontext.h:828
Definition ball_attribute.h:199
Definition ball_categorymanager.h:426
Definition ball_category.h:184
Definition ball_ruleset.h:151
unsigned int MaskType
Definition ball_ruleset.h:158
Definition ball_thresholdaggregate.h:101
Forward declaration.
Definition bslstl_function.h:946
Definition bslma_allocator.h:545
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
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:403
long long Int64
Definition bsls_types.h:134