cyfs_lib/trans/
processor.rs

1use crate::*;
2use cyfs_base::BuckyResult;
3use std::sync::Arc;
4
5#[async_trait::async_trait]
6pub trait TransOutputProcessor: Send + Sync {
7    async fn get_context(&self, req: TransGetContextOutputRequest) -> BuckyResult<TransGetContextOutputResponse>;
8    async fn put_context(&self, req: TransPutContextOutputRequest) -> BuckyResult<()>;
9    async fn create_task(
10        &self,
11        req: TransCreateTaskOutputRequest,
12    ) -> BuckyResult<TransCreateTaskOutputResponse>;
13    async fn control_task(&self, req: TransControlTaskOutputRequest) -> BuckyResult<()>;
14    async fn query_tasks(
15        &self,
16        req: TransQueryTasksOutputRequest,
17    ) -> BuckyResult<TransQueryTasksOutputResponse>;
18    async fn get_task_state(
19        &self,
20        req: TransGetTaskStateOutputRequest,
21    ) -> BuckyResult<TransGetTaskStateOutputResponse>;
22    async fn publish_file(
23        &self,
24        req: TransPublishFileOutputRequest,
25    ) -> BuckyResult<TransPublishFileOutputResponse>;
26
27    // task group
28    async fn get_task_group_state(
29        &self,
30        req: TransGetTaskGroupStateOutputRequest,
31    ) -> BuckyResult<TransGetTaskGroupStateOutputResponse>;
32    async fn control_task_group(
33        &self,
34        req: TransControlTaskGroupOutputRequest,
35    ) -> BuckyResult<TransControlTaskGroupOutputResponse>;
36}
37
38pub type TransOutputProcessorRef = Arc<dyn TransOutputProcessor>;