diff options
author | Ashlee Young <ashlee@wildernessvoice.com> | 2015-11-03 14:08:10 -0800 |
---|---|---|
committer | Ashlee Young <ashlee@wildernessvoice.com> | 2015-11-03 14:08:10 -0800 |
commit | 643ee33289bd2cb9e6afbfb09b4ed72d467ba1c2 (patch) | |
tree | c2c376a44a359544fe3d4c45eb0cc0e2ec4a7080 /framework/src/onos/utils/misc/src/main/java/org/onlab/util/DataRateUnit.java | |
parent | 46eeb79b54345bdafb6055b8ee4bad4ce8b01274 (diff) |
This updates ONOS src tree to commit id
03fa5e571cabbd001ddb1598847e1150b11c7333
Change-Id: I13b554026d6f902933e35887d29bd5fdb669c0bd
Signed-off-by: Ashlee Young <ashlee@wildernessvoice.com>
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java/org/onlab/util/DataRateUnit.java')
-rw-r--r-- | framework/src/onos/utils/misc/src/main/java/org/onlab/util/DataRateUnit.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/DataRateUnit.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/DataRateUnit.java new file mode 100644 index 00000000..d49ed7b5 --- /dev/null +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/DataRateUnit.java @@ -0,0 +1,64 @@ +package org.onlab.util; + +import com.google.common.annotations.Beta; + +/** + * Data rate unit. + */ +@Beta +public enum DataRateUnit { + /** + * Bit per second. + */ + BPS(1L), + /** + * Kilobit per second. + * (Decimal/SI) + */ + KBPS(1_000L), + /** + * Megabit per second. + * (Decimal/SI) + */ + MBPS(1_000_000L), + /** + * Gigabit per second. + * (Decimal/SI) + */ + GBPS(1_000_000_000L); + + private final long multiplier; + + DataRateUnit(long multiplier) { + this.multiplier = multiplier; + } + + /** + * Returns the multiplier to use, when converting value of this unit to bps. + * + * @return multiplier + */ + public long multiplier() { + return multiplier; + } + + /** + * Converts given value in this unit to bits per seconds. + * + * @param v data rate value + * @return {@code v} in bits per seconds + */ + public long toBitsPerSecond(long v) { + return v * multiplier; + } + + /** + * Converts given value in this unit to bits per seconds. + * + * @param v data rate value + * @return {@code v} in bits per seconds + */ + public double toBitsPerSecond(double v) { + return v * multiplier; + } +} |