# Class e.c.i.InterfaceController(log.Loggable):

Part of elisa.core.interface_controller View In Hierarchy

The InterfaceController is responsible for creating, managing and storing the different `elisa.core.components.frontend.Frontend`s the user has defined in the configuration file.

Instance Variables | frontends | maps the name of a frontend to the instance (type: dict )

Line # | Kind | Name | Docs
--- | --- | --- | ---
39 | Method | __init__ | Undocumented
44 | Method | initialize | Read the configuration of the application and create the frontends
131 | Method | stop | Clean up the given frontends.

def __init__(self):
overrides elisa.core.log.Loggable.__init__
Undocumented
def initialize(self):

    Read the configuration of the application and create the frontends
    that are specified in it. The configuration could for example look
    like this:

        [general]
            ...
        frontends = ['opengl', 'statusicon', 'lcd']

        [opengl]
        frontend = 'pigment.pigment_frontend:PigmentFrontend'

        [statusicon]
        frontend = 'gtk.status_frontend:StatusFrontend'

        [lcd]
        frontend = 'lcg.lcd_frontend:LCDFrontend'

    If the frontend-option in such a section is missing, the
    failure-Exception for that certain frontend is the
    L{FrontendOptionMissing}.

    @rtype:     L{twisted.internet.defer.Deferred}
    @return:    resulting in a list with a tuple of values where the first
                value is True/False to identify if it worked, the second
                one is the name of the frontend and the third one is either
                the frontend object if it worked or the Failure if it failed.

def stop(self):
Clean up the given frontends.

Returns | that fires when the clean up of all frontends is done (type: `twisted.internet.defer.DeferredList` )