Move read_chunk to the request
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine.pm
index f305ec3..9a6c287 100644 (file)
@@ -345,12 +345,6 @@ sub finalize_headers {
     return;
 }
 
-=head2 $self->finalize_read($c)
-
-=cut
-
-sub finalize_read { }
-
 =head2 $self->finalize_uploads($c)
 
 Clean up after uploads, deleting temp files.
@@ -399,7 +393,6 @@ sub prepare_body {
         # paranoia against wrong Content-Length header
         my $remaining = $length - $c->request->_read_position;
         if ( $remaining > 0 ) {
-            $self->finalize_read($c);
             Catalyst::Exception->throw(
                 "Wrong Content-Length value: $length" );
         }
@@ -709,14 +702,6 @@ sub prepare_uploads {
     }
 }
 
-=head2 $self->prepare_write($c)
-
-Abstract method. Implemented by the engines.
-
-=cut
-
-sub prepare_write { }
-
 =head2 $self->read($c, [$maxlength])
 
 Reads from the input stream by calling C<< $self->read_chunk >>.
@@ -734,7 +719,6 @@ sub read {
 
     # Are we done reading?
     if ( $remaining <= 0 ) {
-        $self->finalize_read($c);
         return;
     }
 
@@ -743,7 +727,6 @@ sub read {
     if ( defined $rc ) {
         if (0 == $rc) { # Nothing more to read even though Content-Length
                         # said there should be.
-            $self->finalize_read;
             return;
         }
         my $request = $c->request;
@@ -756,7 +739,7 @@ sub read {
     }
 }
 
-=head2 $self->read_chunk($c, $buffer, $length)
+=head2 $self->read_chunk($c, \$buffer, $length)
 
 Each engine implements read_chunk as its preferred way of reading a chunk
 of data. Returns the number of bytes read. A return of 0 indicates that
@@ -766,7 +749,7 @@ there is no more data to be read.
 
 sub read_chunk {
     my ($self, $ctx) = (shift, shift);
-    return $ctx->request->env->{'psgi.input'}->read(@_);
+    return $ctx->request->read_chunk(@_);
 }
 
 =head2 $self->read_length
@@ -845,10 +828,6 @@ sub write {
     my ( $self, $c, $buffer ) = @_;
 
     my $response = $c->response;
-    unless ( $response->_prepared_write ) {
-        $self->prepare_write($c);
-        $response->_set_prepared_write(1);
-    }
 
     $buffer = q[] unless defined $buffer;