Source code for laymon.interfaces

"""
===========================================
Abstract Classes
===========================================
"""

import abc


[docs]class Monitor: """ Abstract class to monitor the observers. Methods to: 1. Add observers 2. Remove observers 3. Get the list of registered observers 4. Notify the observers when there is a change in the monitored parameters. """
[docs] __metaclass__ = abc.ABCMeta
@abc.abstractmethod
[docs] def add_observer(self, observer): raise NotImplementedError
@abc.abstractmethod
[docs] def remove_observer(self, observer): raise NotImplementedError
@abc.abstractmethod
[docs] def notify_observers(self): raise NotImplementedError
@abc.abstractmethod
[docs] def get_registered_observers(self): raise NotImplementedError
[docs]class Observer: """Abstract class to describe and update the state of an observer."""
[docs] __metaclass__ = abc.ABCMeta
[docs] _description = NotImplementedError
@abc.abstractmethod
[docs] def update(self, parameters): raise NotImplementedError
[docs] def get_description(self): return self._description
[docs]class Display: """ Abstract class to create and update the displays attached to an observer. """
[docs] __metaclass__ = abc.ABCMeta
@abc.abstractmethod
[docs] def update_display(self, parameters, display_title): raise NotImplementedError
[docs]class ObserverFactory: """ Abstract class for creating a factory to create new observers with a display attached to them. The `display_object` stores a display class used to visualize an observer's parameters/states. """
[docs] __metaclass__ = abc.ABCMeta
[docs] display_object = None
@abc.abstractmethod
[docs] def create(self, observer, observer_name): raise NotImplementedError