Skip to content

Commit 810657c

Browse files
committed
- Documentation Comment Improvements
1 parent a08998d commit 810657c

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

src/ESPressio_IObservable.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ namespace ESPressio {
2020
virtual IObserver* GetObserver() = 0;
2121
};
2222

23+
/// An `IObservable` is an object that can be observed by any number of `IObserver` descendant types
2324
class IObservable {
2425
public:
2526
virtual ~IObservable() = default;

src/ESPressio_IObserver.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ namespace ESPressio {
44

55
namespace Observable {
66

7+
/// An `IObserver` is an object that can observe an `IObservable`
8+
/// You MUST inherit from this type for ANY object from which you intend to Observe any `IObservable` descendant types
9+
/// This is required to satisfy the `dynamic_cast` requirements of the `Observable` class, and cannot be avoided due to C++ language limitations.
710
class IObserver {
811
public:
912
virtual ~IObserver() = default;

src/ESPressio_Observable.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ namespace ESPressio {
1111

1212
namespace Observable {
1313

14+
/// An `Observable` is an object that can be observed by any number of `IObserver` descendant types
15+
/// This is a concrete implementation of `IObservable`, but it is NOT Thread-Safe.
16+
/// Registering or Unregistering Observers while Observers are being notified can lead to undefined behavior.
17+
/// If you need a Thread-Safe Implementation, install the `ESPressio-ObservableTS` package and use its implementation instead.
1418
class Observable : public IObservable {
1519
private:
1620
std::vector<IObserverHandle*> _observers;

0 commit comments

Comments
 (0)