## net.excentrics.bandWidth
クラス BandWidthController

    java.lang.Object
      net.excentrics.bandWidth.BandWidthController

     class BandWidthController

extends java.lang.Object

このクラスはスロットリングを成功させるため内部的に使用される。

作成者:
  hisato

フィールドの概要
`private double` `bandWidth`
`private int` `bytePerCycle`
`private long` `cycle`
`private static long` `defaultCycle`
`private static int` `defaultSpeedCount`
`private static int` `min_cycle`
`private java.util.LinkedList<java.lang.Integer>` `sizeList`
`private int` `speedCount`
`private java.util.LinkedList<java.lang.Long>` `timeList`

コンストラクタの概要
`BandWidthController()`

メソッドの概要
`private net.excentrics.bandWidth.SizeAndInterval` `calculationSizeForWrite(int bufferSize)`
`double` `getBandWidth()`
`private double` `getCurrentBps()`
`long` `getCycle()`
`void` `postWrite(int writtenSize)`
`net.excentrics.bandWidth.SizeAndInterval` `preWrite(int bufferSize)`
`void` `setBandWidth(double bandWidth)`
`private void` `setBytePerCycle()`
`void` `setCycle(long cycle)`

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

フィールドの詳細

### bandWidth

    private double bandWidth

### timeList

    private java.util.LinkedList<java.lang.Long> timeList

### sizeList

    private java.util.LinkedList<java.lang.Integer> sizeList

### cycle

    private long cycle

### defaultCycle

    private static final long defaultCycle

関連項目:
  定数フィールド値

### bytePerCycle

    private int bytePerCycle

### defaultSpeedCount

    private static final int defaultSpeedCount

関連項目:
  定数フィールド値

### speedCount

    private int speedCount

### min_cycle

    private static final int min_cycle

関連項目:
  定数フィールド値

コンストラクタの詳細

### BandWidthController

    public BandWidthController()

メソッドの詳細

### getBandWidth

    public double getBandWidth()

### setBandWidth

    public void setBandWidth(double bandWidth)

  パラメータ:
    `bandWidth` - 帯域をbps(bit per second) で与える。0が与えられた場合帯域制限を行わない。

### setBytePerCycle

    private void setBytePerCycle()

### getCycle

    public long getCycle()

### setCycle

    public void setCycle(long cycle)

### preWrite

    public net.excentrics.bandWidth.SizeAndInterval preWrite(int bufferSize)

  パラメータ:
    `bufferSize` - 使用しているバッファのサイズ
  戻り値:
    書き込むべきサイズ(byte)、および次回呼び出しまでの間隔(ミリ秒)を返す

### postWrite

    public void postWrite(int writtenSize)
                   throws net.excentrics.bandWidth.AsymmetricalCallException

  パラメータ:
    `writtenSize` - 実際に書き込まれたサイズ
  例外:
    `net.excentrics.bandWidth.AsymmetricalCallException` - preWriteを呼び出す前にpostWriteが呼ばれた時

### calculationSizeForWrite

    private net.excentrics.bandWidth.SizeAndInterval calculationSizeForWrite(int bufferSize)

  戻り値:
    スロットリングを成功させるために書き込まれるべきサイズをバイトで返す。 また、次の書き込みまでの期間をミリ秒で返す。 書き込むサイズに制限が必要ない場合は-1を返す。

### getCurrentBps

    private double getCurrentBps()