extras/iro.tac
author Sandro Knauß <knauss@netzguerilla.net>
Wed, 21 Mar 2012 19:40:06 +0100
branchdevel
changeset 238 c36b117f7400
parent 237 eb3501d2cdc9
child 270 665c3ea02d35
permissions -rw-r--r--
using iter function instead of generator

from twisted.application.service import Service, Application
from twisted.application import internet
from twisted.web import resource, server
from twisted.internet import reactor
from twisted.python import log

from sqlalchemy import create_engine, pool

from iro import config
from iro.view import xmlrpc
from iro.model import setEngine, setPool
from iro.controller.pool import startPool, dbPool

class IroService(Service):
    def startService(self):
        log.msg("Starting service...")
        engine = create_engine(config.main.dburl,
               poolclass = pool.SingletonThreadPool,  pool_size=dbPool.maxthreads, )

        setEngine(engine)
        startPool(reactor)
        setPool(dbPool)
        reactor.callWhenRunning(config.readConfig)


def get_application():
    app = Application("Iro")
    config.init()

    root = resource.Resource()
    root = xmlrpc.appendResource(root)
    
    v2 = resource.Resource()
    v2 = xmlrpc.appendResource(root)
    root.putChild('2.0', v2)

    internet.TCPServer(config.main.port, server.Site(root)).setServiceParent(app)
    IroService().setServiceParent(app)
    return app

application = get_application()