RootReader

class RootReader(val stateManager: StateManager, val resourceAcquisitionHeartbeat: Duration, val timeout: Duration, val outputConsumer: StandardOutputConsumer, val metaFieldDecorator: MetaFieldDecorator, val resourceAcquirer: ResourceAcquirer, val partitionsCreatorFactories: List<PartitionsCreatorFactory>, val dataChannelFormat: DataChannelFormat, val dataChannelMedium: DataChannelMedium, val bufferByteSizeThresholdForFlush: Int, clock: Clock)

RootReader is at the heart of the READ operation. A RootReader manages multiple FeedReader instances (one per Feed) and synchronizes them using coroutines.

This object exists mainly to facilitate unit testing by keeping dependencies to a minimum.

Constructors

Link copied to clipboard
constructor(stateManager: StateManager, resourceAcquisitionHeartbeat: Duration, timeout: Duration, outputConsumer: StandardOutputConsumer, metaFieldDecorator: MetaFieldDecorator, resourceAcquirer: ResourceAcquirer, partitionsCreatorFactories: List<PartitionsCreatorFactory>, dataChannelFormat: DataChannelFormat, dataChannelMedium: DataChannelMedium, bufferByteSizeThresholdForFlush: Int, clock: Clock)

Types

Link copied to clipboard
class FeedExceptionHandler<T : Feed>(val feed: T, val streamStatusManager: StreamStatusManager, exceptions: ConcurrentHashMap<T, Throwable>) : CoroutineExceptionHandler

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Mutex ensuring that resource acquisition always happens serially.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard

Notify a potential change in resource availability.

Link copied to clipboard
suspend fun read(listener: suspend (Collection<Job>) -> Unit = {})

Reads records from all Feeds.

Link copied to clipboard

Wait until an availability notification arrives or a timeout is reached.