Overview | Modules | Class Hierarchy | Classes | Members

ObservableObject Class Reference
Observable

ObservableObject is the base class of the Observable/Listener/Observer object hierachy. It manages storage of a unique id for these objects as well as the storage of relations between them. It also manages destruction of these objects. More...

`#include <Observable.h>`

## Detailed Description

ObservableObject is the base class of the Observable/Listener/Observer object hierachy. It manages storage of a unique id for these objects as well as the storage of relations between them. It also manages destruction of these objects.

Each Observable/listener/Observer is stored in a VectorGraph object as a node. An edge in that graph represents a connection between an Observable and a Listener/Observer. ObservableObject enables to manage the creation/destruction of node when a Observable/Listener/Observer is created/deleted. ObservableObject also enables to guarantee the coherency of relations between Observable and Listener/Observer.

ObservableObject provides functions to access to the graph of ObservableObjects as well as the state of elements in that graph. Using these functions can ease debugging of complex Observable/Listener/Observer systems.

Warning:
  Due to the possibility to delay event sending, it is possible that nodes or edges in the graph don't represent the connections and objects that the user expect. Indeed, node deletion, edge creation and edge deletion are delayed until the Obserable::notify or Obserable::unholdObserver function terminate. Only node creation is not delayed.

See also:
  Listener
  Observer
  Observable

Tulip Software by LaBRI Visualization Team 2001 - 2012