pub struct StreamBufferPartialSettings {
pub buffer_lifetime_ordinal: Option<u64>,
pub buffer_constraints_version_ordinal: Option<u64>,
pub single_buffer_mode: Option<bool>,
pub packet_count_for_server: Option<u32>,
pub packet_count_for_client: Option<u32>,
pub sysmem_token: Option<ClientEnd<BufferCollectionTokenMarker>>,
pub sysmem2_token: Option<ClientEnd<BufferCollectionTokenMarker>>,
/* private fields */
}
Fields§
§buffer_lifetime_ordinal: Option<u64>
The containing message starts a new buffer_lifetime_ordinal.
There is a separate buffer_lifetime_ordinal for input vs. output.
Re-use of the same value is not allowed. Values must be odd. Values must only increase (increasing by more than 2 is permitted).
A buffer_lifetime_ordinal lifetime starts at SetInputBufferSettings() or SetOutputBufferSettings(), and ends at the earlier of CloseCurrentStream() with release_input_buffers/release_output_buffers set or SetOutputBufferSettings() with new buffer_lifetime_ordinal in the case of mid-stream output config change.
buffer_constraints_version_ordinal: Option<u64>
This value indicates which version of constraints the client is/was aware of so far.
For input, this must always be 0 because constraints don’t change for input (settings can change, but there’s no settings vs current constraints synchronization issue on input).
For output, this allows the server to know when the client is sufficiently caught up before the server will generate any more output.
When there is no active stream, a client is permitted to re-configure buffers again using the same buffer_constraints_version_ordinal.
single_buffer_mode: Option<bool>
§packet_count_for_server: Option<u32>
§packet_count_for_client: Option<u32>
§sysmem_token: Option<ClientEnd<BufferCollectionTokenMarker>>
§sysmem2_token: Option<ClientEnd<BufferCollectionTokenMarker>>
The client end of a BufferCollectionToken channel, which the StreamProcessor will use to deliver constraints to sysmem and learn of buffers allocated by sysmem.
The client guarantees that the token is already known to sysmem (via BufferCollectionToken.Sync(), BufferCollection.Sync(), or BufferCollectionEvents.OnDuplicatedTokensKnownByServer()).
Trait Implementations§
source§impl Debug for StreamBufferPartialSettings
impl Debug for StreamBufferPartialSettings
source§impl Decode<StreamBufferPartialSettings> for StreamBufferPartialSettings
impl Decode<StreamBufferPartialSettings> for StreamBufferPartialSettings
source§impl Default for StreamBufferPartialSettings
impl Default for StreamBufferPartialSettings
source§fn default() -> StreamBufferPartialSettings
fn default() -> StreamBufferPartialSettings
source§impl Encode<StreamBufferPartialSettings> for &mut StreamBufferPartialSettings
impl Encode<StreamBufferPartialSettings> for &mut StreamBufferPartialSettings
source§impl PartialEq for StreamBufferPartialSettings
impl PartialEq for StreamBufferPartialSettings
source§fn eq(&self, other: &StreamBufferPartialSettings) -> bool
fn eq(&self, other: &StreamBufferPartialSettings) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl ResourceTypeMarker for StreamBufferPartialSettings
impl ResourceTypeMarker for StreamBufferPartialSettings
§type Borrowed<'a> = &'a mut StreamBufferPartialSettings
type Borrowed<'a> = &'a mut StreamBufferPartialSettings
Encode<Self>
type cheaply obtainable from &mut Self::Owned
. There are three cases: Read moresource§fn take_or_borrow<'a>(
value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
&mut Self::Owned
to Self::Borrowed
. For
HandleBased
types this is “take” (it returns an owned handle and
replaces value
with Handle::invalid
), and for all other types it is
“borrow” (just converts from one reference to another).source§impl TypeMarker for StreamBufferPartialSettings
impl TypeMarker for StreamBufferPartialSettings
§type Owned = StreamBufferPartialSettings
type Owned = StreamBufferPartialSettings
source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.