pub struct TetherRecordUtil { /* private fields */ }Implementations§
Source§impl TetherRecordUtil
impl TetherRecordUtil
Sourcepub fn new(options: RecordOptions) -> Self
pub fn new(options: RecordOptions) -> Self
Examples found in repository?
examples/api.rs (line 142)
125fn demo_record() {
126 let mut tether_agent = TetherAgentBuilder::new("demoPlayback")
127 .build()
128 .expect("failed to init/connect Tether Agent");
129
130 let options = RecordOptions {
131 file_override_path: None,
132 file_base_path: "./".into(),
133 file_base_name: "recording".into(),
134 file_no_timestamp: false,
135 topic: "#".into(),
136 timing_nonzero_start: false,
137 timing_delay: None,
138 timing_duration: None,
139 ignore_ctrl_c: true, // this is important for programmatic use
140 };
141
142 let recorder = TetherRecordUtil::new(options);
143 let stop_request_tx = recorder.get_stop_tx();
144
145 let start_time = SystemTime::now();
146 let handles = vec![
147 spawn(move || {
148 let mut time_to_end = false;
149 while !time_to_end {
150 if let Ok(elapsed) = start_time.elapsed() {
151 if elapsed > std::time::Duration::from_secs(3) {
152 println!("Time to stop! {}s elapsed", elapsed.as_secs());
153 stop_request_tx
154 .send(true)
155 .expect("failed to send stop request via channel");
156 time_to_end = true;
157 }
158 }
159 }
160 println!("Recording should have stopped now; wait 4 more seconds...");
161 std::thread::sleep(std::time::Duration::from_secs(4));
162 println!("...Bye");
163 }),
164 spawn(move || {
165 recorder.start_recording(&mut tether_agent);
166 }),
167 ];
168
169 for handle in handles {
170 handle.join().expect("RECORDER: failed to join handle");
171 }
172}Sourcepub fn get_stop_tx(&self) -> Sender<bool>
pub fn get_stop_tx(&self) -> Sender<bool>
Examples found in repository?
examples/api.rs (line 143)
125fn demo_record() {
126 let mut tether_agent = TetherAgentBuilder::new("demoPlayback")
127 .build()
128 .expect("failed to init/connect Tether Agent");
129
130 let options = RecordOptions {
131 file_override_path: None,
132 file_base_path: "./".into(),
133 file_base_name: "recording".into(),
134 file_no_timestamp: false,
135 topic: "#".into(),
136 timing_nonzero_start: false,
137 timing_delay: None,
138 timing_duration: None,
139 ignore_ctrl_c: true, // this is important for programmatic use
140 };
141
142 let recorder = TetherRecordUtil::new(options);
143 let stop_request_tx = recorder.get_stop_tx();
144
145 let start_time = SystemTime::now();
146 let handles = vec![
147 spawn(move || {
148 let mut time_to_end = false;
149 while !time_to_end {
150 if let Ok(elapsed) = start_time.elapsed() {
151 if elapsed > std::time::Duration::from_secs(3) {
152 println!("Time to stop! {}s elapsed", elapsed.as_secs());
153 stop_request_tx
154 .send(true)
155 .expect("failed to send stop request via channel");
156 time_to_end = true;
157 }
158 }
159 }
160 println!("Recording should have stopped now; wait 4 more seconds...");
161 std::thread::sleep(std::time::Duration::from_secs(4));
162 println!("...Bye");
163 }),
164 spawn(move || {
165 recorder.start_recording(&mut tether_agent);
166 }),
167 ];
168
169 for handle in handles {
170 handle.join().expect("RECORDER: failed to join handle");
171 }
172}Sourcepub fn start_recording(&self, tether_agent: &mut TetherAgent)
pub fn start_recording(&self, tether_agent: &mut TetherAgent)
Examples found in repository?
examples/api.rs (line 165)
125fn demo_record() {
126 let mut tether_agent = TetherAgentBuilder::new("demoPlayback")
127 .build()
128 .expect("failed to init/connect Tether Agent");
129
130 let options = RecordOptions {
131 file_override_path: None,
132 file_base_path: "./".into(),
133 file_base_name: "recording".into(),
134 file_no_timestamp: false,
135 topic: "#".into(),
136 timing_nonzero_start: false,
137 timing_delay: None,
138 timing_duration: None,
139 ignore_ctrl_c: true, // this is important for programmatic use
140 };
141
142 let recorder = TetherRecordUtil::new(options);
143 let stop_request_tx = recorder.get_stop_tx();
144
145 let start_time = SystemTime::now();
146 let handles = vec![
147 spawn(move || {
148 let mut time_to_end = false;
149 while !time_to_end {
150 if let Ok(elapsed) = start_time.elapsed() {
151 if elapsed > std::time::Duration::from_secs(3) {
152 println!("Time to stop! {}s elapsed", elapsed.as_secs());
153 stop_request_tx
154 .send(true)
155 .expect("failed to send stop request via channel");
156 time_to_end = true;
157 }
158 }
159 }
160 println!("Recording should have stopped now; wait 4 more seconds...");
161 std::thread::sleep(std::time::Duration::from_secs(4));
162 println!("...Bye");
163 }),
164 spawn(move || {
165 recorder.start_recording(&mut tether_agent);
166 }),
167 ];
168
169 for handle in handles {
170 handle.join().expect("RECORDER: failed to join handle");
171 }
172}Auto Trait Implementations§
impl Freeze for TetherRecordUtil
impl RefUnwindSafe for TetherRecordUtil
impl Send for TetherRecordUtil
impl !Sync for TetherRecordUtil
impl Unpin for TetherRecordUtil
impl UnwindSafe for TetherRecordUtil
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
Mutably borrows from an owned value. Read more