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