source: server/lib/gutenbach/server/__init__.py @ e58af05

no-cups
Last change on this file since e58af05 was e58af05, checked in by Jessica B. Hamrick <jhamrick@…>, 12 years ago

Implement send-document operation and add threading so that the gutenbach server can play jobs

  • Property mode set to 100644
File size: 1.3 KB
RevLine 
[e58af05]1import errors
2from errors import *
3__all__ = ['errors']
4__all__.extend(errors.__all__)
5
6from job import Job
7__all__.append('Job')
8
9from printer import GutenbachPrinter
10__all__.append('GutenbachPrinter')
11
12from requests import make_empty_response, GutenbachRequestHandler
13__all__.append('make_empty_response')
14__all__.append('GutenbachRequestHandler')
15
16from server import GutenbachServer, IPPServer
17__all__.append('GutenbachServer')
18__all__.append('IPPServer')
19
[287d6ec]20import BaseHTTPServer
[d04a689]21import logging
[6effd50]22import sys
[ee8e6d0]23import traceback
[d04a689]24
[e58af05]25# configure and initialize logging
[6effd50]26logging.basicConfig(level=logging.DEBUG)
[ee8e6d0]27logger = logging.getLogger(__name__)
28
[e58af05]29def error(self, request=None, client_address=None):
[ee8e6d0]30    logger.fatal(traceback.format_exc())
[e58af05]31    self.gutenbach_server.request_stop = True
[6effd50]32    sys.exit(1)
[478ca74]33
[287d6ec]34def start():
[e58af05]35    logger.info("Starting Gutenbach server...")
36    gutenbach = GutenbachServer()
37    gutenbach.start()
38
39    logger.info("Starting IPP server...")
[478ca74]40    server_address = ('', 8000)
[e58af05]41    httpd = BaseHTTPServer.HTTPServer(server_address, IPPServer)
[6effd50]42    httpd.handle_error = error.__get__(httpd)
[e58af05]43    httpd.gutenbach_server = gutenbach
44    while gutenbach.isAlive():
45        try:
46            httpd.handle_request()
47        except:
48            error(httpd)
[287d6ec]49
[e58af05]50__all__.append('start')
Note: See TracBrowser for help on using the repository browser.