Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions

ball::AttributeCollectorRegistry Class Reference

#include <ball_attributecollectorregistry.h>

List of all members.

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

Detailed Description

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


Member Typedef Documentation

Visitor is the type of a user-supplied visit functor.

Collector is the type of a user-supplied attribute collector functor.


Constructor & Destructor Documentation

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.


Member Function Documentation

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).


The documentation for this class was generated from the following file: