'Send a request. Use the request information to see if it
exists in the cache and cache the response if we need to and can.'

def send(self, request, **kw):

    if (request.method == 'GET'):
        cached_response = self.controller.cached_request(request)
        if cached_response:
            return self.build_response(request, cached_response, from_cache=True)
        request.headers.update(self.controller.conditional_headers(request))
    resp = super(CacheControlAdapter, self).send(request, **kw)
    return resp
