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

package io.netty.handler.codec.quic;

import io.netty.channel.socket.DatagramPacket;
import java.net.InetSocketAddress;
import io.netty.buffer.ByteBuf;
import io.netty.channel.epoll.SegmentedDatagramPacket;
import io.netty.util.internal.ObjectUtil;

public final class EpollQuicUtils
{
    private EpollQuicUtils() {
    }
    
    public static SegmentedDatagramPacketAllocator newSegmentedAllocator(final int maxNumSegments) {
        ObjectUtil.checkInRange(maxNumSegments, 1, 64, "maxNumSegments");
        if (SegmentedDatagramPacket.isSupported()) {
            return new EpollSegmentedDatagramPacketAllocator(maxNumSegments);
        }
        return SegmentedDatagramPacketAllocator.NONE;
    }
    
    private static final class EpollSegmentedDatagramPacketAllocator implements SegmentedDatagramPacketAllocator
    {
        private final int maxNumSegments;
        
        EpollSegmentedDatagramPacketAllocator(final int maxNumSegments) {
            this.maxNumSegments = maxNumSegments;
        }
        
        @Override
        public int maxNumSegments() {
            return this.maxNumSegments;
        }
        
        @Override
        public DatagramPacket newPacket(final ByteBuf buffer, final int segmentSize, final InetSocketAddress remoteAddress) {
            return new io.netty.channel.unix.SegmentedDatagramPacket(buffer, segmentSize, remoteAddress);
        }
    }
}
