Skip to content

Commit

Permalink
Rename MultipartReader
Browse files Browse the repository at this point in the history
  • Loading branch information
feliwir committed Feb 26, 2024
1 parent f6ac9d2 commit 1649b50
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 26 deletions.
12 changes: 6 additions & 6 deletions server/src/multipart/extractor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
use actix_utils::future::{ready, Ready};
use actix_web::{dev::Payload, Error, FromRequest, HttpRequest};

use crate::multipart::MultipartRelated;
use crate::multipart::MultipartReader;

impl FromRequest for MultipartRelated {
impl FromRequest for MultipartReader {
type Error = Error;
type Future = Ready<Result<MultipartRelated, Error>>;
type Future = Ready<Result<MultipartReader, Error>>;

#[inline]
fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future {
ready(Ok(match MultipartRelated::boundary(req.headers()) {
Ok(boundary) => MultipartRelated::from_boundary(boundary, payload.take()),
Err(err) => MultipartRelated::from_error(err),
ready(Ok(match MultipartReader::boundary(req.headers()) {
Ok(boundary) => MultipartReader::from_boundary(boundary, payload.take()),
Err(err) => MultipartReader::from_error(err),
}))
}
}
4 changes: 2 additions & 2 deletions server/src/multipart/mod.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
mod extractor;
mod server;
mod reader;

pub use server::*;
pub use reader::*;
32 changes: 16 additions & 16 deletions server/src/multipart/server.rs → server/src/multipart/reader.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//! MultipartRelated response payload support.
//! MultipartReader response payload support.

use std::{
cell::{Cell, RefCell, RefMut},
Expand All @@ -24,9 +24,9 @@ const MAX_HEADERS: usize = 32;
///
/// This will parse the incoming stream into `MultipartItem` instances via its
/// Stream implementation.
/// `MultipartItem::Object` contains multipart field. `MultipartItem::MultipartRelated`
/// `MultipartItem::Object` contains multipart field. `MultipartItem::MultipartReader`
/// is used for nested multipart streams.
pub struct MultipartRelated {
pub struct MultipartReader {
safety: Safety,
error: Option<MultipartError>,
inner: Option<InnerMultipart>,
Expand Down Expand Up @@ -59,15 +59,15 @@ struct InnerMultipart {
item: InnerMultipartItem,
}

impl MultipartRelated {
impl MultipartReader {
/// Create multipart instance for boundary.
pub fn new<S>(headers: &HeaderMap, stream: S) -> MultipartRelated
pub fn new<S>(headers: &HeaderMap, stream: S) -> MultipartReader
where
S: Stream<Item = Result<Bytes, PayloadError>> + 'static,
{
match Self::boundary(headers) {
Ok(boundary) => MultipartRelated::from_boundary(boundary, stream),
Err(err) => MultipartRelated::from_error(err),
Ok(boundary) => MultipartReader::from_boundary(boundary, stream),
Err(err) => MultipartReader::from_error(err),
}
}

Expand All @@ -86,11 +86,11 @@ impl MultipartRelated {
}

/// Create multipart instance for given boundary and stream
pub(crate) fn from_boundary<S>(boundary: String, stream: S) -> MultipartRelated
pub(crate) fn from_boundary<S>(boundary: String, stream: S) -> MultipartReader
where
S: Stream<Item = Result<Bytes, PayloadError>> + 'static,
{
MultipartRelated {
MultipartReader {
error: None,
safety: Safety::new(),
inner: Some(InnerMultipart {
Expand All @@ -102,17 +102,17 @@ impl MultipartRelated {
}
}

/// Create MultipartRelated instance from MultipartError
pub(crate) fn from_error(err: MultipartError) -> MultipartRelated {
MultipartRelated {
/// Create MultipartReader instance from MultipartError
pub(crate) fn from_error(err: MultipartError) -> MultipartReader {
MultipartReader {
error: Some(err),
safety: Safety::new(),
inner: None,
}
}
}

impl Stream for MultipartRelated {
impl Stream for MultipartReader {
type Item = Result<Object, MultipartError>;

fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
Expand All @@ -135,7 +135,7 @@ impl Stream for MultipartRelated {
None => Poll::Ready(Some(Err(this
.error
.take()
.expect("MultipartRelated polled after finish")))),
.expect("MultipartReader polled after finish")))),
}
}
}
Expand Down Expand Up @@ -679,7 +679,7 @@ impl Clone for PayloadRef {

/// Counter. It tracks of number of clones of payloads and give access to payload only to top most.
/// * When dropped, parent task is awakened. This is to support the case where Object is
/// dropped in a separate task than MultipartRelated.
/// dropped in a separate task than MultipartReader.
/// * Assumes that parent owners don't move to different tasks; only the top-most is allowed to.
/// * If dropped and is not top most owner, is_clean flag is set to false.
#[derive(Debug)]
Expand Down Expand Up @@ -725,7 +725,7 @@ impl Safety {
impl Drop for Safety {
fn drop(&mut self) {
if Rc::strong_count(&self.payload) != self.level {
// MultipartRelated dropped leaving a Object
// MultipartReader dropped leaving a Object
self.clean.set(false);
}

Expand Down
4 changes: 2 additions & 2 deletions server/src/stow.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use dicom_json::DicomJson;
use dicom_object::{FileDicomObject, InMemDicomObject};
use futures_util::StreamExt;

use crate::{multipart::MultipartRelated, DicomWebServer};
use crate::{multipart::MultipartReader, DicomWebServer};

async fn collect_dicom_files(
request: HttpRequest,
Expand All @@ -19,7 +19,7 @@ async fn collect_dicom_files(

// Check if the content type is multipart/related
if content_type == "multipart/related" {
let mut multipart = MultipartRelated::from_request(&request, &mut payload.into_inner())
let mut multipart = MultipartReader::from_request(&request, &mut payload.into_inner())
.await
.map_err(|e| e.to_string())?;
// iterate over multipart stream
Expand Down

0 comments on commit 1649b50

Please sign in to comment.