All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taobao.tair.comm.TairProtocolDecoder Maven / Gradle / Ivy

/**
 * (C) 2007-2010 Taobao Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */
package com.taobao.tair.comm;

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;

import com.taobao.tair.etc.TairConstant;
import com.taobao.tair.etc.TairUtil;
import com.taobao.tair.packet.BasePacket;
import com.taobao.tair.packet.PacketStreamer;


public class TairProtocolDecoder extends CumulativeProtocolDecoder {

	private static final Log LOGGER = LogFactory.getLog(TairProtocolDecoder.class);
	
	private static final boolean isDebugEnabled=LOGGER.isDebugEnabled();
	
	private static final int PROTOCOL_HEADER_LENGTH = 16;
	
	private PacketStreamer pstreamer;
	
	public TairProtocolDecoder(PacketStreamer pstreamer) {
		this.pstreamer = pstreamer;
		
	}
	
	@Override
	protected boolean doDecode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) 
		throws Exception {
		final int origonPos = in.position();
        final int packetLength = in.remaining();
        
        if(packetLength




© 2015 - 2025 Weber Informatics LLC | Privacy Policy