...
类名 | 职责 |
L | |
I | |
L | |
I | |
V |
MManager对外接口
功能 | 接口 | 解释 |
---|---|---|
更新lastCache | public void updateLastCache( | 接收seriesPath作为参数, 可用于更新一元序列或多元序列分量的lastCache, 需传入一元序列全路径或多元序列分量的全路径 |
public void updateLastCache( | 接收单个MeasurementMNode作为参数, 用于更新一元序列的lastCache | |
public void updateLastCache( | 接收MeasurementMNode、subMeasurement作为参数, 用于更新多元序列分量的lastCache | |
获取lastCache | public TimeValuePair getLastCache(PartialPath seriesPath) | 接收seriesPath作为参数, 可用于获取一元序列或多元序列分量的lastCache, 需传入一元序列全路径或多元序列分量的全路径 |
public TimeValuePair getLastCache(IMeasurementMNode node) | 接收单个MeasurementMNode作为参数, 用于获取一元序列的lastCache | |
public TimeValuePair getLastCache( | 接收MeasurementMNode、subMeasurement作为参数, 用于获取多元序列分量的lastCache | |
删除lastCache | public void resetLastCache(PartialPath seriesPath) | 接收seriesPath作为参数, 可用于清除一元序列或多元序列分量的lastCache, 需传入一元序列全路径或多元序列分量的全路径 |
public void deleteLastCacheByDevice(PartialPath deviceId) | 用于清除一个device下所有序列的lastCache | |
public void deleteLastCacheByDevice( | 由于清除一个device下匹配originalPath的、且last值在startTime和endTime之间的所有序列的lastCache |
3. 调用场景及执行过程
3.1. last cache查询
...
- LastCacheAccessor通过调用MManager.getNodeByPath(PartialPath path)获取序列对应的MeasurementMNode
- 如果是普通一元序列,则正常返回MeasurementMNode
- 如果是template表示的序列,则将对应的序列schema与封装为临时的MeasurementMNode返回
- 如果是多元序列,则传入的路径应是目标分量的全路径,返回该多元序列对应的MeasurementMNode如果是多元序列,返回该多元序列对应的MeasurementMNode
- 如果是template表示的多元序列,则结合b和c两种处理方式,b中封装的schema将为VectorMeasurementSchema
- LastCacheAccessor调用MManager.getLastCache
- 若1中的操作成功,则可传入node,避免MManager对measurementMNode的二次查找,并且多元序列场景中path需额外传入具体的目标分量。
- 若1中节点获取失败,则尝试仅基于path查找lastCache结果,此时MManager会基于path进行MeasurementMNode查找
- MManager调用LastCacheMManager的getLastCache接口
- 判断是否为template表示的序列,即判断传入的measurementMNode的parent EntityMNode是否有对应的子节点,若无则从EntityMNode中获取到LastCacheContainer并赋予该measurementMNode
- 如果是一元序列,获取measurementMNode中的lastCacheContainer后获取其持有的lastCacheValue
- 如果是多元序列,先获取分量名,再从schema中获取分量的index然后再从lastCacheContainer获取lastCacheValue
...