cyfs_bdt/finder/
outer_device_cache.rs

1use cyfs_base::*;
2use async_trait::async_trait;
3
4use std::sync::Arc;
5
6#[async_trait]
7pub trait OuterDeviceCache: Sync + Send + 'static {
8    // 添加一个device并保存
9    async fn add(&self, device_id: &DeviceId, device: Device);
10
11    // 直接在本地数据查询
12    async fn get(&self, device_id: &DeviceId) -> Option<Device>;
13
14    // flush device from memory cache
15    async fn flush(&self, device_id: &DeviceId);
16
17    // 本地查询,查询不到则发起查找操作
18    async fn search(&self, device_id: &DeviceId) -> BuckyResult<Device>;
19
20    // 校验device的owner签名是否有效
21    async fn verfiy_owner(&self, device_id: &DeviceId, device: Option<&Device>) -> BuckyResult<()>;
22
23    // 有权对象的body签名自校验
24    async fn verfiy_own_signs(&self, object_id: &ObjectId, object: &Arc<AnyNamedObject>) -> BuckyResult<()>;
25
26    fn clone_cache(&self) -> Box<dyn OuterDeviceCache>;
27}