8#ifndef INCLUDED_BALL_CATEGORYMANAGER
9#define INCLUDED_BALL_CATEGORYMANAGER
384#include <balscm_version.h>
409#include <bsl_string.h>
410#include <bsl_string_view.h>
411#include <bsl_unordered_map.h>
412#include <bsl_vector.h>
484 unsigned int d_maxNumCategoriesMinusOne;
565 const char *filteredCategoryName,
569 int triggerAllLevel);
581 Category *addNewCategory(
const char *filteredCategoryName,
585 int triggerAllLevel);
592 Category *lookupFilteredCategory(
const char *filteredCategoryName);
604 const char *filteredCategoryName);
610 void privateApplyRulesToCategory(
Category *category);
620 void privateApplyRulesToAllCategories(
630 const char *filterCategoryName(
bsl::string *filteredNameBuffer,
631 const char *originalName)
const;
638 const Category *lookupFilteredCategory(
639 const char *filteredCategoryName)
const;
660 int defaultRecordLevel,
661 int defaultPassLevel,
662 int defaultTriggerLevel,
663 int defaultTriggerAllLevel,
699 int triggerAllLevel);
721 const char *categoryName,
725 int triggerAllLevel);
770 const char *categoryName);
814 const char *categoryName);
838 int triggerAllLevel);
848 int triggerAllLevel);
876 int triggerAllLevel);
896 int triggerAllLevel);
962 template <
class t_CATEGORY_VISITOR>
1032 template <
class t_CATEGORY_VISITOR>
1067 const char *categoryName)
const;
1072#ifndef BDE_OMIT_INTERNAL_DEPRECATED
1126 operator const void *()
const;
1193 operator const void *()
const;
1211 return *d_categories[index];
1219 int triggerAllLevel)
1234 return *d_defaultCategory_p;
1240 return d_ruleSetMutex;
1253 d_maxNumCategoriesMinusOne =
length - 1;
1256template <
class t_CATEGORY_VISITOR>
1261 it != d_categories.
end();
1272 return *d_categories[index];
1278 return *d_defaultCategory_p;
1285 return static_cast<int>(d_categories.
size());
1292 return static_cast<int>(d_maxNumCategoriesMinusOne) + 1;
1304 return d_ruleSetSequenceNumber;
1307template <
class t_CATEGORY_VISITOR>
1312 it != d_categories.
end();
1318#ifndef BDE_OMIT_INTERNAL_DEPRECATED
1326CategoryManagerIter::CategoryManagerIter(
1328: d_cm_p(&categoryManager)
1342CategoryManagerIter::operator
const void *()
const
1344 return (0 <= d_index && d_index < d_cm_p->length()) ?
this : 0;
1350 return d_cm_p->operator[](d_index);
1360: d_cm_p(categoryManager)
1375 return d_cm_p->operator[](d_index);
1380CategoryManagerManip::operator
const void *()
const
1382 return (0 <= d_index && d_index < d_cm_p->length()) ?
this : 0;
Definition ball_category.h:367
Definition ball_categorymanager.h:1086
const Category & operator()() const
Definition ball_categorymanager.h:1348
void operator++()
Definition ball_categorymanager.h:1335
~CategoryManagerIter()=default
Destroy this iterator.
Definition ball_categorymanager.h:1147
void advance()
Definition ball_categorymanager.h:1367
~CategoryManagerManip()=default
Destroy this iterator.
Category & operator()()
Definition ball_categorymanager.h:1373
Definition ball_categorymanager_radixtree.h:434
Definition ball_categorymanager.h:426
void resetCategoryHolders()
void setMaxNumCategories(int length)
Definition ball_categorymanager.h:1250
Category * lookupCategory(const char *categoryName)
CategoryManager(bslma::Allocator *basicAllocator=0)
void setCategoryThresholdsToCurrentDefaults(Category *category) const
Category * addCategory(const char *categoryName, int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
Definition ball_categorymanager.h:1215
CategoryManager(int defaultRecordLevel, int defaultPassLevel, int defaultTriggerLevel, int defaultTriggerAllLevel, const DefaultThresholdLevelsCallback &defaultThresholdLevelsCallback, const CategoryNameFilterCallback &categoryNameFilterCallback, bslma::Allocator *basicAllocator=0)
const RuleSet & ruleSet() const
Definition ball_categorymanager.h:1296
int addRule(const Rule &ruleToAdd)
int addRules(const RuleSet &ruleSet)
int defaultRecordThresholdLevel() const
Return the default record threshold level of this object.
int removeRules(const RuleSet &ruleSet)
int maxNumCategories() const
Definition ball_categorymanager.h:1289
Category * lookupCategory(CategoryHolder *categoryHolder, const char *categoryName)
void addDefaultCategory()
const Category * lookupCategory(const char *categoryName) const
bsls::Types::Int64 ruleSetSequenceNumber() const
Definition ball_categorymanager.h:1302
int setThresholdLevelsHierarchically(const char *categoryNamePrefix, int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
const Category * setCategory(CategoryHolder *categoryHolder, const char *categoryName)
int removeRule(const Rule &ruleToRemove)
int defaultTriggerThresholdLevel() const
Return the default trigger threshold level of this object.
int defaultTriggerAllThresholdLevel() const
Return the default trigger-all threshold level of this object.
Category & operator[](int index)
Definition ball_categorymanager.h:1208
Category * setCategory(const char *categoryName, int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
ThresholdAggregate defaultThresholdLevels() const
Return the default threshold levels associated with this object.
Category * addCategoryHierarchically(const char *categoryName)
Category * setThresholdLevels(const char *categoryName, int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
int length() const
Definition ball_categorymanager.h:1282
Category & defaultCategory()
Definition ball_categorymanager.h:1232
CategoryCallbacks::DefaultThresholdLevels DefaultThresholdLevelsCallback
Definition ball_categorymanager.h:439
void setCategoryThresholdsToFactoryDefaults(Category *category) const
int setDefaultThresholdLevels(int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
int defaultPassThresholdLevel() const
Return the default pass threshold level of this object.
void visitCategories(const t_CATEGORY_VISITOR &visitor)
Definition ball_categorymanager.h:1257
Category * addCategory(CategoryHolder *categoryHolder, const char *categoryName, int recordLevel, int passLevel, int triggerLevel, int triggerAllLevel)
void setDefaultThresholdLevelsCallback(const DefaultThresholdLevelsCallback *defaultThresholdLevelsCallback)
CategoryCallbacks::NameFilter CategoryNameFilterCallback
Definition ball_categorymanager.h:433
bslmt::Mutex & rulesetMutex()
Definition ball_categorymanager.h:1238
void resetDefaultThresholdLevels()
~CategoryManager()
Destroy this category manager.
int thresholdLevelsForNewCategory(ThresholdAggregate *levels, const char *categoryName) const
const Category * setCategory(const char *categoryName)
Definition ball_categorymanager.h:1244
Definition ball_category.h:184
Definition ball_ruleset.h:151
Definition ball_rule.h:177
Definition ball_thresholdaggregate.h:101
Definition bslstl_string.h:1252
Forward declaration.
Definition bslstl_function.h:946
Definition bslstl_unorderedmap.h:1123
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this vector.
Definition bslstl_vector.h:3019
iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2866
iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:2874
Definition bslstl_vector.h:1120
Category * * iterator
Definition bslstl_vector.h:1152
Category * const * const_iterator
Definition bslstl_vector.h:1153
Definition bslma_allocator.h:545
Definition bslmt_lockguard.h:234
Definition bslmt_mutex.h:317
Definition bslmt_readlockguard.h:287
Definition bslmt_readerwriterlock.h:294
Definition bslmt_readerwritermutex.h:244
Definition bslmt_writelockguard.h:221
Definition bsls_atomic.h:896
#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::function< void(bsl::string *buffer, const char *categoryName)> NameFilter
Definition ball_categorycallbacks.h:173
Definition bdlb_cstringequalto.h:123
Definition bdlb_cstringhash.h:237
long long Int64
Definition bsls_types.h:134