8#ifndef INCLUDED_BALL_DEFAULTATTRIBUTECONTAINER
9#define INCLUDED_BALL_DEFAULTATTRIBUTECONTAINER
146#include <balscm_version.h>
159#include <bsl_functional.h>
160#include <bsl_unordered_set.h>
180 struct AttributeHash {
184 static int s_hashtableSize;
190 int operator()(
const Attribute& attribute)
const
197 static int s_initialSize;
286 bsl::ostream& print(
bsl::ostream& stream,
288 int spacesPerLevel = 4) const
328bsl::ostream& operator<<(
bsl::ostream& output,
342: d_attributeSet(s_initialSize,
352: d_attributeSet(s_initialSize,
363: d_attributeSet(original.d_attributeSet, allocator)
376 return d_attributeSet.
insert(value).second;
382 return d_attributeSet.
erase(value) != 0;
388 d_attributeSet.
clear();
395 return static_cast<int>(d_attributeSet.
size());
402 return d_attributeSet.
begin();
409 return d_attributeSet.
end();
426 bsl::ostream& output,
427 const DefaultAttributeContainer& attributeContainer)
429 return attributeContainer.print(output, 0, -1);
Definition ball_attributecontainer.h:426
Definition ball_attribute.h:199
static int hash(const Attribute &attribute, int size)
Definition ball_defaultattributecontainer.h:173
void visitAttributes(const bsl::function< void(const ball::Attribute &)> &visitor) const BSLS_KEYWORD_OVERRIDE
BSLMF_NESTED_TRAIT_DECLARATION(DefaultAttributeContainer, bslma::UsesBslmaAllocator)
allocator_type get_allocator() const
Definition ball_defaultattributecontainer.h:416
bsl::unordered_set< Attribute, AttributeHash >::const_iterator const_iterator
Definition ball_defaultattributecontainer.h:217
bsl::allocator< char > allocator_type
This typedef is an alias for the allocator used by this object.
Definition ball_defaultattributecontainer.h:214
bool addAttribute(const Attribute &value)
Definition ball_defaultattributecontainer.h:374
const_iterator end() const
Return an iterator pointing at one past the end of the map.
Definition ball_defaultattributecontainer.h:407
bool removeAttribute(const Attribute &value)
Definition ball_defaultattributecontainer.h:380
int numAttributes() const
Return the number of attributes managed by this object.
Definition ball_defaultattributecontainer.h:393
void removeAllAttributes()
Remove every attribute in this attribute set.
Definition ball_defaultattributecontainer.h:386
bool hasValue(const Attribute &value) const BSLS_KEYWORD_OVERRIDE
~DefaultAttributeContainer() BSLS_KEYWORD_OVERRIDE
Destroy this object.
Definition ball_defaultattributecontainer.h:368
DefaultAttributeContainer()
Definition ball_defaultattributecontainer.h:341
const_iterator begin() const
Definition ball_defaultattributecontainer.h:400
Definition bslma_bslallocator.h:588
Definition bslstl_unorderedset.h:733
void swap(unordered_set &other) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits void clear() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedset.h:1485
pair< iterator, bool > insert(const value_type &value)
Definition bslstl_unorderedset.h:2751
unordered_set &operator=(BloombergLP::bslmf::MovableRef< unordered_set > rhs) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(AllocatorTraits iterator begin() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedset.h:2594
ALLOCATOR get_allocator() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedset.h:2869
iterator end() BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedset.h:2602
iterator erase(const_iterator position)
Definition bslstl_unorderedset.h:2692
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this set.
Definition bslstl_unorderedset.h:2927
iterator const_iterator
Definition bslstl_unorderedset.h:796
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
#define BSLS_KEYWORD_OVERRIDE
Definition bsls_keyword.h:695
Definition ball_administration.h:214
bsl::ostream & operator<<(bsl::ostream &output, const Attribute &attribute)
Definition bdlat_valuetypefunctions.h:939
Definition bslma_usesbslmaallocator.h:344