[Zope-Checkins] CVS: Zope3/lib/python/Zope/Server - Adjustments.py:1.1.2.4.2.3 Buffers.py:1.1.2.3.2.2 Counter.py:1.1.2.2 DualModeChannel.py:1.1.2.4.2.3 FixedStreamReceiver.py:1.1.2.2 IDispatcher.py:1.1.2.2 IDispatcherEventHandler.py:1.1.2.2 IDispatcherLogging.py:1.1.2.2 IHeaderOutput.py:1.1.2.3.2.2 IRequestFactory.py:1.1.4.2.2.2 IServer.py:1.1.2.2 IServerChannel.py:1.1.2.2 ISocket.py:1.1.2.2 IStreamConsumer.py:1.1.2.3.2.2 ITask.py:1.1.2.3.2.2 ITaskDispatcher.py:1.1.2.2.2.2 ServerBase.py:1.1.2.4.2.3 ServerChannelBase.py:1.1.2.3 TaskThreads.py:1.1.2.8.2.2 Utilities.py:1.1.2.3.2.2 ZLogIntegration.py:1.1.2.3.2.2 __init__.py:1.1.2.5.2.2

Shane Hathaway shane@cvs.zope.org
Thu, 4 Apr 2002 13:46:27 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/Server
In directory cvs.zope.org:/tmp/cvs-serv17993

Modified Files:
      Tag: Zope3-Server-Branch
	Adjustments.py Buffers.py Counter.py DualModeChannel.py 
	FixedStreamReceiver.py IDispatcher.py 
	IDispatcherEventHandler.py IDispatcherLogging.py 
	IHeaderOutput.py IRequestFactory.py IServer.py 
	IServerChannel.py ISocket.py IStreamConsumer.py ITask.py 
	ITaskDispatcher.py ServerBase.py ServerChannelBase.py 
	TaskThreads.py Utilities.py ZLogIntegration.py __init__.py 
Log Message:
Just fixed line endings.  No carriage returns.


=== Zope3/lib/python/Zope/Server/Adjustments.py 1.1.2.4.2.2 => 1.1.2.4.2.3 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED


=== Zope3/lib/python/Zope/Server/Buffers.py 1.1.2.3.2.1 => 1.1.2.3.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 
 


=== Zope3/lib/python/Zope/Server/Counter.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-class Counter(object):
-    "general-purpose counter"
-    
-    def __init__ (self, initial_value=0):
-        self.value = initial_value
-        
-    def increment (self, delta=1):
-        result = self.value
-        try:
-            self.value = self.value + delta
-        except OverflowError:
-            self.value = long(self.value) + delta
-        return result
-        
-    def decrement (self, delta=1):
-        result = self.value
-        try:
-            self.value = self.value - delta
-        except OverflowError:
-            self.value = long(self.value) - delta
-        return result
-        
-    def as_long (self):
-        return long(self.value)
-        
-    def __nonzero__ (self):
-        return self.value != 0
-        
-    def __repr__ (self):
-        return '<counter value=%s at %x>' % (self.value, id(self))
-        
-    def __str__ (self):
-        return str(long(self.value))[:-1]
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+class Counter(object):
+    "general-purpose counter"
+
+    def __init__ (self, initial_value=0):
+        self.value = initial_value
+
+    def increment (self, delta=1):
+        result = self.value
+        try:
+            self.value = self.value + delta
+        except OverflowError:
+            self.value = long(self.value) + delta
+        return result
+
+    def decrement (self, delta=1):
+        result = self.value
+        try:
+            self.value = self.value - delta
+        except OverflowError:
+            self.value = long(self.value) - delta
+        return result
+
+    def as_long (self):
+        return long(self.value)
+
+    def __nonzero__ (self):
+        return self.value != 0
+
+    def __repr__ (self):
+        return '<counter value=%s at %x>' % (self.value, id(self))
+
+    def __str__ (self):
+        return str(long(self.value))[:-1]


