Bertini 2 - C++ Core
Software for Numerical Algebraic Geometry
Loading...
Searching...
No Matches
bertini::Observable Class Reference

An abstract observable type, maintaining a list of observers, who can be notified in case of Events. More...

#include <observable.hpp>

Inheritance diagram for bertini::Observable:
[legend]

Public Member Functions

void AddObserver (AnyObserver &new_observer) const
 Add an observer, to observe this observable.
 
void RemoveObserver (AnyObserver &observer) const
 Remove an observer from this observable.
 

Protected Member Functions

void NotifyObservers (AnyEvent const &e) const
 Sends an Event (more particularly, AnyEvent) to all watching observers of this object.
 

Detailed Description

An abstract observable type, maintaining a list of observers, who can be notified in case of Events.

Some known observable types are Tracker and Endgame.

Member Function Documentation

◆ AddObserver()

void bertini::Observable::AddObserver ( AnyObserver & new_observer) const
inline

Add an observer, to observe this observable.

◆ NotifyObservers()

void bertini::Observable::NotifyObservers ( AnyEvent const & e) const
inlineprotected

Sends an Event (more particularly, AnyEvent) to all watching observers of this object.

This function could potentially be improved by filtering on the observer's desired event types, if known at compile time. This could potentially be a performance bottleneck (hopefully not!) since filtering can use dynamic_casting. One hopes this cost is overwhelmed by things like linear algebra and system evaluation.

Parameters
eThe event to emit. Its type should be derived from AnyEvent.
Here is the caller graph for this function:

◆ RemoveObserver()

void bertini::Observable::RemoveObserver ( AnyObserver & observer) const
inline

Remove an observer from this observable.


The documentation for this class was generated from the following file: