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

package io.netty.handler.codec.quic;

import io.netty.buffer.Unpooled;
import io.netty.util.ReferenceCounted;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufHolder;

public interface QuicStreamFrame extends ByteBufHolder
{
    public static final QuicStreamFrame EMPTY_FIN = new QuicStreamFrame() {
        @Override
        public boolean hasFin() {
            return true;
        }
        
        @Override
        public QuicStreamFrame copy() {
            return this;
        }
        
        @Override
        public QuicStreamFrame duplicate() {
            return this;
        }
        
        @Override
        public QuicStreamFrame retainedDuplicate() {
            return this;
        }
        
        @Override
        public QuicStreamFrame replace(final ByteBuf content) {
            return new DefaultQuicStreamFrame(content, this.hasFin());
        }
        
        @Override
        public QuicStreamFrame retain() {
            return this;
        }
        
        @Override
        public QuicStreamFrame retain(final int increment) {
            return this;
        }
        
        @Override
        public QuicStreamFrame touch() {
            return this;
        }
        
        @Override
        public QuicStreamFrame touch(final Object hint) {
            return this;
        }
        
        @Override
        public ByteBuf content() {
            return Unpooled.EMPTY_BUFFER;
        }
        
        @Override
        public int refCnt() {
            return 1;
        }
        
        @Override
        public boolean release() {
            return false;
        }
        
        @Override
        public boolean release(final int decrement) {
            return false;
        }
    };
    
    boolean hasFin();
    
    QuicStreamFrame copy();
    
    QuicStreamFrame duplicate();
    
    QuicStreamFrame retainedDuplicate();
    
    QuicStreamFrame replace(final ByteBuf p0);
    
    QuicStreamFrame retain();
    
    QuicStreamFrame retain(final int p0);
    
    QuicStreamFrame touch();
    
    QuicStreamFrame touch(final Object p0);
}