=== Zope3/lib/python/Zope/Server/DualModeChannel.py 1.1.2.4.2.2 => 1.1.2.4.2.3 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-# 
+#
 ##############################################################################
 """
 


=== Zope3/lib/python/Zope/Server/FixedStreamReceiver.py 1.1.2.1 => 1.1.2.2 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-# 
+#
 ##############################################################################
 """
 


=== Zope3/lib/python/Zope/Server/IDispatcher.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-from ISocket import ISocket
-from IDispatcherEventHandler import IDispatcherEventHandler
-from IDispatcherLogging import IDispatcherLogging
-
-
-class IDispatcher(ISocket, IDispatcherEventHandler, IDispatcherLogging):
-    """The dispatcher is the most low-level component of a server.
-
-       1. It manages the socket connections and distributes the
-          request to the appropriate channel.
-
-       2. It handles the events passed to it, such as reading input,
-          writing output and handling errors. More about this
-          functionality can be found in IDispatcherEventHandler.
-
-       3. It handles logging of the requests passed to the server as
-          well as other informational messages and erros. Please see
-          IDispatcherLogging for more details.
-
-       Note: Most of this documentation is taken from the Python
-             Library Reference.
-    """
-
-    def add_channel(map=None):
-        """After the low-level socket connection negotiation is
-           completed, a channel is created that handles all requests
-           and responses until the end of the connection.
-        """
-
-    def del_channel(map=None):
-        """Delete a channel. This should include also closing the
-           socket to the client.
-        """
-
-    def create_socket(family, type):
-        """This is identical to the creation of a normal socket, and
-           will use the same options for creation. Refer to the socket
-           documentation for information on creating sockets.
-        """
-
-    def readable():
-        """Each time through the select() loop, the set of sockets is
-           scanned, and this method is called to see if there is any
-           interest in reading. The default method simply returns 1,
-           indicating that by default, all channels will be
-           interested.
-        """
-
-    def writable():
-        """Each time through the select() loop, the set of sockets is
-           scanned, and this method is called to see if there is any
-           interest in writing. The default method simply returns 1,
-           indicating that by default, all channels will be
-           interested.
-        """
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+from ISocket import ISocket
+from IDispatcherEventHandler import IDispatcherEventHandler
+from IDispatcherLogging import IDispatcherLogging
+
+
+class IDispatcher(ISocket, IDispatcherEventHandler, IDispatcherLogging):
+    """The dispatcher is the most low-level component of a server.
+
+       1. It manages the socket connections and distributes the
+          request to the appropriate channel.
+
+       2. It handles the events passed to it, such as reading input,
+          writing output and handling errors. More about this
+          functionality can be found in IDispatcherEventHandler.
+
+       3. It handles logging of the requests passed to the server as
+          well as other informational messages and erros. Please see
+          IDispatcherLogging for more details.
+
+       Note: Most of this documentation is taken from the Python
+             Library Reference.
+    """
+
+    def add_channel(map=None):
+        """After the low-level socket connection negotiation is
+           completed, a channel is created that handles all requests
+           and responses until the end of the connection.
+        """
+
+    def del_channel(map=None):
+        """Delete a channel. This should include also closing the
+           socket to the client.
+        """
+
+    def create_socket(family, type):
+        """This is identical to the creation of a normal socket, and
+           will use the same options for creation. Refer to the socket
+           documentation for information on creating sockets.
+        """
+
+    def readable():
+        """Each time through the select() loop, the set of sockets is
+           scanned, and this method is called to see if there is any
+           interest in reading. The default method simply returns 1,
+           indicating that by default, all channels will be
+           interested.
+        """
+
+    def writable():
+        """Each time through the select() loop, the set of sockets is
+           scanned, and this method is called to see if there is any
+           interest in writing. The default method simply returns 1,
+           indicating that by default, all channels will be
+           interested.
+        """


