Quick Links: |
#include <ball_attributecollectorregistry.h>
Public Types | |
typedef bsl::function< void(const ball::Attribute &)> | Visitor |
typedef bsl::function< void(const Visitor &)> | Collector |
typedef bsl::allocator< char > | allocator_type |
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION (AttributeCollectorRegistry, bslma::UsesBslmaAllocator) | |
AttributeCollectorRegistry () | |
AttributeCollectorRegistry (const allocator_type &allocator) | |
int | addCollector (const Collector &collector, const bsl::string_view &name) |
void | removeAll () |
int | removeCollector (const bsl::string_view &name) |
void | collect (const Visitor &visitor) const |
allocator_type | get_allocator () const |
bool | hasCollector (const bsl::string_view &name) const |
int | numCollectors () const |
This component maintains a registry of named functors ("collectors") that are used to transform opaque user data into a set of ball::Attribute
objects.
See Component ball_attributecollectorregistry
typedef bsl::function<void(const ball::Attribute&)> ball::AttributeCollectorRegistry::Visitor |
Visitor
is the type of a user-supplied visit functor.
typedef bsl::function<void(const Visitor&)> ball::AttributeCollectorRegistry::Collector |
Collector
is the type of a user-supplied attribute collector functor.
ball::AttributeCollectorRegistry::AttributeCollectorRegistry | ( | ) |
ball::AttributeCollectorRegistry::AttributeCollectorRegistry | ( | const allocator_type & | allocator | ) | [explicit] |
Create a registry having no registered collectors. Optionally specify an allocator
(e.g., the address of a bslma::Allocator
object) to supply memory; otherwise, the default allocator is used.
ball::AttributeCollectorRegistry::BSLMF_NESTED_TRAIT_DECLARATION | ( | AttributeCollectorRegistry | , | |
bslma::UsesBslmaAllocator | ||||
) |
int ball::AttributeCollectorRegistry::addCollector | ( | const Collector & | collector, | |
const bsl::string_view & | name | |||
) |
Add the specified collector
with the specified name
to this registry. Return 0 if collector
was successfully registered, and a non-zero value (with no effect) otherwise. Note that this method will fail if a collector having name
is already registered.
void ball::AttributeCollectorRegistry::removeAll | ( | ) |
Remove all collectors from this registry.
int ball::AttributeCollectorRegistry::removeCollector | ( | const bsl::string_view & | name | ) |
Remove the collector having the specified name
from this registry. Return 0 if the collector with name
was successfully removed, and a non-zero value (with no effect) otherwise.
void ball::AttributeCollectorRegistry::collect | ( | const Visitor & | visitor | ) | const |
Invoke all registered collectors with the specified visitor
functor. Note that collectors are invoked in the order in which collectors are registered.
allocator_type ball::AttributeCollectorRegistry::get_allocator | ( | ) | const |
Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the default allocator in effect at construction is used.
bool ball::AttributeCollectorRegistry::hasCollector | ( | const bsl::string_view & | name | ) | const |
Return true
if a collector having the specified name
is in the registry maintained by this object, and false
otherwise. Note that this method is provided primarily for debugging purposes (i.e., its return value can be invalidated from another thread).
int ball::AttributeCollectorRegistry::numCollectors | ( | ) | const |
Return the number of collectors registered with this object. Note that this method is provided primarily for debugging purposes (i.e., its return value can be invalidated from another thread).