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