""" $URL: svn+ssh://svn.mems-exchange.org/repos/trunk/qp/pub/hit.py $ $Id: hit.py 29552 2007-03-08 15:14:27Z dbinger $ """ from datetime import datetime from qp.http.request import HTTPRequest from qp.http.response import HTTPResponse from qp.pub.common import get_publisher from qp.pub.session import Session from qp.lib.spec import add_getters, spec, specify class Hit (object): request_is = HTTPRequest response_is = HTTPResponse session_is = (Session, None) time_is = spec( datetime, "utc time of the creation of the Hit.") info_is = spec( dict, "A place for application code to squirrel away things as needed " "while processing the request.") def __init__(self, input_stream, cgi_environment): self.request = self.request_is(input_stream, cgi_environment) self.init_response() self.time = datetime.utcnow() self.info = {} self.session = None def init_response(self): self.response = self.response_is() self.response.set_compress(bool(self.request.get_encoding(['gzip']))) def set_session(self, session): specify(self, session=session) def get_session(self): if self.session is None: self.set_session(get_publisher().create_session()) return self.session add_getters(Hit)