Class SequenceByteSupplier
java.lang.Object
cool.scx.io.supplier.SequenceByteSupplier
- All Implemented Interfaces:
ByteSupplier, AutoCloseable
SequenceByteSupplier
- Version:
- 0.0.1
- Author:
- scx567888
-
Constructor Summary
ConstructorsConstructorDescriptionSequenceByteSupplier(ByteSupplier... suppliers) SequenceByteSupplier(Collection<ByteSupplier> dataSupplierList, boolean closeOnSwitch) -
Method Summary
-
Constructor Details
-
SequenceByteSupplier
-
SequenceByteSupplier
- Parameters:
dataSupplierList- ByteSupplier 列表closeOnSwitch- 是否在切换到下一个的时候关闭上一个
-
-
Method Details
-
get
Description copied from interface:ByteSupplier获取下一个数据块
- 必须是推进式的阻塞拉取
- 如果当前已经读取到有效数据 -> 返回 ByteChunk(len > 0)
- 如果暂时无法输出数据, 但 I/O 状态确实推进了 -> 返回 EMPTY_BYTE_CHUNK
- 如果 EOF 且不会再产生数据 -> 返回 null
- 不允许无状态的空循环: 供应者不得无意义地连续返回 EMPTY_BYTE_CHUNK
- 连续多次调用 get() 必须使底层数据源或解码状态单调推进
- Specified by:
getin interfaceByteSupplier- Returns:
- ByteChunk.
- Throws:
Exception- 数据获取过程中发生的任何异常.
-
close
需要保证在任何情况下都能尽可能的关闭 所有的资源(包括剩余的)- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceByteSupplier- Throws:
Exception
-