pub struct ChunksToMove {
pub page: Option<u32>,
pub chunk: Option<u32>,
pub target_buffer: Option<u32>,
pub data: Option<Vec<u8>>,
pub chunk_incomplete: Option<bool>,
}Expand description
When |chunks_to_move| is present, the producer is requesting the service to move the given chunks form the share memory buffer into the central trace buffer(s).
Fields§
§page: Option<u32>The 0-based index of the page in the Shared Memory Buffer.
chunk: Option<u32>The 0-based chunk index [0..13] within the page.
target_buffer: Option<u32>The target buffer it should be moved onto. The service will check that the producer is allowed to write into that buffer before the move.
data: Option<Vec<u8>>Sending the chunk data over the wire. Used for transports that don’t support shared memory (e.g. vsock or TCP sockets). In the default case (tracing protocol over a Unix socket), this field is not used and tracing data is stored in the shmem buffer and referenced by the fields above. See |use_shemem_emulation| in the codebase for reference.
chunk_incomplete: Option<bool>Set to true when scraping data in shmem emulation (aka commits-over-ipc)
AND the chunk was still in kChunkBeingWritten. This is necessary because
in emulation mode, the service cannot tell whether this is a complete
chunk coming from a regular TraceWriter commit, or a scraped one.
This field is only set when data is present. It is never set (and is
ignored by the service) for the regular case of doing commits over
shmem. Introduced in Perfetto v54.
See /rfcs/0010-smb-scraping-remote-producers.md .
Implementations§
Source§impl ChunksToMove
impl ChunksToMove
Sourcepub fn target_buffer(&self) -> u32
pub fn target_buffer(&self) -> u32
Returns the value of target_buffer, or the default value if target_buffer is unset.
Sourcepub fn data(&self) -> &[u8] ⓘ
pub fn data(&self) -> &[u8] ⓘ
Returns the value of data, or the default value if data is unset.
Sourcepub fn chunk_incomplete(&self) -> bool
pub fn chunk_incomplete(&self) -> bool
Returns the value of chunk_incomplete, or the default value if chunk_incomplete is unset.
Trait Implementations§
Source§impl Clone for ChunksToMove
impl Clone for ChunksToMove
Source§fn clone(&self) -> ChunksToMove
fn clone(&self) -> ChunksToMove
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ChunksToMove
impl Debug for ChunksToMove
Source§impl Default for ChunksToMove
impl Default for ChunksToMove
Source§impl Message for ChunksToMove
impl Message for ChunksToMove
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>where
B: BufMut,
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>where
B: Buf,
Self: Default,
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
self. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>where
B: Buf,
Self: Sized,
self.