cyfs_bdt/ndn/upload/
common.rs

1use cyfs_base::*;
2use crate::{
3    types::*
4};
5use super::super::{
6    types::*
7};
8
9#[derive(Clone, Copy)]
10pub enum UploadTaskPriority {
11    Backgroud, 
12    Normal, 
13    Realtime(u32/*min speed*/),
14}
15
16impl Default for UploadTaskPriority {
17    fn default() -> Self {
18        Self::Normal
19    }
20}
21
22
23
24#[async_trait::async_trait]
25pub trait UploadTask: NdnTask {
26    fn clone_as_upload_task(&self) -> Box<dyn UploadTask>;
27
28
29    fn add_task(&self, _path: Option<String>, _sub: Box<dyn UploadTask>) -> BuckyResult<()> {
30        Err(BuckyError::new(BuckyErrorCode::NotSupport, "no implement"))
31    }
32    fn sub_task(&self, _path: &str) -> Option<Box<dyn UploadTask>> {
33        None
34    }
35
36    fn calc_speed(&self, when: Timestamp) -> u32;
37}