[CalendarServer-changes] [2363] CalendarServer/branches/propfind-cache/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Fri May 2 10:32:01 PDT 2008


Revision: 2363
          http://trac.macosforge.org/projects/calendarserver/changeset/2363
Author:   dreid at apple.com
Date:     2008-05-02 10:32:00 -0700 (Fri, 02 May 2008)

Log Message:
-----------
Drastically simplify the CacheChangeNotifier implementation, need to change to the usages of it.

Modified Paths:
--------------
    CalendarServer/branches/propfind-cache/twistedcaldav/cache.py
    CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py

Modified: CalendarServer/branches/propfind-cache/twistedcaldav/cache.py
===================================================================
--- CalendarServer/branches/propfind-cache/twistedcaldav/cache.py	2008-05-02 17:27:10 UTC (rev 2362)
+++ CalendarServer/branches/propfind-cache/twistedcaldav/cache.py	2008-05-02 17:32:00 UTC (rev 2363)
@@ -33,57 +33,24 @@
     name = "cacheTokens"
 
 
-class CacheChangeLoaderMixin(object):
-    _propToken = None
-    _dataToken = None
 
-    def _loadTokens(self):
-        try:
-            tokens = self._propertyStore.get(CacheTokensProperty.qname())
-            self._propToken, self._dataToken = (
-                tokens.children[0].data.split(':'))
-
-        except HTTPError, e:
-            pass
-
-
-
-class CacheChangeNotifier(CacheChangeLoaderMixin):
+class CacheChangeNotifier(object):
     def __init__(self, propertyStore):
         self._propertyStore = propertyStore
+        self._token = None
 
 
-    def _newDataToken(self):
+    def _newCacheToken(self):
         return uuid.uuid4()
 
-    _newPropertyToken = _newDataToken
 
-
-    def _writeTokens(self):
-        if self._propToken is None:
-            self._propToken = self._newPropertyToken()
-
-        if self._dataToken is None:
-            self._dataToken = self._newDataToken()
-
-        property = CacheTokensProperty.fromString('%s:%s' % (self._propToken,
-                                                             self._dataToken))
+    def changed(self):
+        property = CacheTokensProperty.fromString(self._newCacheToken())
         self._propertyStore.set(property)
 
 
-    def propertiesChanged(self):
-        self._loadTokens()
-        self._propToken = self._newPropertyToken()
-        self._writeTokens()
 
 
-    def dataChanged(self):
-        self._loadTokens()
-        self._dataToken = self._newDataToken()
-        self._writeTokens()
-
-
-
 class ResponseCache(object):
     """
     An object that caches responses to given requests.

Modified: CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py
===================================================================
--- CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py	2008-05-02 17:27:10 UTC (rev 2362)
+++ CalendarServer/branches/propfind-cache/twistedcaldav/test/test_cache.py	2008-05-02 17:32:00 UTC (rev 2363)
@@ -27,18 +27,15 @@
 from twistedcaldav.test.util import InMemoryPropertyStore
 
 
-def _newCacheTokens(prefix):
-    def _(self):
-        called = getattr(self, '_%scalled' % (prefix,), 0)
+def _newCacheToken(self):
+    called = getattr(self, '_called', 0)
 
-        token = '%sToken%d' % (prefix, called)
-        setattr(self, '_%scalled' % (prefix,), called + 1)
-        return token
+    token = 'token%d' % (called,)
+    setattr(self, '_called', called + 1)
+    return token
 
-    return _
 
 
-
 class StubRequest(object):
     def __init__(self, method, uri, authnUser):
         self.method = method
@@ -53,25 +50,22 @@
     def setUp(self):
         self.props = InMemoryPropertyStore()
         self.ccn = CacheChangeNotifier(self.props)
-        self.ccn._newPropertyToken = instancemethod(_newCacheTokens('prop'),
-                                                    self.ccn,
-                                                    CacheChangeNotifier)
-        self.ccn._newDataToken = instancemethod(_newCacheTokens('data'),
-                                                self.ccn,
-                                                CacheChangeNotifier)
+        self.ccn._newCacheToken = instancemethod(_newCacheToken,
+                                                 self.ccn,
+                                                 CacheChangeNotifier)
 
 
     def test_cacheTokenPropertyIsProvisioned(self):
         self.ccn.changed()
         token = self.props._properties[CacheTokensProperty.qname()
                                         ].children[0].data
-        self.assertEquals(tokens, 'token0')
+        self.assertEquals(token, 'token0')
 
 
     def test_changedChangesToken(self):
-        self.ccn.propertiesChanged()
-        self.ccn.propertiesChanged()
-        tokens = self.props._properties[CacheTokensProperty.qname()
+        self.ccn.changed()
+        self.ccn.changed()
+        token = self.props._properties[CacheTokensProperty.qname()
                                         ].children[0].data
         self.assertEquals(token, 'token1')
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080502/131eec0a/attachment.html


More information about the calendarserver-changes mailing list