...
(2) 阶段1目标 —— 接口化:区分【文件句柄TsFileResource】和【文件索引TsFileIndex】【文件索引TimeIndex】,将TsFileResource中开始时间、结束时间等字段移至TsFileIndex中。字段移至TimeIndex中。
3. 实现方案:TsFileIndex 实现方案:TimeIndex仅作为 TsFileResource 中的一个对象,全部接口均由 TsFileResource 调用,不向外暴露;
TsFileResource 的已有接口不变。后续“实现”的全部修改仅针对 TsFileIndex。ITimeIndex。
二、阶段1详细设计:新增和修改的数据结构
具体而言,涉及到数据结构如下:
1. DeviceFileIndex DeviceTimeIndex (后续“实现”的全部修改仅针对 TsFileIndex) TimeIndex)
protected long[] startTimes; // 开始时间列表 protected long[] endTimes; // 结束时间列表,未封口则为 Long.MIN_VALUE protected Map<String, Integer> deviceToIndex; // device设备名 => 开始 / 结束时间列表index |
...