/** * Immediately closes the input gate and all its input channels. The corresponding output channels * are notified. Any remaining records in any buffers or queue is considered irrelevant and is * discarded. * * @throws IOException thrown if an I/O error occurs while closing the gate * @throws InterruptedException thrown if the thread is interrupted while waiting for the gate to * be closed */ public void close() throws IOException, InterruptedException { for (int i = 0; i < this.getNumberOfInputChannels(); i++) { final InputChannel<T> inputChannel = this.channels[i]; inputChannel.close(); } }
@Override public boolean isClosed() throws IOException, InterruptedException { if (this.isClosed) { return true; } for (int i = 0; i < this.getNumberOfInputChannels(); i++) { final InputChannel<T> inputChannel = this.channels[i]; if (!inputChannel.isClosed()) { return false; } } this.isClosed = true; return true; }