# Class e.c.a.Application(BaseApplication):

Part of elisa.core.application View In Hierarchy

Application is the entry point of Elisa. It groups all the necessary elements needed for Elisa to run. It is in charge of instantiating a Config and a PluginRegistry. Application also provides access to input events and data, and holds the user interfaces. It creates various managers (InputManager, MediaManager...), an InterfaceController and a DBBackend.

Instance Variables | plugin_registry | loads and manages the plugins (type: `elisa.core.plugin_registry.PluginRegistry` )
| config | Application's configuration file, storing options (type: `elisa.core.config.Config` )
| bus | DOCME (type: `elisa.core.bus.Bus` )
| metadata_manager | DOCME (type: `elisa.core.metadata_manager.MetadataManager` )
| resource_manager | DOCME (type: `elisa.core.resource_manager.ResourceManager` )
| service_manager | DOCME (type: `elisa.core.service_manager.ServiceManager` )
| interface_controller | DOCME (type: `elisa.core.interface_controller.InterfaceController` )
| input_manager | DOCME (type: `elisa.core.input_manager.InputManager` )
| media_manager | DOCME (type: `elisa.core.media_manager.MediaManager` )
| store | the access point to the database using storm (type: `elisa.extern.twisted_storm.store.DeferredStore` )

Line # | Kind | Name | Docs
--- | --- | --- | ---
238 | Method | __init__ |
334 | Method | log_traceback | Log the traceback without stopping the process. This could ususally be
355 | Method | log_failure | Log the twisted failure without re-raising the exception. Example in
375 | Method | initialize | Load the providers for the different managers, then initialize the
424 | Method | initialize_db | initialize the database depending on the configuration
444 | Method | start | Execute the application. Start the Managers and the
463 | Method | stop | Stop the application.

Inherited from BaseApplication:

Line # | Kind | Name | Docs
--- | --- | --- | ---
153 | Method | _create_plugin_registry | Undocumented
158 | Method | _get_config_filename | Undocumented
177 | Method | _load_config | Undocumented

def __init__(self, config_filename=None, show_tracebacks=False, splash=None):
overrides elisa.core.application.BaseApplication.__init__

Parameters | config_filename | the config filename to use. Can be absolute or relative path (type: string or None to use default config file )

def log_traceback(self):
Log the traceback without stopping the process. This could ususally be used in parts, where you want to go on and log the exception. Example:

       try:
           component.initialize()
       except:
           # and log all the other exceptions
           path = application.log_traceback()
           self.warning("Initilize Component '%s' failed. Traceback saved at %s" % path)
       self.going_on()

Returns | path to the file, where the traceback got logged

def log_failure(self, failure):
Log the twisted failure without re-raising the exception. Example in an errback:

       def errback(failure):
           path = application.log_failure(failure)
           self.warning("Connection refused. Full output at %s" % path)
           return

Parameters | failure | the failure to log (type: `twisted.python.failure.Failure` )
Returns | path to the file, where the traceback got logged

def initialize(self):
Load the providers for the different managers, then initialize the interface_controller.

def initialize_db(self):
initialize the database depending on the configuration

def start(self):
Execute the application. Start the Managers and the InterfaceController.

def stop(self, stop_reactor=True):
Stop the application.

Parameters | stop_reactor | stop the reactor after stopping the application (type: bool )
Returns | (type: `twisted.internet.defer.Deferred` )