extras/iro.tac
author Sandro Knauß <knauss@netzguerilla.net>
Sun, 25 Mar 2012 20:19:09 +0200
branchdevel
changeset 255 507f6f4186d8
parent 237 eb3501d2cdc9
child 270 665c3ea02d35
permissions -rw-r--r--
iro.offer.smstrade.Smstrade: vProvider now using field argument in Exception.

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()