Move initialization from main to core
This commit is contained in:
parent
51b5910e68
commit
7f95a3b0ba
@ -1,5 +1,4 @@
|
||||
import logging
|
||||
import multiprocessing
|
||||
import optparse
|
||||
import os
|
||||
import sys
|
||||
@ -9,7 +8,6 @@ sys.path.insert(0,
|
||||
|
||||
from mopidy import get_version, settings, SettingsError
|
||||
from mopidy.core import CoreProcess
|
||||
from mopidy.utils import get_class
|
||||
from mopidy.utils.log import setup_logging
|
||||
from mopidy.utils.path import get_or_create_folder
|
||||
from mopidy.utils.settings import list_settings_optparse_callback
|
||||
@ -25,15 +23,8 @@ def main():
|
||||
get_or_create_folder('~/.mopidy/')
|
||||
settings.validate()
|
||||
|
||||
core_queue = multiprocessing.Queue()
|
||||
output_class = get_class(settings.OUTPUT)
|
||||
backend_class = get_class(settings.BACKENDS[0])
|
||||
frontend = get_class(settings.FRONTENDS[0])()
|
||||
frontend.start_server(core_queue)
|
||||
core = CoreProcess(core_queue, output_class, backend_class, frontend)
|
||||
|
||||
# Explictly call run instead of start, so it runs in this process
|
||||
core.run()
|
||||
CoreProcess(options).run()
|
||||
|
||||
def parse_options():
|
||||
parser = optparse.OptionParser(version='Mopidy %s' % get_version())
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
import logging
|
||||
import multiprocessing
|
||||
|
||||
from mopidy import settings
|
||||
from mopidy.utils import get_class
|
||||
from mopidy.utils.process import BaseProcess, unpickle_connection
|
||||
|
||||
logger = logging.getLogger('mopidy.core')
|
||||
|
||||
class CoreProcess(BaseProcess):
|
||||
def __init__(self, core_queue, output_class, backend_class, frontend):
|
||||
def __init__(self, options):
|
||||
super(CoreProcess, self).__init__(name='CoreProcess')
|
||||
self.core_queue = core_queue
|
||||
self.options = options
|
||||
self.core_queue = multiprocessing.Queue()
|
||||
self.output_queue = None
|
||||
self.output_class = output_class
|
||||
self.backend_class = backend_class
|
||||
self.output = None
|
||||
self.backend = None
|
||||
self.frontend = frontend
|
||||
self.dispatcher = None
|
||||
|
||||
def run_inside_try(self):
|
||||
@ -24,10 +23,22 @@ class CoreProcess(BaseProcess):
|
||||
self.process_message(message)
|
||||
|
||||
def setup(self):
|
||||
self.setup_output()
|
||||
self.setup_backend()
|
||||
self.setup_frontend()
|
||||
|
||||
def setup_output(self):
|
||||
self.output_queue = multiprocessing.Queue()
|
||||
self.output = self.output_class(self.core_queue, self.output_queue)
|
||||
self.backend = self.backend_class(self.core_queue, self.output_queue)
|
||||
self.dispatcher = self.frontend.create_dispatcher(self.backend)
|
||||
get_class(settings.OUTPUT)(self.core_queue, self.output_queue)
|
||||
|
||||
def setup_backend(self):
|
||||
self.backend = get_class(settings.BACKENDS[0])(
|
||||
self.core_queue, self.output_queue)
|
||||
|
||||
def setup_frontend(self):
|
||||
frontend = get_class(settings.FRONTENDS[0])()
|
||||
frontend.start_server(self.core_queue)
|
||||
self.dispatcher = frontend.create_dispatcher(self.backend)
|
||||
|
||||
def process_message(self, message):
|
||||
if message.get('to') == 'output':
|
||||
|
||||
Loading…
Reference in New Issue
Block a user