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 BufferBinding>,
enforce_healthy: bool,
) -> Result<ResolvedStreams<'_, B>, ServerError>
pub fn resolve<'a>( &mut self, stream_id: StreamId, handles: impl Iterator<Item = &'a BufferBinding>, 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>
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>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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