// 
// Decompiled by Procyon v0.6.0
// 

package io.netty.channel.epoll;

import io.netty.util.internal.logging.InternalLoggerFactory;
import io.netty.channel.Channel;
import java.util.Iterator;
import java.util.Queue;
import io.netty.util.concurrent.RejectedExecutionHandler;
import io.netty.channel.EventLoopTaskQueueFactory;
import java.util.concurrent.Executor;
import io.netty.channel.IoHandlerFactory;
import java.util.concurrent.ThreadFactory;
import io.netty.channel.IoEventLoopGroup;
import io.netty.util.internal.logging.InternalLogger;
import io.netty.channel.SingleThreadIoEventLoop;

@Deprecated
public class EpollEventLoop extends SingleThreadIoEventLoop
{
    private static final InternalLogger LOGGER;
    
    EpollEventLoop(final IoEventLoopGroup parent, final ThreadFactory threadFactory, final IoHandlerFactory ioHandlerFactory) {
        super(parent, threadFactory, ioHandlerFactory);
    }
    
    EpollEventLoop(final IoEventLoopGroup parent, final Executor executor, final IoHandlerFactory ioHandlerFactory) {
        super(parent, executor, ioHandlerFactory);
    }
    
    EpollEventLoop(final IoEventLoopGroup parent, final Executor executor, final IoHandlerFactory ioHandlerFactory, final EventLoopTaskQueueFactory taskQueueFactory, final EventLoopTaskQueueFactory tailTaskQueueFactory, final RejectedExecutionHandler rejectedExecutionHandler) {
        super(parent, executor, ioHandlerFactory, newTaskQueue(taskQueueFactory), newTaskQueue(tailTaskQueueFactory), rejectedExecutionHandler);
    }
    
    private static Queue<Runnable> newTaskQueue(final EventLoopTaskQueueFactory queueFactory) {
        if (queueFactory == null) {
            return SingleThreadIoEventLoop.newTaskQueue0(EpollEventLoop.DEFAULT_MAX_PENDING_TASKS);
        }
        return queueFactory.newTaskQueue(EpollEventLoop.DEFAULT_MAX_PENDING_TASKS);
    }
    
    @Override
    public int registeredChannels() {
        return ((EpollIoHandler)this.ioHandler()).numRegisteredChannels();
    }
    
    @Override
    public Iterator<Channel> registeredChannelsIterator() {
        return ((EpollIoHandler)this.ioHandler()).registeredChannelsList().iterator();
    }
    
    public int getIoRatio() {
        return 0;
    }
    
    @Deprecated
    public void setIoRatio(final int ioRatio) {
        EpollEventLoop.LOGGER.debug("EpollEventLoop.setIoRatio(int) logic was removed, this is a no-op");
    }
    
    static {
        LOGGER = InternalLoggerFactory.getInstance(EpollEventLoop.class);
    }
}
