pub struct MultiStream<B: EventStreamBackend> {
pub logger: Arc<ServerLogger>,
/* private fields */
}Expand description
Manages multiple streams with synchronization logic based on shared bindings.
This struct handles the creation and alignment of streams to ensure proper synchronization when bindings (e.g., buffers) are shared across different streams.
Fields§
§logger: Arc<ServerLogger>The logger used by the server.
Implementations§
Source§impl<B: EventStreamBackend> MultiStream<B>
impl<B: EventStreamBackend> MultiStream<B>
Sourcepub fn backend_mut(&mut self) -> &mut B
pub fn backend_mut(&mut self) -> &mut B
Mutable access to the stream-creation backend, e.g. to change the configuration new streams are created with. Already-created streams are unaffected.
Sourcepub fn new(logger: Arc<ServerLogger>, backend: B, max_streams: u8) -> Self
pub fn new(logger: Arc<ServerLogger>, backend: B, max_streams: u8) -> Self
Creates an empty multi-stream.
Sourcepub fn stream_ids(&self) -> impl Iterator<Item = StreamId> + '_
pub fn stream_ids(&self) -> impl Iterator<Item = StreamId> + '_
Synthetic StreamIds, one per initialized stream (see StreamPool::stream_ids).
Sourcepub fn resolve<'a>(
&mut self,
stream_id: StreamId,
handles: impl Iterator<Item = &'a Binding>,
enforce_healthy: bool,
) -> Result<ResolvedStreams<'_, B>, ServerError>
pub fn resolve<'a>( &mut self, stream_id: StreamId, handles: impl Iterator<Item = &'a Binding>, enforce_healthy: bool, ) -> Result<ResolvedStreams<'_, B>, ServerError>
Resolves and returns a mutable reference to the stream for the given ID, performing any necessary alignment based on the provided bindings.
This method ensures that the stream is synchronized with any shared bindings from other streams before returning the stream reference.
Trait Implementations§
Auto Trait Implementations§
impl<B> Freeze for MultiStream<B>where
B: Freeze,
impl<B> RefUnwindSafe for MultiStream<B>
impl<B> Send for MultiStream<B>
impl<B> Sync for MultiStream<B>
impl<B> Unpin for MultiStream<B>
impl<B> UnsafeUnpin for MultiStream<B>where
B: UnsafeUnpin,
impl<B> UnwindSafe for MultiStream<B>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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