[CalendarServer-changes] [4838] CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Dec 7 15:23:09 PST 2009
Revision: 4838
http://trac.macosforge.org/projects/calendarserver/changeset/4838
Author: wsanchez at apple.com
Date: 2009-12-07 15:23:09 -0800 (Mon, 07 Dec 2009)
Log Message:
-----------
Unroll inlineCallbacks
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
Modified: CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py 2009-12-07 23:16:52 UTC (rev 4837)
+++ CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py 2009-12-07 23:23:09 UTC (rev 4838)
@@ -568,44 +568,45 @@
@return: a deferred returning a C{set} of members.
"""
+ def gotCachedMembers(members):
+ if members is not None:
+ return members
- def _members():
- return set([
+ # Cache miss; compute members and update cache
+ members = set([
row[0] for row in
self._db_execute("select MEMBER from GROUPS where GROUPNAME = :1", principalUID)
])
+ d = self._memcacher.setMembers(principalUID, members)
+ d.addCallback(lambda _: members)
+ return d
- def gotCachedMembers(members):
- if members is None:
- # Cache miss; compute members and update cache
- members = _members()
- d = self._memcacher.setMembers(principalUID, members)
- d.addCallback(lambda _: members)
- return d
- else:
- return members
-
d = self._memcacher.getMembers(principalUID)
d.addCallback(gotCachedMembers)
return d
- @inlineCallbacks
def getMemberships(self, principalUID):
"""
Return the list of group principal UIDs the specified principal is a member of.
@return: a deferred returning a C{set} of memberships.
"""
+ def gotCachedMemberships(memberships):
+ if memberships is not None:
+ return memberships
- def _members():
- return set([row[0] for row in self._db_execute("select GROUPNAME from GROUPS where MEMBER = :1", principalUID)])
+ # Cache miss; compute memberships and update cache
+ memberships = set([
+ row[0] for row in
+ self._db_execute("select GROUPNAME from GROUPS where MEMBER = :1", principalUID)
+ ])
+ d = self._memcacher.setMemberships(principalUID, memberships)
+ d.addCallback(lambda _: memberships)
+ return d
- # Pull from cache
- result = yield self._memcacher.getMemberships(principalUID)
- if result is None:
- result = _members()
- yield self._memcacher.setMemberships(principalUID, result)
- returnValue(result)
+ d = self._memcacher.getMemberships(principalUID)
+ d.addCallback(gotCachedMemberships)
+ return d
def _add_to_db(self, principalUID, members):
"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091207/b712fbb1/attachment.html>
More information about the calendarserver-changes
mailing list