OLOObject 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. OLOObject enables to manage the creation/destruction of node when a Observable/Listener/Observer is created/deleted. OLOObject also enables to guarantee the coherency of relations between Observable and Listener/Observer.
OLOObject provides functions to access to the graph of OLOObjects 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