- All Implemented Interfaces:
- BlobDataIterator, AutoCloseable, Iterator<InputStream>
public class BlobDataIteratorImpl
extends Object
implements BlobDataIterator
| BlobIteratorImpl.next() 返回一个 LimitedInputStream,
| 它包装了下面的"干净的协议帧流",限定了单个Blob的Data范围
+-------------------------------------------------------------------------+
| BlobIteratorImpl (迭代器实现) |
| |
| - 它消费的是一个“干净的协议帧流”。 |
| - 它的工作是解析 [HeaderLen][Header][DataLen][Data]... 结构。 |
| - 它不知道下面的 CRC 和 LZ4 的存在。 |
+-------------------------------------------------------------------------+
+-------------------------------------------------------------------------+
| Lz4DecompressingInputStream (装饰器) |
| - 它消费的是一个“去掉了CRC的LZ4压缩流”。 |
| - 它输出的是“干净的协议帧流”。 |
+-------------------------------------------------------------------------+
+-------------------------------------------------------------------------+
| CrcStrippedInputStream (装饰器) |
| - 它消费的是最原始的“网络流”。 |
| - 它输出的是一个“去掉了CRC的LZ4压缩流”。 |
+-------------------------------------------------------------------------+
+-------------------------------------------------------------------------+
| 原始网络 InputStream (源头) |
| - 包含了所有 Blob 的、经过CRC分块和LZ4压缩的单一数据流。 |
+-------------------------------------------------------------------------+