[#BloombergLP-ball-Observer]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::Observer
:relfileprefix: ../../
:mrdocs:

This class provides a protocol for receiving and processing log record output&period;

== Synopsis

Declared in `&lt;ball&lowbar;observer&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class Observer;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/Observer/2destructor.adoc[`&#126;Observer`] [.small]#[destructor]# [.small]#[virtual]#
| Destroy this observer&period;
| xref:BloombergLP/ball/Observer/publish-0b.adoc[`publish`] 
| `publish` overloads
| xref:BloombergLP/ball/Observer/releaseRecords.adoc[`releaseRecords`]  [.small]#[virtual]#
| Discard shared references to published `Record` objects held by this observer&period;
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/ball/AsyncFileObserver.adoc[`AsyncFileObserver`] 
| Asynchronous observer that publishes log records to `stdout` and a file&period;
| xref:BloombergLP/ball/BroadcastObserver.adoc[`BroadcastObserver`] 
| This class provides a broadcasting implementation of the `Observer` protocol&period;
| xref:BloombergLP/ball/CstdioObserver.adoc[`CstdioObserver`] 
| This class provides a concrete implementation of the `Observer` protocol&period;
| xref:BloombergLP/ball/FileObserver.adoc[`FileObserver`] 
| Observer that publishes log records to `stdout` and optionally a file&period;
| xref:BloombergLP/ball/FileObserver2.adoc[`FileObserver2`] 
| Observer that publishes log records to a user&hyphen;specified file&period;
| xref:BloombergLP/ball/FilteringObserver.adoc[`FilteringObserver`] 
| This class provides a concrete `Observer` that filters log records&period;
| xref:BloombergLP/ball/MultiplexObserver.adoc[`MultiplexObserver`] 
| This class provides a multiplexing implementation of the `Observer` protocol&period;
| xref:BloombergLP/ball/ObserverAdapter.adoc[`ObserverAdapter`] 
| This class provides a helper for implementing the `Observer` protocol&period;
| xref:BloombergLP/ball/StreamObserver.adoc[`StreamObserver`] 
| This class provides a concrete implementation of the `Observer` protocol&period;
| xref:BloombergLP/ball/TestObserver.adoc[`TestObserver`] 
| This class provides an instrumented implementation of the `Observer` protocol suitable for testing&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
