[CalendarServer-changes] [330] CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch

source_changes at macosforge.org source_changes at macosforge.org
Fri Oct 27 16:44:13 PDT 2006


Revision: 330
          http://trac.macosforge.org/projects/calendarserver/changeset/330
Author:   wsanchez at apple.com
Date:     2006-10-27 16:44:13 -0700 (Fri, 27 Oct 2006)

Log Message:
-----------
Add _rememberResource() method, rather than implementing the same caching logic in three places.

Modified Paths:
--------------
    CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch

Modified: CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch
===================================================================
--- CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch	2006-10-27 23:36:26 UTC (rev 329)
+++ CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch	2006-10-27 23:44:13 UTC (rev 330)
@@ -47,23 +47,15 @@
  
      def unparseURL(self, scheme=None, host=None, port=None,
                     path=None, params=None, querystring=None, fragment=None):
-@@ -263,8 +280,15 @@
-             failedDeferred = self._processingFailed(failure.Failure())
-             return
+@@ -265,6 +282,7 @@
          
-+        def _registerResource(child):
-+            url = "/" + "/".join(self.prepath)
-+            self._resourcesByURL[child] = url
-+            self._urlsByResource[url] = child
-+            return child
-+        
          d = defer.Deferred()
          d.addCallback(self._getChild, self.site.resource, self.postpath)
-+        d.addCallback(_registerResource)
++        d.addCallback(self._rememberResource, "/" + "/".join(self.prepath))
          d.addCallback(lambda res, req: res.renderHTTP(req), self)
          d.addCallback(self._cbFinishRender)
          d.addErrback(self._processingFailed)
-@@ -320,8 +344,6 @@
+@@ -320,8 +338,6 @@
                      url = "/" + "/".join(path)
                  else:
                      url = "/"
@@ -72,7 +64,7 @@
                  return res
              #else:
              #    raise ValueError("locateChild must not return StopTraversal with a resource other than self.")
-@@ -342,12 +364,9 @@
+@@ -342,17 +358,16 @@
                  self.prepath.append(self.postpath.pop(0))
  
          child = self._getChild(None, newres, newpath, updatepaths=updatepaths)
@@ -82,11 +74,20 @@
  
 -    _resourcesByURL = weakref.WeakKeyDictionary()
 -
-     def _rememberURLForResource(self, url, resource):
+-    def _rememberURLForResource(self, url, resource):
++    def _rememberResource(self, resource, url):
          """
-         Remember the URL of visited resources.
-@@ -367,10 +386,7 @@
+-        Remember the URL of visited resources.
++        Remember the URL of a visited resources.
+         """
+         self._resourcesByURL[resource] = url
++        self._urlsByResource[url] = resource
++        return resource
  
+     def urlForResource(self, resource):
+         """
+@@ -367,10 +382,7 @@
+ 
          @return: the URL of C{resource} if known, otherwise C{None}.
          """
 -        try:
@@ -97,7 +98,7 @@
  
      def locateResource(self, url):
          """
-@@ -385,8 +401,13 @@
+@@ -385,8 +397,13 @@
              The contained response will have a status code of
              L{responsecode.BAD_REQUEST}.
          """
@@ -112,7 +113,7 @@
          #
          # Parse the URL
          #
-@@ -414,11 +435,56 @@
+@@ -414,11 +431,48 @@
          def notFound(f):
              f.trap(http.HTTPError)
              if f.response.code != responsecode.NOT_FOUND:
@@ -121,13 +122,9 @@
              return None
  
 -        return defer.maybeDeferred(self._getChild, None, self.site.resource, segments, updatepaths=False)
-+        def _registerResource(child):
-+            self._resourcesByURL[child] = path
-+            self._urlsByResource[path] = child
-+            return child
-+        
 +        d = defer.maybeDeferred(self._getChild, None, self.site.resource, segments, updatepaths=False)
-+        d.addCallback(_registerResource)
++        d.addCallback(self._rememberResource, path)
++        d.addErrback(notFound)
 +        return d
  
 +    def locateChildResource(self, res, childpath):
@@ -159,13 +156,9 @@
 +                return f
 +            return None
 +
-+        def _registerResource(child):
-+            self._resourcesByURL[child] = url
-+            self._urlsByResource[url] = child
-+            return child
-+        
 +        d = defer.maybeDeferred(self._getChild, None, res, [segment], updatepaths=False)
-+        d.addCallback(_registerResource)
++        d.addCallback(self._rememberResource, url)
++        d.addErrback(notFound)
 +        return d
 +
      def _processingFailed(self, reason):

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061027/3e2632a9/attachment.html


More information about the calendarserver-changes mailing list