=== Zope3/lib/python/Zope/Server/IDispatcherEventHandler.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-from Interface import Interface
-
-
-class IDispatcherEventHandler(Interface):
-    """The Dispatcher can receive several different types of events. This
-       interface describes the necessary methods that handle these common
-       event types.
-    """
-
-    def handle_read_event():
-        """Given a read event, a server has to handle the event and
-           read the input from the client.
-        """    
-
-    def handle_write_event():
-        """Given a write event, a server has to handle the event and
-           write the output to the client.
-        """    
-
-    def handle_expt_event():
-        """An exception event was handed to the server.
-        """    
-
-    def handle_error():
-        """An error occured, but we are still trying to fix it. 
-        """    
-
-    def handle_expt():
-        """Handle unhandled exceptions. This is usually a time to log.
-        """    
-
-    def handle_read():
-        """Read output from client.
-        """    
-
-    def handle_write():
-        """Write output via the socket to the client.
-        """    
-
-    def handle_connect():
-        """A client requests a connection, now we need to do soemthing.
-        """    
-
-    def handle_accept():
-        """A connection is accepted.
-        """    
-
-    def handle_close():
-        """A connection is being closed.
-        """    
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+from Interface import Interface
+
+
+class IDispatcherEventHandler(Interface):
+    """The Dispatcher can receive several different types of events. This
+       interface describes the necessary methods that handle these common
+       event types.
+    """
+
+    def handle_read_event():
+        """Given a read event, a server has to handle the event and
+           read the input from the client.
+        """
+
+    def handle_write_event():
+        """Given a write event, a server has to handle the event and
+           write the output to the client.
+        """
+
+    def handle_expt_event():
+        """An exception event was handed to the server.
+        """
+
+    def handle_error():
+        """An error occured, but we are still trying to fix it.
+        """
+
+    def handle_expt():
+        """Handle unhandled exceptions. This is usually a time to log.
+        """
+
+    def handle_read():
+        """Read output from client.
+        """
+
+    def handle_write():
+        """Write output via the socket to the client.
+        """
+
+    def handle_connect():
+        """A client requests a connection, now we need to do soemthing.
+        """
+
+    def handle_accept():
+        """A connection is accepted.
+        """
+
+    def handle_close():
+        """A connection is being closed.
+        """


=== Zope3/lib/python/Zope/Server/IDispatcherLogging.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-from Interface import Interface
-
-
-class IDispatcherLogging(Interface):
-    """This interface provides methods through which the Dispatcher will
-       write its logs. A distinction is made between hit and message logging,
-       since they often go to different output types and can have very
-       different structure.
-    """
-
-    def log (message):
-        """Logs general requests made to the server.
-        """
-        
-    def log_info(message, type='info'):
-        """Logs informational messages, warnings and errors.
-        """
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+from Interface import Interface
+
+
+class IDispatcherLogging(Interface):
+    """This interface provides methods through which the Dispatcher will
+       write its logs. A distinction is made between hit and message logging,
+       since they often go to different output types and can have very
+       different structure.
+    """
+
+    def log (message):
+        """Logs general requests made to the server.
+        """
+
+    def log_info(message, type='info'):
+        """Logs informational messages, warnings and errors.
+        """


=== Zope3/lib/python/Zope/Server/IHeaderOutput.py 1.1.2.3.2.1 => 1.1.2.3.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED


=== Zope3/lib/python/Zope/Server/IRequestFactory.py 1.1.4.2.2.1 => 1.1.4.2.2.2 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE
-# 
+#
 ##############################################################################
 """
 
@@ -30,4 +30,4 @@
         """
 
 
-        
+


=== Zope3/lib/python/Zope/Server/IServer.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-from Interface import Interface
-from Interface.Attribute import Attribute
-
-
-class IServer(Interface):
-    """This interface describes the basic base server.
-
-       The most unusual part about the Zope servers (since they all
-       implement this interface or inherit its base class) is that it
-       uses a mix of asynchronous and thread-based mechanism to
-       serve. While the low-level socket listener uses async, the
-       actual request is executed in a thread.  This has the huge
-       advantage that if a request takes really long to process, the
-       server does not hang at that point to wait for the request to
-       finish.
-    """
-
-    channel_class = Attribute("""
-                        The channel class defines the type of channel
-                        to be used by the server. See IServerChannel
-                        for more information.
-                              """)
-    
-    SERVER_IDENT = Attribute("""
-                        This string identifies the server. By default
-                        this is 'Zope.Server.' and should be
-                        overridden.
-                        """)
-                              
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+from Interface import Interface
+from Interface.Attribute import Attribute
+
+
+class IServer(Interface):
+    """This interface describes the basic base server.
+
+       The most unusual part about the Zope servers (since they all
+       implement this interface or inherit its base class) is that it
+       uses a mix of asynchronous and thread-based mechanism to
+       serve. While the low-level socket listener uses async, the
+       actual request is executed in a thread.  This has the huge
+       advantage that if a request takes really long to process, the
+       server does not hang at that point to wait for the request to
+       finish.
+    """
+
+    channel_class = Attribute("""
+                        The channel class defines the type of channel
+                        to be used by the server. See IServerChannel
+                        for more information.
+                              """)
+
+    SERVER_IDENT = Attribute("""
+                        This string identifies the server. By default
+                        this is 'Zope.Server.' and should be
+                        overridden.
+                        """)
+


=== Zope3/lib/python/Zope/Server/IServerChannel.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-from Interface import Interface
-from Interface.Attribute import Attribute
-
-class IServerChannel(Interface):
-    """
-    """
-
-    parser_class = Attribute("Subclasses must provide a parser class")
-    task_class = Attribute("Subclasses must provide a task class.")
-
-    active_channels = Attribute("Class-specific channel tracker")
-    next_channel_cleanup = Attribute("Class-specific cleanup time")
-
-    proto_request = Attribute("A request parser instance")
-    ready_requests = Attribute("A list of requests to be processed.")
-    last_activity = Attribute("Time of last activity")
-    running_tasks = Attribute("boolean")
-
-
-    def queue_request(self, req):
-        """Queues a request to be processed in sequence by a task.
-        """
-
-    def end_task(self, close):
-        """Called at the end of a task, may launch another task.
-        """
-
-    def create_task(self, req):
-        """Creates a new task and queues it for execution.
-
-        The task may get executed in another thread.
-        """
-
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+from Interface import Interface
+from Interface.Attribute import Attribute
+
+class IServerChannel(Interface):
+    """
+    """
+
+    parser_class = Attribute("Subclasses must provide a parser class")
+    task_class = Attribute("Subclasses must provide a task class.")
+
+    active_channels = Attribute("Class-specific channel tracker")
+    next_channel_cleanup = Attribute("Class-specific cleanup time")
+
+    proto_request = Attribute("A request parser instance")
+    ready_requests = Attribute("A list of requests to be processed.")
+    last_activity = Attribute("Time of last activity")
+    running_tasks = Attribute("boolean")
+
+
+    def queue_request(self, req):
+        """Queues a request to be processed in sequence by a task.
+        """
+
+    def end_task(self, close):
+        """Called at the end of a task, may launch another task.
+        """
+
+    def create_task(self, req):
+        """Creates a new task and queues it for execution.
+
+        The task may get executed in another thread.
+        """
+


