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
Line 
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
20import BaseHTTPServer
21import logging
22import sys
23import traceback
24
25# configure and initialize logging
26logging.basicConfig(level=logging.DEBUG)
27logger = logging.getLogger(__name__)
28
29def error(self, request=None, client_address=None):
30    logger.fatal(traceback.format_exc())
31    self.gutenbach_server.request_stop = True
32    sys.exit(1)
33
34def start():
35    logger.info("Starting Gutenbach server...")
36    gutenbach = GutenbachServer()
37    gutenbach.start()
38
39    logger.info("Starting IPP server...")
40    server_address = ('', 8000)
41    httpd = BaseHTTPServer.HTTPServer(server_address, IPPServer)
42    httpd.handle_error = error.__get__(httpd)
43    httpd.gutenbach_server = gutenbach
44    while gutenbach.isAlive():
45        try:
46            httpd.handle_request()
47        except:
48            error(httpd)
49
50__all__.append('start')
Note: See TracBrowser for help on using the repository browser.