package io.netty.handler.codec.memcache;

import g.a.a.a.a;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.FileRegion;
import io.netty.handler.codec.MessageToMessageEncoder;
import io.netty.handler.codec.memcache.MemcacheMessage;
import io.netty.util.internal.StringUtil;
import java.util.List;

/* JADX INFO: loaded from: classes.dex */
public abstract class AbstractMemcacheObjectEncoder<M extends MemcacheMessage> extends MessageToMessageEncoder<Object> {
    private boolean expectingMoreContent;

    private static int contentLength(Object obj) {
        if (obj instanceof MemcacheContent) {
            return ((MemcacheContent) obj).content().readableBytes();
        }
        if (obj instanceof ByteBuf) {
            return ((ByteBuf) obj).readableBytes();
        }
        if (obj instanceof FileRegion) {
            return (int) ((FileRegion) obj).count();
        }
        StringBuilder sbF = a.F("unexpected message type: ");
        sbF.append(StringUtil.simpleClassName(obj));
        throw new IllegalStateException(sbF.toString());
    }

    private static Object encodeAndRetain(Object obj) {
        if (obj instanceof ByteBuf) {
            return ((ByteBuf) obj).retain();
        }
        if (obj instanceof MemcacheContent) {
            return ((MemcacheContent) obj).content().retain();
        }
        if (obj instanceof FileRegion) {
            return ((FileRegion) obj).retain();
        }
        StringBuilder sbF = a.F("unexpected message type: ");
        sbF.append(StringUtil.simpleClassName(obj));
        throw new IllegalStateException(sbF.toString());
    }

    @Override // io.netty.handler.codec.MessageToMessageEncoder
    public boolean acceptOutboundMessage(Object obj) {
        return (obj instanceof MemcacheObject) || (obj instanceof ByteBuf) || (obj instanceof FileRegion);
    }

    @Override // io.netty.handler.codec.MessageToMessageEncoder
    public void encode(ChannelHandlerContext channelHandlerContext, Object obj, List<Object> list) {
        if (obj instanceof MemcacheMessage) {
            if (this.expectingMoreContent) {
                StringBuilder sbF = a.F("unexpected message type: ");
                sbF.append(StringUtil.simpleClassName(obj));
                throw new IllegalStateException(sbF.toString());
            }
            list.add(encodeMessage(channelHandlerContext, (MemcacheMessage) obj));
        }
        if ((obj instanceof MemcacheContent) || (obj instanceof ByteBuf) || (obj instanceof FileRegion)) {
            list.add(contentLength(obj) > 0 ? encodeAndRetain(obj) : Unpooled.EMPTY_BUFFER);
            this.expectingMoreContent = !(obj instanceof LastMemcacheContent);
        }
    }

    public abstract ByteBuf encodeMessage(ChannelHandlerContext channelHandlerContext, M m2);
}
