8#ifndef INCLUDED_BALL_BROADCASTOBSERVER
9#define INCLUDED_BALL_BROADCASTOBSERVER
185#include <balscm_version.h>
203#include <bsl_memory.h>
204#include <bsl_string.h>
205#include <bsl_unordered_map.h>
282 const
bsl::string_view& observerName);
298 template <class t_OBSERVER>
300 bsl::shared_ptr<t_OBSERVER> *result,
301 const
bsl::string_view& observerName,
302 typename
bsl::enable_if<
307 return *result ? 0 : 1;
351 template <class t_VISITOR>
360 const
bsl::string_view& observerName) const;
376 template <class t_OBSERVER>
378 const
bsl::string_view& observerName,
379 typename
bsl::enable_if<
380 bsl::is_convertible<const t_OBSERVER *,
382 void *>::type = 0)
const
385 return *result ? 0 : 1;
401 template <
class t_VISITOR>
416: d_observers(
bslma::Default::allocator(basicAllocator))
421template <
class t_VISITOR>
428 it != d_observers.
cend();
430 visitor(it->second, it->first);
440 return static_cast<int>(d_observers.
size());
443template <
class t_VISITOR>
450 it != d_observers.
cend();
452 visitor(it->second, it->first);
Definition ball_broadcastobserver.h:226
void visitObservers(t_VISITOR &visitor)
Definition ball_broadcastobserver.h:423
bsl::unordered_map< bsl::string, bsl::shared_ptr< Observer >, bdlb::TransparentHash, bdlb::TransparentEqualTo > ObserverRegistry
Definition ball_broadcastobserver.h:236
int registerObserver(const bsl::shared_ptr< Observer > &observer, const bsl::string_view &observerName)
int deregisterObserver(const bsl::string_view &observerName)
bsl::shared_ptr< Observer > findObserver(const bsl::string_view &observerName)
~BroadcastObserver() BSLS_KEYWORD_OVERRIDE
void publish(const bsl::shared_ptr< const Record > &record, const Context &context) BSLS_KEYWORD_OVERRIDE
void deregisterAllObservers()
Remove all observers from the registry of this broadcast observer.
int numRegisteredObservers() const
Definition ball_broadcastobserver.h:436
void releaseRecords() BSLS_KEYWORD_OVERRIDE
Definition ball_context.h:297
Definition ball_observer.h:235
virtual void publish(const Record &record, const Context &context)
Definition bslstl_stringview.h:471
Definition bslstl_sharedptr.h:1838
Definition bslstl_unorderedmap.h:1123
const_iterator cbegin() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:3886
size_type size() const BSLS_KEYWORD_NOEXCEPT
Return the number of elements in this unordered map.
Definition bslstl_unorderedmap.h:4078
const_iterator cend() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_unorderedmap.h:3895
BloombergLP::bslstl::HashTableIterator< const value_type, difference_type > const_iterator
Definition bslstl_unorderedmap.h:1235
Definition bslma_allocator.h:545
Definition bslmt_readlockguard.h:287
Definition bslmt_readerwritermutex.h:244
#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
Definition bdlat_valuetypefunctions.h:939
basic_string< char > string
Definition bslstl_string.h:844
Definition baljsn_encoder_testtypes.h:76
Definition bdlb_transparentequalto.h:127
Definition bdlb_transparenthash.h:167
static void dynamicCast(bsl::shared_ptr< TARGET > *target, const bsl::shared_ptr< SOURCE > &source)
Definition bslstl_sharedptr.h:6186