MCPcopy Create free account
hub / github.com/Recordscript/recordscript / take

Method take

libs/scrap/src/android/ffi.rs:68–84  ·  view source on GitHub ↗

take inner data as slice release when success

(&mut self)

Source from the content-addressed store, hash-verified

66 // take inner data as slice
67 // release when success
68 fn take<'a>(&mut self) -> Option<&'a [u8]> {
69 if self.enable.not() {
70 return None;
71 }
72 let ptr = self.ptr.load(SeqCst);
73 if ptr.is_null() || self.len == 0 {
74 None
75 } else {
76 if self.last_update.elapsed() > self.timeout {
77 log::trace!("Failed to take {} raw,timeout!", self.name);
78 return None;
79 }
80 let slice = unsafe { std::slice::from_raw_parts(ptr, self.len) };
81 self.release();
82 Some(slice)
83 }
84 }
85
86 fn release(&mut self) {
87 self.len = 0;

Callers 8

cancel_gdiMethod · 0.80
get_video_rawFunction · 0.80
get_audio_rawFunction · 0.80
close_sessionFunction · 0.80
get_version_from_urlFunction · 0.80
readMethod · 0.80
set_file_skippedMethod · 0.80
change_modelMethod · 0.80

Calls 3

loadMethod · 0.80
releaseMethod · 0.80
is_nullMethod · 0.45

Tested by

no test coverage detected