View Javadoc

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  }