[Zope-Checkins] CVS: Zope/lib/python/OFS - Image.py:

Chris McDonough chrism at plope.com
Sun Mar 28 01:12:39 EST 2004

Update of /cvs-repository/Zope/lib/python/OFS
In directory cvs.zope.org:/tmp/cvs-serv9701/OFS

Modified Files:
      Tag: chrism-publishfile-branch
Log Message:
Instead of returning a producer directly, return a StreamIterator which is then turned into a producer.  This provides better encapsulation, as Zope app code won't depend on ZServer in places where it returns an iterator (instead it will depend only on ZPublisher).

=== Zope/lib/python/OFS/Image.py => ===
--- Zope/lib/python/OFS/Image.py:	Wed Mar 24 02:49:47 2004
+++ Zope/lib/python/OFS/Image.py	Sun Mar 28 01:12:01 2004
@@ -33,7 +33,7 @@
 from ZPublisher.HTTPRequest import FileUpload
 from zExceptions import Redirect
 from cgi import escape
-from ZServer.medusa.producers import file_producer 
+from ZPublisher.Iterators import filestream_iterator
 import stat
 import os
@@ -394,15 +394,8 @@
             result = self.ZCacheable_get(default=None)
             if result is not None:
                 # We will always get None from RAMCacheManager but we will get
-                # something implementing the IZServerProducer interface
-                # from FileCacheManager.  Returning something to the publisher
-                # that implements the IZServerProducer interface (presumably
-                # wrapped around a stream or a disk file) allows us to send the
-                # content down to the client as fast as possible without the
-                # computational/IO expense of reading from the ZODB
-                # and without the computational/memory expense of reading a
-                # arbitrarily large file into memory from disk and sending it
-                # back as a huge string.
+                # something implementing the IStreamIterator interface
+                # from FileCacheManager.
                 return result

More information about the Zope-Checkins mailing list