pub struct DefaultFaultHandler { /* private fields */ }alloc only.Expand description
This structure is used to implement the fault handling as specified in chapter 4.8 of the CFDP standard.
It does so by mapping each applicable spacepackets::cfdp::ConditionCode to a fault handler which is denoted by the four spacepackets::cfdp::FaultHandlerCodes. This code is used to select the error handling inside the CFDP handler itself in addition to dispatching to a user-provided callback function provided by the UserFaultHandler.
Some note on the provided default settings:
- Checksum failures will be ignored by default. This is because for unacknowledged transfers, cancelling the transfer immediately would interfere with the check limit mechanism specified in chapter 4.6.3.3.
- Unsupported checksum types will also be ignored by default. Even if the checksum type is not supported the file transfer might still have worked properly.
For all other faults, the default fault handling operation will be to cancel the transaction. These defaults can be overriden by using the Self::set_fault_handler method. Please note that in any case, fault handler overrides can be specified by the sending CFDP entity.
Implementations§
Source§impl DefaultFaultHandler
impl DefaultFaultHandler
pub fn set_fault_handler( &mut self, condition_code: ConditionCode, fault_handler: FaultHandlerCode, )
pub fn new(user_fault_handler: Box<dyn UserFaultHandler + Send>) -> Self
pub fn get_fault_handler( &self, condition_code: ConditionCode, ) -> FaultHandlerCode
pub fn report_fault( &self, transaction_id: TransactionId, condition: ConditionCode, progress: u64, ) -> FaultHandlerCode
Auto Trait Implementations§
impl !Freeze for DefaultFaultHandler
impl !RefUnwindSafe for DefaultFaultHandler
impl Send for DefaultFaultHandler
impl !Sync for DefaultFaultHandler
impl Unpin for DefaultFaultHandler
impl !UnwindSafe for DefaultFaultHandler
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.