Struct DefaultFaultHandler

Source
pub struct DefaultFaultHandler { /* private fields */ }
Available on crate feature 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

Source

pub fn set_fault_handler( &mut self, condition_code: ConditionCode, fault_handler: FaultHandlerCode, )

Source

pub fn new(user_fault_handler: Box<dyn UserFaultHandler + Send>) -> Self

Source

pub fn get_fault_handler( &self, condition_code: ConditionCode, ) -> FaultHandlerCode

Source

pub fn report_fault( &self, transaction_id: TransactionId, condition: ConditionCode, progress: u64, ) -> FaultHandlerCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.