1 /** 2 This file is part of GoldenGate Project (named also GoldenGate or GG). 3 4 Copyright 2009, Frederic Bregier, and individual contributors by the @author 5 tags. See the COPYRIGHT.txt in the distribution for a full listing of 6 individual contributors. 7 8 All GoldenGate Project is free software: you can redistribute it and/or 9 modify it under the terms of the GNU General Public License as published 10 by the Free Software Foundation, either version 3 of the License, or 11 (at your option) any later version. 12 13 GoldenGate is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with GoldenGate . If not, see <http://www.gnu.org/licenses/>. 20 */ 21 package openr66.protocol.localhandler.packet; 22 23 import org.jboss.netty.util.DefaultObjectSizeEstimator; 24 import org.jboss.netty.util.ObjectSizeEstimator; 25 26 /** 27 * Local Packet size estimator 28 * 29 * @author Frederic Bregier 30 * 31 */ 32 public class LocalPacketSizeEstimator implements ObjectSizeEstimator { 33 private DefaultObjectSizeEstimator internal = new DefaultObjectSizeEstimator(); 34 /* 35 * (non-Javadoc) 36 * 37 * @see 38 * org.jboss.netty.handler.execution.ObjectSizeEstimator#estimateSize(java 39 * .lang.Object) 40 */ 41 public int estimateSize(Object o) { 42 if (!(o instanceof AbstractLocalPacket)) { 43 // Type unimplemented 44 return internal.estimateSize(o); 45 } 46 AbstractLocalPacket packet = (AbstractLocalPacket) o; 47 int size = packet.header.readableBytes()+packet.middle.readableBytes()+ 48 packet.end.readableBytes(); 49 return size; 50 } 51 }