'WSGI entry point.
Wraps env in swob.Request object and passes it down.
:param env: WSGI environment dictionary
:param start_response: WSGI callable'

def __call__(self, env, start_response):

    try:
        if (self.memcache is None):
            self.memcache = cache_from_env(env, True)
        req = self.update_request(Request(env))
        return self.handle_request(req)(env, start_response)
    except UnicodeError:
        err = HTTPPreconditionFailed(request=req, body='Invalid    UTF8    or    contains    NULL')
        return err(env, start_response)
    except (Exception, Timeout):
        start_response('500    Server    Error', [('Content-Type', 'text/plain')])
        return ['Internal    server    error.\n']
