commit | c5e987095ca1ece8a57a9472b289f370b2ece5d5 | [log] [tgz] |
---|---|---|
author | Andreas Wundsam <andreas.wundsam@bigswitch.com> | Mon May 05 13:12:19 2014 -0700 |
committer | Andreas Wundsam <andreas.wundsam@bigswitch.com> | Mon May 05 13:12:19 2014 -0700 |
tree | 2d37823d0a3041d55d2f5232808bbbe35c7574df | |
parent | 3421f7d2d42244e9f77f86b11c0a450051d2db70 [diff] [blame] |
java_gen.HashValueUtils - prefixBit - remove useless hash value, add unit test Also fix numBits==0 corner case bug discovered by unit test
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java index 6780035..15f8a9b 100644 --- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java +++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/HashValueUtils.java
@@ -14,4 +14,16 @@ return key ^ (value & valueMask); } + public static int prefixBits(long raw1, int numBits) { + Preconditions.checkArgument(numBits >= 0 && numBits <= 32, + "numBits must be in range [0, 32]"); + + if(numBits == 0) + return 0; + + final int shiftDown = 64 - numBits; + + return (int) (raw1 >>> shiftDown); + } + }