8#ifndef INCLUDED_BALM_METRICSMANAGER
9#define INCLUDED_BALM_METRICSMANAGER
437#include <balscm_version.h>
453#include <bsl_functional.h>
455#include <bsl_memory.h>
457#include <bsl_vector.h>
471class MetricsManager_PublisherRegistry;
472class MetricsManager_CallbackRegistry;
473struct MetricsManager_PublicationHelper;
558#ifndef BDE_OMIT_INTERNAL_DEPRECATED
595 const Category *
const categories[],
597 bool resetFlag =
false);
635 const char *categoryName,
748 bool resetFlag =
false);
751 const Category *
const categories[],
753 bool resetFlag =
false);
800 bool resetFlag =
true);
803 bool resetFlag =
true);
804 void publish(
const std::set<const Category *>& categories,
805 bool resetFlag =
true);
806#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR
807 void publish(
const std::pmr::set<const Category *>& categories,
808 bool resetFlag =
true);
846 bool resetFlag =
true);
847 void publishAll(
const std::set<const Category *>& excludedCategories,
848 bool resetFlag =
true);
849#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR
850 void publishAll(
const std::pmr::set<const Category *>& excludedCategories,
851 bool resetFlag =
true);
885 bool isEnabled =
true);
932#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR
942 const char *categoryName)
const;
944 const char *categoryName)
const;
945#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR
947 std::pmr::vector<Publisher *> *publishers,
948 const char *categoryName)
const;
961#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR
993 const char *categoryName,
1003 const char *categoryName,
1022 d_metricRegistry.
getCategory(category), isEnabled);
1034 return d_collectors;
1040 return d_metricRegistry;
1048 const char *categoryName)
const
1056 std::vector<Publisher *> *publishers,
1057 const char *categoryName)
const
1063#ifdef BSLS_LIBRARYFEATURES_HAS_CPP17_PMR
1066 std::pmr::vector<Publisher *> *publishers,
1067 const char *categoryName)
const
1075const CollectorRepository&
1078 return d_collectors;
1084 return d_metricRegistry;
Definition balm_category.h:152
Definition balm_collectorrepository.h:184
Definition balm_metricregistry.h:180
void setCategoryEnabled(const Category *category, bool value)
const Category * getCategory(const char *category)
void setAllCategoriesEnabled(bool value)
const Category * findCategory(const char *category) const
Definition balm_metricsample.h:347
Definition balm_metricsmanager.h:490
MetricsManager(bslma::Allocator *basicAllocator=0)
bsl::function< void(bsl::vector< MetricRecord > *, bool)> RecordsCollectionCallback
Definition balm_metricsmanager.h:506
CallbackHandle registerCollectionCallback(const Category *category, const RecordsCollectionCallback &callback)
void setAllCategoriesEnabled(bool value)
Definition balm_metricsmanager.h:1026
int CallbackHandle
Identifies a registered RecordsCollectionCallback.
Definition balm_metricsmanager.h:509
int findGeneralPublishers(bsl::vector< Publisher * > *publishers) const
int addSpecificPublisher(const char *categoryName, const bsl::shared_ptr< Publisher > &publisher)
Definition balm_metricsmanager.h:1002
int addGeneralPublisher(const bsl::shared_ptr< Publisher > &publisher)
int findSpecificPublishers(bsl::vector< Publisher * > *publishers, const Category *category) const
int removePublisher(const Publisher *publisher)
void collectSample(MetricSample *sample, bsl::vector< MetricRecord > *records, bool resetFlag=false)
void publish(const Category *category, bool resetFlag=true)
@ BAEM_INVALID_HANDLE
Definition balm_metricsmanager.h:559
@ e_INVALID_HANDLE
Definition balm_metricsmanager.h:557
void publish(const bsl::set< const Category * > &categories, bool resetFlag=true)
~MetricsManager()
Destroy this MetricsManager.
void publish(const Category *const categories[], int numCategories, bool resetFlag=true)
CollectorRepository & collectorRepository()
Definition balm_metricsmanager.h:1032
int findGeneralPublishers(std::vector< Publisher * > *publishers) const
int removePublisher(const bsl::shared_ptr< Publisher > &publisher)
int removeCollectionCallback(CallbackHandle handle)
void publishAll(bool resetFlag=true)
void publish(const std::set< const Category * > &categories, bool resetFlag=true)
void publishAll(const std::set< const Category * > &excludedCategories, bool resetFlag=true)
MetricRegistry & metricRegistry()
Definition balm_metricsmanager.h:1038
void publishAll(const bsl::set< const Category * > &excludedCategories, bool resetFlag=true)
int findSpecificPublishers(std::vector< Publisher * > *publishers, const Category *category) const
void setCategoryEnabled(const char *category, bool isEnabled=true)
Definition balm_metricsmanager.h:1018
void collectSample(MetricSample *sample, bsl::vector< MetricRecord > *records, const Category *const categories[], int numCategories, bool resetFlag=false)
friend struct MetricsManager_PublicationHelper
Definition balm_metricsmanager.h:547
int findSpecificPublishers(bsl::vector< Publisher * > *publishers, const char *categoryName) const
Definition balm_metricsmanager.h:1046
CallbackHandle registerCollectionCallback(const char *categoryName, const RecordsCollectionCallback &callback)
Definition balm_metricsmanager.h:992
BSLMF_NESTED_TRAIT_DECLARATION(MetricsManager, bslma::UsesBslmaAllocator)
int addSpecificPublisher(const Category *category, const bsl::shared_ptr< Publisher > &publisher)
Definition balm_publisher.h:278
Forward declaration.
Definition bslstl_function.h:946
Definition bslstl_map.h:653
Definition bslstl_set.h:691
Definition bslstl_sharedptr.h:1838
Definition bslstl_vector.h:1120
Definition bslma_allocator.h:545
Definition bslma_managedptr.h:1173
Definition bslmt_mutex.h:317
Definition bslmt_rwmutex.h:148
Definition bsls_timeinterval.h:307
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition balm_bdlmmetricsadapter.h:142
Definition bslma_usesbslmaallocator.h:344