Package com.torrent4j.net.peerwire.codec

Source Code of com.torrent4j.net.peerwire.codec.PeerWireFrameEncoder

package com.torrent4j.net.peerwire.codec;

import io.netty.buffer.ChannelBuffer;
import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.oneone.OneToOneEncoder;

public class PeerWireFrameEncoder extends OneToOneEncoder {
  private boolean handshaked = false;

  @Override
  protected Object encode(ChannelHandlerContext ctx, Channel channel,
      Object msg) throws Exception {
    if (!(msg instanceof ChannelBuffer) || !handshaked)
      return msg;
    final ChannelBuffer buffer = (ChannelBuffer) msg;

    buffer.readerIndex(0);
    if (handshaked) {
      final int len = buffer.readableBytes() - 4;
      buffer.setInt(0, len);
    }

    return buffer;
  }

  public void setHandshaked(boolean handshaked) {
    this.handshaked = handshaked;
  }
}
TOP

Related Classes of com.torrent4j.net.peerwire.codec.PeerWireFrameEncoder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.