2024-02-13 18:19:45 +01:00
|
|
|
use crate::{
|
|
|
|
pus::verification::{TcStateAccepted, VerificationToken},
|
|
|
|
TargetId,
|
|
|
|
};
|
2024-02-13 11:05:59 +01:00
|
|
|
|
2023-02-13 09:20:00 +01:00
|
|
|
pub type CollectionIntervalFactor = u32;
|
2023-02-27 11:51:48 +01:00
|
|
|
pub type UniqueId = u32;
|
2023-02-13 09:20:00 +01:00
|
|
|
|
|
|
|
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
|
|
|
pub enum HkRequest {
|
2023-02-27 11:51:48 +01:00
|
|
|
OneShot(UniqueId),
|
|
|
|
Enable(UniqueId),
|
|
|
|
Disable(UniqueId),
|
|
|
|
ModifyCollectionInterval(UniqueId, CollectionIntervalFactor),
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
|
|
|
pub struct TargetedHkRequest {
|
2024-02-13 18:19:45 +01:00
|
|
|
pub target_id: TargetId,
|
|
|
|
pub hk_request: HkRequest,
|
2023-02-13 09:20:00 +01:00
|
|
|
}
|
2024-02-13 11:05:59 +01:00
|
|
|
|
2024-02-13 18:19:45 +01:00
|
|
|
impl TargetedHkRequest {
|
|
|
|
pub fn new(target_id: TargetId, hk_request: HkRequest) -> Self {
|
|
|
|
Self {
|
|
|
|
target_id,
|
|
|
|
hk_request,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub trait PusHkRequestRouter {
|
|
|
|
type Error;
|
|
|
|
fn route(
|
|
|
|
&self,
|
|
|
|
target_id: TargetId,
|
|
|
|
hk_request: HkRequest,
|
|
|
|
token: VerificationToken<TcStateAccepted>,
|
|
|
|
) -> Result<(), Self::Error>;
|
2024-02-13 11:05:59 +01:00
|
|
|
}
|