Package org.apache.druid.frame.processor
Class ComposingOutputChannelFactory
java.lang.Object
org.apache.druid.frame.processor.ComposingOutputChannelFactory
- All Implemented Interfaces:
OutputChannelFactory
A channel factory which provides ordered composed channels. The factory encapsulates multiple output channel factories
and automatically switches between then when the current factory is 'full' for writes. The reads can also encapsulate
multiple readable channels with automatic switching.
-
Constructor Summary
ConstructorsConstructorDescriptionComposingOutputChannelFactory(List<OutputChannelFactory> channelFactories, int frameSize) -
Method Summary
Modifier and TypeMethodDescriptionbooleanWhether this factory creates buffered channels.openChannel(int partitionNumber) Create a channel pair tagged with a particular partition number.openNilChannel(int partitionNumber) Create a non-writable, always-empty channel pair tagged with a particular partition number.openPartitionedChannel(String name, boolean deleteAfterRead) Create a channel pair tagged with a particular name and a flag to delete the channel data after its read.toString()
-
Constructor Details
-
ComposingOutputChannelFactory
-
-
Method Details
-
openChannel
Description copied from interface:OutputChannelFactoryCreate a channel pair tagged with a particular partition number.- Specified by:
openChannelin interfaceOutputChannelFactory
-
openPartitionedChannel
Description copied from interface:OutputChannelFactoryCreate a channel pair tagged with a particular name and a flag to delete the channel data after its read.- Specified by:
openPartitionedChannelin interfaceOutputChannelFactory
-
openNilChannel
Description copied from interface:OutputChannelFactoryCreate a non-writable, always-empty channel pair tagged with a particular partition number. CallingOutputChannel.getWritableChannel()on this nil channel pair will result in an error. CallingOutputChannel.getReadableChannel()will return an empty channel.- Specified by:
openNilChannelin interfaceOutputChannelFactory
-
isBuffered
public boolean isBuffered()Description copied from interface:OutputChannelFactoryWhether this factory creates buffered channels. Buffered channel readers (fromOutputChannel.getReadableChannel()) will not work properly until the writer is closed. Unbuffered readers work immediately, even while the writer is open.- Specified by:
isBufferedin interfaceOutputChannelFactory
-
toString
-