[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.