zoukankan      html  css  js  c++  java
  • Rocket

    https://mp.weixin.qq.com/s/6XX0CZHoDotIgLbNDSIUog

     
    简单介绍Filter的实现。
     
     
    1. 基本介绍
     
    使用过滤器过滤掉client和manager的一部分能力。
     
    2. ManagerFilter/ClientFilter
     
    用于对manager和client进行过滤:
    a. 若过滤掉则返回None;
    b. 若没过滤掉,也可能进行更改;
     
    3. mIdentity/cIdentity
     
    不产生任何变化的过滤器:
     
    4. diplomacy node
     
    1) TLAdapterNode
     
    是一个适配器节点。
     
    2) clientFn
     
    把本节点看到的client参数,映射为下游节点看到的client参数:
    a. 把client都经过过滤器处理一遍;
    b. 确保过滤器过滤掉一部分能力:
    这里IDEA提示把out.map换为out.foreach比较好。
     
    看最后一个:require(!c.requestFifo || o.requestFifo)
    从中可以看出:不需要fifo比需要fifo能力强。不需要fifo说明client具备请求序列化的能力,需要fifo则client自身不具备,需要manager使用fifo来为之实现。
    a. 若c.requestFifo=false,表明c不需要fifo,那么无论o需不需要fifo都不超过c的能力;
    b. 若c.requestFifo=true, 则o.requestFifo=true,即如果c不具备序列化的能力,那么o也不能具备;
     
    3) managerFn
     
    把本节点看到的manager参数,映射为上游节点看到的manager参数:
    a. 把manager都经过过滤器处理一遍;
    b. 确保过滤器过滤掉一部分能力:
     
    也看最后一个:require(o.fifoId.isEmpty || m.fifoId == o.fifoId)
    从中可以看出:具有fifoId的能力要强于没有fifoId。原因在于,有fifoId则内部实现了针对该fifoId的序列化功能。
     
    5. lazy module
     
    用于实现内部逻辑。
     
     
    1) 成对出现的输入边和输出边
     
     
    2) 输入边和输出边直连即可
     
    由此可以看出Filter的功能,主要通过diplomacy node实现。
     
    3) 若不支持Acquire操作,则默认关闭channel b/c/e:
     
     
    6. object TLFilter
     
    其中定义了一些过滤器实例。
     
    1) mIdentity/cIdentity
     
    不做改变:
     
    2) mSelectIntersect
     
    这是一个manager过滤器:
    把manager中的地址集合与参数select求交集,并调整transfer的能力。
     
    3) mHideContained
     
     
    重构一下:
    只保留没有被container完全包含的地址集合。
     
    4) mHideCacheable
     
    去除支持Cache的manager:
     
    5) mSelectCacheable
     
    去除不支持Cache的manager:
     
    6) mMaskCacheable
     
    去除支持cache的manager的cache能力:
     
    7) mSelectAndMaskCacheable
     
    a. 去除支持cache的manager的cache能力;
    b. 去除不支持cache的manager;
     
    8) cHideCaching
     
    去除支持cache的client:
     
    9) cSelectCaching
     
    选择支持cache的client:
     
     
     
     
  • 相关阅读:
    STM32之滴答定时器
    串口--USART1
    风扇--PWM控制
    触摸屏移植Emwin
    emwin--GUI
    extern
    STM32之定时器时间计算
    stm32之定时器
    stm32之PWM
    stm32之SPI
  • 原文地址:https://www.cnblogs.com/wjcdx/p/11348161.html
Copyright © 2011-2022 走看看