1
0
mirror of https://github.com/actix/actix-extras.git synced 2025-06-30 20:04:26 +02:00

unify headers and body processing for client response and server request

This commit is contained in:
Nikolay Kim
2018-02-27 15:03:28 -08:00
parent aac9b5a97c
commit a7bf635158
21 changed files with 699 additions and 944 deletions

View File

@ -16,7 +16,7 @@ use bytes::{Bytes, BytesMut, BufMut, Writer};
use headers::ContentEncoding;
use body::{Body, Binary};
use error::PayloadError;
use httprequest::HttpMessage;
use httprequest::HttpInnerMessage;
use httpresponse::HttpResponse;
use payload::{PayloadSender, PayloadWriter};
@ -371,7 +371,7 @@ impl ContentEncoder {
}
pub fn for_server(buf: SharedBytes,
req: &HttpMessage,
req: &HttpInnerMessage,
resp: &mut HttpResponse,
response_encoding: ContentEncoding) -> ContentEncoder
{

View File

@ -860,6 +860,7 @@ mod tests {
use http::{Version, Method};
use super::*;
use httpmessage::HttpMessage;
use application::HttpApplication;
use server::settings::WorkerSettings;
use server::IoStream;

View File

@ -10,7 +10,7 @@ use http::header::{HeaderValue, CONNECTION, DATE};
use helpers;
use body::{Body, Binary};
use headers::ContentEncoding;
use httprequest::HttpMessage;
use httprequest::HttpInnerMessage;
use httpresponse::HttpResponse;
use super::{Writer, WriterState, MAX_WRITE_BUFFER_SIZE};
use super::shared::SharedBytes;
@ -98,7 +98,7 @@ impl<T: AsyncWrite> Writer for H1Writer<T> {
}
fn start(&mut self,
req: &mut HttpMessage,
req: &mut HttpInnerMessage,
msg: &mut HttpResponse,
encoding: ContentEncoding) -> io::Result<WriterState>
{

View File

@ -19,6 +19,7 @@ use tokio_core::reactor::Timeout;
use pipeline::Pipeline;
use error::PayloadError;
use httpcodes::HTTPNotFound;
use httpmessage::HttpMessage;
use httprequest::HttpRequest;
use payload::{Payload, PayloadWriter};

View File

@ -11,7 +11,7 @@ use http::header::{HeaderValue, CONNECTION, TRANSFER_ENCODING, DATE, CONTENT_LEN
use helpers;
use body::{Body, Binary};
use headers::ContentEncoding;
use httprequest::HttpMessage;
use httprequest::HttpInnerMessage;
use httpresponse::HttpResponse;
use super::encoding::ContentEncoder;
use super::shared::SharedBytes;
@ -111,7 +111,7 @@ impl Writer for H2Writer {
self.written
}
fn start(&mut self, req: &mut HttpMessage, msg: &mut HttpResponse, encoding: ContentEncoding)
fn start(&mut self, req: &mut HttpInnerMessage, msg: &mut HttpResponse, encoding: ContentEncoding)
-> io::Result<WriterState> {
// prepare response
self.flags.insert(Flags::STARTED);

View File

@ -25,7 +25,7 @@ pub use self::settings::ServerSettings;
use body::Binary;
use error::Error;
use headers::ContentEncoding;
use httprequest::{HttpMessage, HttpRequest};
use httprequest::{HttpInnerMessage, HttpRequest};
use httpresponse::HttpResponse;
/// max buffer size 64k
@ -103,7 +103,7 @@ pub enum WriterState {
pub trait Writer {
fn written(&self) -> u64;
fn start(&mut self, req: &mut HttpMessage, resp: &mut HttpResponse, encoding: ContentEncoding)
fn start(&mut self, req: &mut HttpInnerMessage, resp: &mut HttpResponse, encoding: ContentEncoding)
-> io::Result<WriterState>;
fn write(&mut self, payload: Binary) -> io::Result<WriterState>;

View File

@ -103,8 +103,8 @@ impl<H> WorkerSettings<H> {
SharedBytes::new(self.bytes.get_bytes(), Rc::clone(&self.bytes))
}
pub fn get_http_message(&self) -> helpers::SharedHttpMessage {
helpers::SharedHttpMessage::new(self.messages.get(), Rc::clone(&self.messages))
pub fn get_http_message(&self) -> helpers::SharedHttpInnerMessage {
helpers::SharedHttpInnerMessage::new(self.messages.get(), Rc::clone(&self.messages))
}
pub fn add_channel(&self) {