Rocket

https://mp.weixin.qq.com/s/pc8f_DOJ7w8k8BeM9gPzVw

 
简单介绍Delayer的实现。
 
1. 基本介绍
 
以一定的概率延迟消息的传递。
 
类参数 q is the probability to delay a request:
 
取值范围在[0, 1):
 
2. diplomacy node
 
Delayer的diplomacy node就是一个简单的AdapterNode,没有对经过他的参数做修改:
 
3. lazy module
 
lazy module实现内部逻辑,把输入边与输出边连接到一起。
 
1) 成对的输入边和输出边
 
 
2) anoise
 
输入到channel a的噪声:
其中:LFSRNoiseMaker用于产生固定宽度的随机输出;
 
3) bnoise
 
输入到channel b的噪声:
 
4) cnoise
 
输入到channel c的噪声:
 
5) dnoise
 
输入到channel d的噪声:
 
6) enoise
 
输入到channel e的噪声:
 
7) feed a/b/c/d/e
 
把噪声和上游消息feed到下游:
 
8) feed
 
用于把source和noise,喂到sink中:
其中:
a. q是一个概率值,这个值越大,q * 65535 <= random_16的可能性越小,即allow的概率越小,也就是延迟的概率越大;
b. sink.valid为假时,向sink.bits喂入noise。但此时sink.valid为假,所以sink并不会从sink.bits中读取消息;也就是说noise并不会被使用;
 
4. object Delayer
 
用于简化Delayer的创建:
 
5. 附录
 
 
原文地址:https://www.cnblogs.com/wjcdx/p/11329681.html