[Zope3-checkins] CVS: Zope3/src/zope/app/interfaces/services - interfaces.py:1.14.2.2

Guido van Rossum guido@python.org
Mon, 3 Mar 2003 13:29:00 -0500


Update of /cvs-repository/Zope3/src/zope/app/interfaces/services
In directory cvs.zope.org:/tmp/cvs-serv22756/src/zope/app/interfaces/services

Modified Files:
      Tag: use-config-branch
	interfaces.py 
Log Message:
Get rid of IService.  Instead, add ILocalService, which only applies
(as the name implies) to local services.  Fewer files touched.

=== Zope3/src/zope/app/interfaces/services/interfaces.py 1.14.2.1 => 1.14.2.2 ===
--- Zope3/src/zope/app/interfaces/services/interfaces.py:1.14.2.1	Wed Feb 26 16:19:31 2003
+++ Zope3/src/zope/app/interfaces/services/interfaces.py	Mon Mar  3 13:28:27 2003
@@ -22,13 +22,28 @@
 from zope.schema import BytesLine, TextLine, Text
 from zope.interface import Interface
 from zope.app.services.field import ComponentPath
-from zope.component.interfaces import IPresentation, IService
+from zope.component.interfaces import IPresentation
 from zope.app.interfaces.container import IDeleteNotifiable
-from zope.app.interfaces.services.configuration import IAttributeUseConfigurable
+from zope.app.interfaces.services.configuration \
+     import IUseConfigurable, IAttributeUseConfigurable
 
 
-class ISimpleService(IService, IAttributeUseConfigurable):
-    """Most services should implement this."""
+class ILocalService(IUseConfigurable):
+    """A local service isn't a local service if it doesn't implement this.
+
+    The contract of a local service includes collaboration with
+    services above it.  A local service should also implement
+    IUseConfigurable (which implies that it is adaptable to
+    IUseConfiguration).  Implementing ILocalService implies this.
+    """
+
+
+class ISimpleService(ILocalService, IAttributeUseConfigurable):
+    """Most local services should implement this instead of ILocalService.
+
+    It implies a specific way of implementing IUseConfigurable,
+    by subclassing IAttributeUseConfigurable.
+    """
 
 
 class IAdapterConfigurationInfo(Interface):