=== Zope3/lib/python/Zope/Server/ISocket.py 1.1.2.1 => 1.1.2.2 ===
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-# 
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-# 
-##############################################################################
-"""
-
-$Id$
-"""
-
-from Interface import Interface
-
-
-class ISocket(Interface):
-    """Represents a socket.
-
-       Note: Most of this documentation is taken from the Python Library
-             Reference.
-    """
-
-    def listen(num): 
-        """Listen for connections made to the socket. The backlog argument
-           specifies the maximum number of queued connections and should
-           be at least 1; the maximum value is system-dependent (usually
-           5).
-        """
-
-    def bind(addr):
-        """Bind the socket to address. The socket must not already be bound.
-        """
-
-    def connect(address):
-        """Connect to a remote socket at address.
-        """
-
-    def accept(): 
-        """Accept a connection. The socket must be bound to an address and
-           listening for connections. The return value is a pair (conn,
-           address) where conn is a new socket object usable to send and
-           receive data on the connection, and address is the address
-           bound to the socket on the other end of the connection.        
-        """
-
-    def recv(buffer_size):
-        """Receive data from the socket. The return value is a string
-           representing the data received. The maximum amount of data
-           to be received at once is specified by bufsize. See the
-           Unix manual page recv(2) for the meaning of the optional
-           argument flags; it defaults to zero.
-        """
-
-    def send(data):
-        """Send data to the socket. The socket must be connected to a
-           remote socket. The optional flags argument has the same
-           meaning as for recv() above. Returns the number of bytes
-           sent. Applications are responsible for checking that all
-           data has been sent; if only some of the data was
-           transmitted, the application needs to attempt delivery of
-           the remaining data.
-        """
-
-    def close():
-        """Close the socket. All future operations on the socket
-           object will fail. The remote end will receive no more data
-           (after queued data is flushed). Sockets are automatically
-           closed when they are garbage-collected.
-        """
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+
+$Id$
+"""
+
+from Interface import Interface
+
+
+class ISocket(Interface):
+    """Represents a socket.
+
+       Note: Most of this documentation is taken from the Python Library
+             Reference.
+    """
+
+    def listen(num):
+        """Listen for connections made to the socket. The backlog argument
+           specifies the maximum number of queued connections and should
+           be at least 1; the maximum value is system-dependent (usually
+           5).
+        """
+
+    def bind(addr):
+        """Bind the socket to address. The socket must not already be bound.
+        """
+
+    def connect(address):
+        """Connect to a remote socket at address.
+        """
+
+    def accept():
+        """Accept a connection. The socket must be bound to an address and
+           listening for connections. The return value is a pair (conn,
+           address) where conn is a new socket object usable to send and
+           receive data on the connection, and address is the address
+           bound to the socket on the other end of the connection.
+        """
+
+    def recv(buffer_size):
+        """Receive data from the socket. The return value is a string
+           representing the data received. The maximum amount of data
+           to be received at once is specified by bufsize. See the
+           Unix manual page recv(2) for the meaning of the optional
+           argument flags; it defaults to zero.
+        """
+
+    def send(data):
+        """Send data to the socket. The socket must be connected to a
+           remote socket. The optional flags argument has the same
+           meaning as for recv() above. Returns the number of bytes
+           sent. Applications are responsible for checking that all
+           data has been sent; if only some of the data was
+           transmitted, the application needs to attempt delivery of
+           the remaining data.
+        """
+
+    def close():
+        """Close the socket. All future operations on the socket
+           object will fail. The remote end will receive no more data
+           (after queued data is flushed). Sockets are automatically
+           closed when they are garbage-collected.
+        """


=== Zope3/lib/python/Zope/Server/IStreamConsumer.py 1.1.2.3.2.1 => 1.1.2.3.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 
 
@@ -15,7 +15,7 @@
     """Consumes a data stream until reaching a completion point.
 
     The actual amount to be consumed might not be known ahead of time.
-    """    
+    """
 
     def received(data):
         """Accepts data, returning the number of bytes consumed."""


=== Zope3/lib/python/Zope/Server/ITask.py 1.1.2.3.2.1 => 1.1.2.3.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED


=== Zope3/lib/python/Zope/Server/ITaskDispatcher.py 1.1.2.2.2.1 => 1.1.2.2.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 
 


=== Zope3/lib/python/Zope/Server/ServerBase.py 1.1.2.4.2.2 => 1.1.2.4.2.3 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-# 
+#
 ##############################################################################
 """
 


=== Zope3/lib/python/Zope/Server/ServerChannelBase.py 1.1.2.2 => 1.1.2.3 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-# 
+#
 ##############################################################################
 """
 
@@ -213,4 +213,4 @@
         self.set_sync()
         task = self.task_class(self, req)
         self.server.addTask(task)
-        
+


=== Zope3/lib/python/Zope/Server/TaskThreads.py 1.1.2.8.2.1 => 1.1.2.8.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED


=== Zope3/lib/python/Zope/Server/Utilities.py 1.1.2.3.2.1 => 1.1.2.3.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 
 


=== Zope3/lib/python/Zope/Server/ZLogIntegration.py 1.1.2.3.2.1 => 1.1.2.3.2.2 ===
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED


=== Zope3/lib/python/Zope/Server/__init__.py 1.1.2.5.2.1 => 1.1.2.5.2.2 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
-# 
+#
 ##############################################################################
 """
 Zope.Server package.