[Zope-dev] Streaming Response

Shane Hathaway shane@zope.com
Thu, 01 May 2003 12:00:03 -0400


Toby Dickenson wrote:
> On Thursday 01 May 2003 4:19 pm, Shane Hathaway wrote:
> 
> 
>>What I'm suggesting is that the storage might transparently enhance the
>>application.  On second thought, though, maybe that's not a good
>>pattern, since it might surprise someone to find a StreamedFileData when
>>they expected a SimpleFileData instance.  Maybe this stuff should stay
>>at the application layer.
> 
> 
> It would be less evil if the storage exposed extra capabilities to the 
> application though _p_ attributes:
> 
> class SimpleFileData:
> 
>      def __init__(self, bytes):
>          self.bytes = bytes
> 
>      _p_path_to_data = None
> 
>      def send(self, RESPONSE):
>          if self _p_path_to_data in not None:
>              # Hurrah! a gift from our storage
>              bytes = open(self._p_path_to_data, 'rb').read()
>              RESPONSE.write(bytes)
>          else:
>              RESPONSE.write(self.bytes)

I like that idea!  It builds on the understanding that _p_ attributes 
are controlled by the database, not the application.  Thanks, I'll keep 
that in mind.

Shane