View Javadoc

1   /**
2    * This file is part of Waarp Project.
3    * 
4    * Copyright 2009, Frederic Bregier, and individual contributors by the @author tags. See the
5    * COPYRIGHT.txt in the distribution for a full listing of individual contributors.
6    * 
7    * All Waarp Project is free software: you can redistribute it and/or modify it under the terms of
8    * the GNU General Public License as published by the Free Software Foundation, either version 3 of
9    * the License, or (at your option) any later version.
10   * 
11   * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
12   * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
13   * Public License for more details.
14   * 
15   * You should have received a copy of the GNU General Public License along with Waarp . If not, see
16   * <http://www.gnu.org/licenses/>.
17   */
18  package org.waarp.ftp.core.config;
19  
20  import org.waarp.common.file.DataBlock;
21  
22  import io.netty.handler.traffic.ChannelTrafficShapingHandler;
23  
24  /**
25   * Channel Traffic Shaping Handler for FTP
26   * @author "Frederic Bregier"
27   *
28   */
29  public class FtpChannelTrafficShapingHandler extends ChannelTrafficShapingHandler {
30  
31      /**
32       * @param checkInterval
33       */
34      public FtpChannelTrafficShapingHandler(long checkInterval) {
35          super(checkInterval);
36      }
37  
38      /**
39       * @param writeLimit
40       * @param readLimit
41       */
42      public FtpChannelTrafficShapingHandler(long writeLimit, long readLimit) {
43          super(writeLimit, readLimit);
44      }
45  
46      /**
47       * @param writeLimit
48       * @param readLimit
49       * @param checkInterval
50       */
51      public FtpChannelTrafficShapingHandler(long writeLimit, long readLimit, long checkInterval) {
52          super(writeLimit, readLimit, checkInterval);
53      }
54  
55      /**
56       * @param writeLimit
57       * @param readLimit
58       * @param checkInterval
59       * @param maxTime
60       */
61      public FtpChannelTrafficShapingHandler(long writeLimit, long readLimit, long checkInterval, long maxTime) {
62          super(writeLimit, readLimit, checkInterval, maxTime);
63      }
64  
65      @Override
66      protected long calculateSize(Object msg) {
67          if (msg instanceof DataBlock) {
68              return ((DataBlock) msg).getByteCount();
69          }
70          return super.calculateSize(msg);
71      }
72  
73  }