Http2Session

Struct Http2Session 

Source
pub struct Http2Session {
    pub read_timeout: Option<Duration>,
    pub write_timeout: Option<Duration>,
    /* private fields */
}

Fields§

§read_timeout: Option<Duration>

The read timeout, which will be applied to both reading the header and the body. The timeout is reset on every read. This is not a timeout on the overall duration of the response.

§write_timeout: Option<Duration>

The write timeout which will be applied to writing request body. The timeout is reset on every write. This is not a timeout on the overall duration of the request.

Implementations§

Source§

impl Http2Session

Source

pub fn write_request_header( &mut self, req: Box<RequestHeader>, end: bool, ) -> Result<(), Box<Error>>

Write the request header to the server

Source

pub async fn write_request_body( &mut self, data: Bytes, end: bool, ) -> Result<(), Box<Error>>

Write a request body chunk

Source

pub async fn do_write_request_body( &mut self, data: Bytes, end: bool, ) -> Result<(), Box<Error>>

Source

pub fn finish_request_body(&mut self) -> Result<(), Box<Error>>

Signal that the request body has ended

Source

pub async fn read_response_header(&mut self) -> Result<(), Box<Error>>

Read the response header

Source

pub async fn read_response_body(&mut self) -> Result<Option<Bytes>, Box<Error>>

Read the response body

None means, no more body to read

Source

pub fn response_finished(&self) -> bool

Whether the response has ended

Source

pub fn check_response_end_or_error(&mut self) -> Result<bool, Box<Error>>

Check whether stream finished with error. Like response_finished, but also attempts to poll the h2 stream for errors that may have caused the stream to terminate, and returns them as H2Errors.

Source

pub async fn read_trailers(&mut self) -> Result<Option<HeaderMap>, Box<Error>>

Read the optional trailer headers

Source

pub fn request_header(&self) -> Option<&RequestHeader>

The request header if it is already sent

Source

pub fn response_header(&self) -> Option<&ResponseHeader>

The response header if it is already read

Source

pub fn shutdown(&mut self)

Give up the http session abruptly.

Source

pub fn digest(&self) -> Option<&Digest>

Return the Digest of the connection

For reused connection, the timing in the digest will reflect its initial handshakes The caller should check if the connection is reused to avoid misuse the timing field.

Source

pub fn digest_mut(&mut self) -> Option<&mut Digest>

Return a mutable Digest reference for the connection

Will return None if multiple H2 streams are open.

Source

pub fn server_addr(&self) -> Option<&SocketAddr>

Return the server (peer) address recorded in the connection digest.

Source

pub fn client_addr(&self) -> Option<&SocketAddr>

Return the client (local) address recorded in the connection digest.

Source

pub fn fd(&self) -> i32

the FD of the underlying connection

Source

pub fn take_request_body_writer(&mut self) -> Option<SendStream<Bytes>>

take the body sender to another task to perform duplex read and write

Trait Implementations§

Source§

impl Drop for Http2Session

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcastable for T
where T: Any + Send + Sync + 'static,

Source§

fn upcast_any_ref(&self) -> &(dyn Any + 'static)

upcast ref
Source§

fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)

upcast mut ref
Source§

fn upcast_any_box(self: Box<T>) -> Box<dyn Any>

upcast boxed dyn
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more