[Zope3-checkins] SVN: Zope3/trunk/src/zope/app/intid/ Added a level
of indirection as to what BTree flavour the IntIds utility uses.
Albertas Agejevas
alga at pov.lt
Thu Feb 1 12:06:09 EST 2007
Log message for revision 72302:
Added a level of indirection as to what BTree flavour the IntIds utility uses.
Changed:
U Zope3/trunk/src/zope/app/intid/__init__.py
U Zope3/trunk/src/zope/app/intid/configure.zcml
U Zope3/trunk/src/zope/app/intid/interfaces.py
U Zope3/trunk/src/zope/app/intid/tests.py
-=-
Modified: Zope3/trunk/src/zope/app/intid/__init__.py
===================================================================
--- Zope3/trunk/src/zope/app/intid/__init__.py 2007-02-01 17:03:58 UTC (rev 72301)
+++ Zope3/trunk/src/zope/app/intid/__init__.py 2007-02-01 17:06:08 UTC (rev 72302)
@@ -29,8 +29,10 @@
from zope.interface import implements
from zope.security.proxy import removeSecurityProxy
from zope.location.interfaces import ILocation
-from zope.component import adapter, getAllUtilitiesRegisteredFor
+from zope.component import adapter, getAllUtilitiesRegisteredFor, getUtility
+from zope.component.interfaces import IFactory
+from zope.component.factory import Factory
from zope.app.container.interfaces import IObjectRemovedEvent
from zope.app.container.interfaces import IObjectAddedEvent
from zope.app.container.contained import Contained
@@ -40,6 +42,7 @@
from zope.app.intid.interfaces import IntIdRemovedEvent
from zope.app.intid.interfaces import IntIdAddedEvent
+
class IntIds(Persistent, Contained):
"""This utility provides a two way mapping between objects and
integer ids.
@@ -48,13 +51,13 @@
"""
implements(IIntIds)
- _v_nextid = None
+ _v_nextid = None
_randrange = random.randrange
def __init__(self):
- self.ids = OIBTree.OIBTree()
- self.refs = IOBTree.IOBTree()
+ self.ids = getUtility(IFactory, 'OIBTree')()
+ self.refs = getUtility(IFactory, 'IOBTree')()
def __len__(self):
return len(self.ids)
@@ -167,3 +170,10 @@
utility.register(key)
# Notify the catalogs that this object was added.
notify(IntIdAddedEvent(ob, event))
+
+
+#
+# Hooks for changing the flavour of BTrees IntIds utility uses
+#
+IOBTreeFactory = Factory(IOBTree.IOBTree)
+OIBTreeFactory = Factory(OIBTree.OIBTree)
Modified: Zope3/trunk/src/zope/app/intid/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/intid/configure.zcml 2007-02-01 17:03:58 UTC (rev 72301)
+++ Zope3/trunk/src/zope/app/intid/configure.zcml 2007-02-01 17:06:08 UTC (rev 72302)
@@ -32,6 +32,9 @@
<subscriber handler=".removeIntIdSubscriber" />
<subscriber handler=".addIntIdSubscriber" />
+ <utility component=".IOBTreeFactory" name="IOBTree" />
+ <utility component=".OIBTreeFactory" name="OIBTree" />
+
<!-- Views -->
<include package=".browser" />
Modified: Zope3/trunk/src/zope/app/intid/interfaces.py
===================================================================
--- Zope3/trunk/src/zope/app/intid/interfaces.py 2007-02-01 17:03:58 UTC (rev 72301)
+++ Zope3/trunk/src/zope/app/intid/interfaces.py 2007-02-01 17:06:08 UTC (rev 72302)
@@ -29,8 +29,8 @@
def __iter__():
"""Return an iteration on the ids"""
-
+
class IIntIdsSet(Interface):
def register(ob):
Modified: Zope3/trunk/src/zope/app/intid/tests.py
===================================================================
--- Zope3/trunk/src/zope/app/intid/tests.py 2007-02-01 17:03:58 UTC (rev 72301)
+++ Zope3/trunk/src/zope/app/intid/tests.py 2007-02-01 17:06:08 UTC (rev 72302)
@@ -25,12 +25,14 @@
from zope.interface.verify import verifyObject
from zope.location.interfaces import ILocation
+from zope.component.interfaces import IFactory
+
from zope.app.testing import setup, ztapi
from zope.app import zapi
from zope.app.component.hooks import setSite
from zope.app.intid.interfaces import IIntIds
-from zope.app.intid import IntIds
+from zope.app.intid import IntIds, IOBTreeFactory, OIBTreeFactory
from zope.app.keyreference.persistent import KeyReferenceToPersistent
from zope.app.keyreference.persistent import connectionOfPersistent
from zope.app.keyreference.interfaces import IKeyReference
@@ -61,6 +63,8 @@
ztapi.provideAdapter(IPersistent, IConnection, connectionOfPersistent)
ztapi.provideAdapter(IPersistent, IKeyReference,
KeyReferenceToPersistent)
+ ztapi.provideUtility(IFactory, IOBTreeFactory, 'IOBTree')
+ ztapi.provideUtility(IFactory, OIBTreeFactory, 'OIBTree')
def tearDown(self):
setup.placefulTearDown()
More information about the Zope3-Checkins
mailing list