Struct StreamContext

Source
pub struct StreamContext {
    pub connection_id: u64,
    pub request_id: u64,
    pub payload_bytes_sent: u64,
    pub other_bytes_sent: u64,
    pub bytes_read: u64,
    pub progress: EventSender,
}

Fields§

§connection_id: u64

The connection ID from the connection

§request_id: u64

The request ID from the recv stream

§payload_bytes_sent: u64

The number of bytes written that are part of the payload

§other_bytes_sent: u64

The number of bytes written that are not part of the payload

§bytes_read: u64

The number of bytes read from the stream

§progress: EventSender

The progress sender to send events to

Implementations§

Source§

impl StreamContext

Source

pub fn log_other_write(&mut self, len: usize)

Increase the write count due to a non-payload write.

Source

pub async fn send_transfer_completed(&mut self)

Source

pub async fn send_transfer_aborted(&mut self)

Source

pub fn notify_payload_write(&mut self, index: u64, offset: u64, len: usize)

Increase the write count due to a payload write, and notify the progress sender.

index is the index of the blob in the request. offset is the offset in the blob where the write started. len is the length of the write.

Source

pub async fn send_get_request_received( &self, hash: &Hash, ranges: &ChunkRangesSeq, )

Send a get request received event.

This sends all the required information to make sense of subsequent events such as Event::TransferStarted and Event::TransferProgress.

Source

pub async fn send_get_many_request_received( &self, hashes: &[Hash], ranges: &ChunkRangesSeq, )

Send a get request received event.

This sends all the required information to make sense of subsequent events such as Event::TransferStarted and Event::TransferProgress.

Source

pub async fn authorize_push_request( &self, hash: &Hash, ranges: &ChunkRangesSeq, ) -> bool

Authorize a push request.

This will send a request to the event sender, and wait for a response if a progress sender is enabled. If not, it will always fail.

We want to make accepting push requests very explicit, since this allows remote nodes to add arbitrary data to our store.

Source

pub async fn send_transfer_started(&self, index: u64, hash: &Hash, size: u64)

Send a transfer started event.

Trait Implementations§

Source§

impl Debug for StreamContext

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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> 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> CompatExt for T

Source§

fn compat(self) -> Compat<T>

Applies the Compat adapter by value. Read more
Source§

fn compat_ref(&self) -> Compat<&T>

Applies the Compat adapter by shared reference. Read more
Source§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the Compat adapter by mutable reference. 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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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<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
Source§

impl<T> ErasedDestructor for T
where T: 'static,