pub struct DebugProxy { /* private fields */ }Implementations§
Source§impl DebugProxy
impl DebugProxy
Sourcepub fn take_event_stream(&self) -> DebugEventStream
pub fn take_event_stream(&self) -> DebugEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn compact(
&self,
) -> QueryResponseFut<DebugCompactResult, DefaultFuchsiaResourceDialect>
pub fn compact( &self, ) -> QueryResponseFut<DebugCompactResult, DefaultFuchsiaResourceDialect>
Forces a compaction.
Sourcepub fn delete_profile(
&self,
volume: &str,
profile: &str,
) -> QueryResponseFut<DebugDeleteProfileResult, DefaultFuchsiaResourceDialect>
pub fn delete_profile( &self, volume: &str, profile: &str, ) -> QueryResponseFut<DebugDeleteProfileResult, DefaultFuchsiaResourceDialect>
Deletes a recorded profile from a volume. Fails if the volume isn’t mounted or there is active profile recording or replay.
Sourcepub fn record_and_replay_profile(
&self,
volume: Option<&str>,
profile: &str,
duration_secs: u32,
) -> QueryResponseFut<DebugRecordAndReplayProfileResult, DefaultFuchsiaResourceDialect>
pub fn record_and_replay_profile( &self, volume: Option<&str>, profile: &str, duration_secs: u32, ) -> QueryResponseFut<DebugRecordAndReplayProfileResult, DefaultFuchsiaResourceDialect>
Begins recording a profile for a named volume for up to the given duration in seconds. If a profile already exists under the given name then it will begin replaying it as well. Fails if the volume isn’t mounted or there is active profile recording or replay on the volume. Page faults for objects that do not get opened by a caller during the recording period will will be filtered out of the profile.
This “record-while-replaying” strategy is meant to support boot-profiling in an environment where we don’t explicitly know when the system has updated. By recording during replay and filtering objects without open events, Fxfs drops dead/replaced objects to refresh the profile.
Sourcepub fn replay_xor_record_profile(
&self,
volume: &str,
profile: &str,
duration_secs: u32,
) -> QueryResponseFut<DebugReplayXorRecordProfileResult, DefaultFuchsiaResourceDialect>
pub fn replay_xor_record_profile( &self, volume: &str, profile: &str, duration_secs: u32, ) -> QueryResponseFut<DebugReplayXorRecordProfileResult, DefaultFuchsiaResourceDialect>
Replays a profile if one exists, and only records if one does not exist. Fails if the volume isn’t mounted or there is active profile recording or replay on the volume.
This profile method is meant to support app launch profiling. These profiles do not filter entries based on Open events since outside of the boot process objects may already be opened or cached in overlays like Starnix.
Sourcepub fn stop_profile_tasks(
&self,
) -> QueryResponseFut<DebugStopProfileTasksResult, DefaultFuchsiaResourceDialect>
pub fn stop_profile_tasks( &self, ) -> QueryResponseFut<DebugStopProfileTasksResult, DefaultFuchsiaResourceDialect>
Stops all profile recording and replay activity. Ongoing recordings are completed and persisted.
Trait Implementations§
Source§impl Clone for DebugProxy
impl Clone for DebugProxy
Source§fn clone(&self) -> DebugProxy
fn clone(&self) -> DebugProxy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DebugProxy
impl Debug for DebugProxy
Source§impl DebugProxyInterface for DebugProxy
impl DebugProxyInterface for DebugProxy
type CompactResponseFut = QueryResponseFut<Result<(), i32>>
type DeleteProfileResponseFut = QueryResponseFut<Result<(), i32>>
type RecordAndReplayProfileResponseFut = QueryResponseFut<Result<(), i32>>
type ReplayXorRecordProfileResponseFut = QueryResponseFut<Result<(), i32>>
type StopProfileTasksResponseFut = QueryResponseFut<Result<(), i32>>
fn compact(&self) -> Self::CompactResponseFut
fn delete_profile( &self, volume: &str, profile: &str, ) -> Self::DeleteProfileResponseFut
fn record_and_replay_profile( &self, volume: Option<&str>, profile: &str, duration_secs: u32, ) -> Self::RecordAndReplayProfileResponseFut
fn replay_xor_record_profile( &self, volume: &str, profile: &str, duration_secs: u32, ) -> Self::ReplayXorRecordProfileResponseFut
fn stop_profile_tasks(&self) -> Self::StopProfileTasksResponseFut
Source§impl Proxy for DebugProxy
impl Proxy for DebugProxy
Source§type Protocol = DebugMarker
type Protocol = DebugMarker
Proxy controls.Source§fn from_channel(inner: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
Source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
Source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
Source§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Source§fn on_closed(&self) -> OnSignals<'_, Unowned<'_, NullableHandle>>
fn on_closed(&self) -> OnSignals<'_, Unowned<'_, NullableHandle>>
PEER_CLOSED signal.