|
BDE 4.14.0 Production release
|
#include <ball_filteringobserver.h>
Public Types | |
| typedef bsl::function< bool(const Record &, const Context &)> | RecordFilterCallback |
Public Member Functions | |
| BSLMF_NESTED_TRAIT_DECLARATION (FilteringObserver, bslma::UsesBslmaAllocator) | |
| FilteringObserver (const bsl::shared_ptr< Observer > &observer, const RecordFilterCallback &recordFilterCallback, bslma::Allocator *basicAllocator=0) | |
| ~FilteringObserver () BSLS_KEYWORD_OVERRIDE | |
| Destroy this object. | |
| void | publish (const bsl::shared_ptr< const Record > &record, const Context &context) BSLS_KEYWORD_OVERRIDE |
| void | releaseRecords () BSLS_KEYWORD_OVERRIDE |
| virtual void | publish (const Record &record, const Context &context) |
| virtual void | publish (const bsl::shared_ptr< const Record > &record, const Context &context) |
Public Member Functions inherited from ball::Observer | |
| virtual | ~Observer () |
| Destroy this observer. | |
This class provides a concrete implementation of the Observer protocol that filters the Record and Context objects passed to its publish method based on a callback (function or functor) supplied at construction. The callback must be convertible to:
If the callback returns true for the Record and Context, then they are forwarded to the publish method of an observer also supplied at construction. If the callback returns false, then the Record and Context are ignored (i.e., they are filtered out by this observer).
| typedef bsl::function<bool(const Record&, const Context&)> ball::FilteringObserver::RecordFilterCallback |
|
inline |
Create a filtering observer that conditionally passes log records to the specified observer based on the specified recordFilterCallback. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used. The behavior is undefined if observer is 0 or a cycle is created among observers.
| ball::FilteringObserver::~FilteringObserver | ( | ) |
| ball::FilteringObserver::BSLMF_NESTED_TRAIT_DECLARATION | ( | FilteringObserver | , |
| bslma::UsesBslmaAllocator | |||
| ) |
|
virtual |
Process the specified log record having the specified publishing context. The exact definition of publish depends on the implementing class, though the intention is that the log record (whose publication has occurred according to context) be distributed in a human or machine readable form.
Reimplemented from ball::Observer.
|
virtual |
Process the specified log record having the specified publishing context. Forward record and context to the publish method of the observer supplied at construction if the filter callback supplied at construction returns true for record and context, and ignore (filter out) record and context otherwise. The behavior is undefined if record or context is modified during the execution of this method.
Reimplemented from ball::Observer.
Process the specified log record having the specified publishing context.
publish overload instead. Reimplemented from ball::Observer.
|
inlinevirtual |
Discard any shared reference to a Record object that was supplied to the publish method, and is held by this observer. Note that this operation should be called if resources underlying the previously provided shared-pointers must be released.
Reimplemented from ball::Observer.