org.minidns.source.async.ChannelSelectedHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of minidns-async Show documentation
Show all versions of minidns-async Show documentation
Asynchronous DNS lookups using Java NIO
/*
* Copyright 2015-2020 the original author or authors
*
* This software is licensed under the Apache License, Version 2.0,
* the GNU Lesser General Public License version 2 or later ("LGPL")
* and the WTFPL.
* You may choose either license to govern your use of this software only
* upon the condition that you accept all of the terms of either
* the Apache License 2.0, the LGPL 2.1+ or the WTFPL.
*/
package org.minidns.source.async;
import java.io.IOException;
import java.nio.channels.SelectableChannel;
import java.nio.channels.SelectionKey;
import java.util.concurrent.Future;
import java.util.logging.Level;
import java.util.logging.Logger;
abstract class ChannelSelectedHandler {
private static final Logger LOGGER = Logger.getLogger(ChannelSelectedHandler.class.getName());
final Future> future;
ChannelSelectedHandler(Future> future) {
this.future = future;
}
void handleChannelSelected(SelectableChannel channel, SelectionKey selectionKey) {
if (future.isCancelled()) {
try {
channel.close();
} catch (IOException e) {
LOGGER.log(Level.INFO, "Could not close channel", e);
}
return;
}
handleChannelSelectedAndNotCancelled(channel, selectionKey);
}
protected abstract void handleChannelSelectedAndNotCancelled(SelectableChannel channel, SelectionKey selectionKey);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy