Migrate Gauge64 parsing 31/85131/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 15 Oct 2019 17:32:59 +0000 (19:32 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 15 Oct 2019 17:32:59 +0000 (19:32 +0200)
64-bit Guage is fixed-length entity, hence use ByteBufUtils's simple
readUint64() without resorting to going through byte arrays.

Change-Id: Iec3303606f5ffc96c66ef7ed184ab57b3a2ed1d3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType007TlvHandler.java
bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType008TlvHandler.java
bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType009TlvHandler.java
bmp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType010TlvHandler.java

index 7b9dfa7a101d275e7e2c9de6f5548daceb97396c..5205dbd9f3bd032fe4c8669b62c1bc0ec1e0f31f 100644 (file)
@@ -5,29 +5,27 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.protocol.bmp.parser.tlv;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+
 import io.netty.buffer.ByteBuf;
-import java.math.BigInteger;
 import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvParser;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvSerializer;
 import org.opendaylight.protocol.bmp.spi.parser.TlvUtil;
-import org.opendaylight.protocol.util.ByteArray;
+import org.opendaylight.protocol.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Gauge64;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.Tlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.AdjRibsInRoutesTlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.AdjRibsInRoutesTlvBuilder;
 
 public class StatType007TlvHandler implements BmpTlvParser, BmpTlvSerializer {
-
     public static final int TYPE = 7;
 
     @Override
     public void serializeTlv(final Tlv tlv, final ByteBuf output) {
-        Preconditions.checkArgument(tlv instanceof AdjRibsInRoutesTlv, "AdjRibsInRoutesTlv is mandatory.");
+        checkArgument(tlv instanceof AdjRibsInRoutesTlv, "AdjRibsInRoutesTlv is mandatory.");
         TlvUtil.formatTlvGauge64(TYPE, ((AdjRibsInRoutesTlv) tlv).getCount(), output);
     }
 
@@ -36,8 +34,6 @@ public class StatType007TlvHandler implements BmpTlvParser, BmpTlvSerializer {
         if (buffer == null) {
             return null;
         }
-        return new AdjRibsInRoutesTlvBuilder()
-                .setCount(new Gauge64(new BigInteger(ByteArray.readAllBytes(buffer)))).build();
+        return new AdjRibsInRoutesTlvBuilder().setCount(new Gauge64(ByteBufUtils.readUint64(buffer))).build();
     }
-
 }
index b135656d82643e3a6b169ed172fd6a6113933b5f..f9e4f5b84a7363401afa6bf3bae91db6f1de1769 100644 (file)
@@ -5,29 +5,27 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.protocol.bmp.parser.tlv;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+
 import io.netty.buffer.ByteBuf;
-import java.math.BigInteger;
 import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvParser;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvSerializer;
 import org.opendaylight.protocol.bmp.spi.parser.TlvUtil;
-import org.opendaylight.protocol.util.ByteArray;
+import org.opendaylight.protocol.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Gauge64;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.Tlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.LocRibRoutesTlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.LocRibRoutesTlvBuilder;
 
 public class StatType008TlvHandler implements BmpTlvParser, BmpTlvSerializer {
-
     public static final int TYPE = 8;
 
     @Override
     public void serializeTlv(final Tlv tlv, final ByteBuf output) {
-        Preconditions.checkArgument(tlv instanceof LocRibRoutesTlv, "LocRibRoutesTlv is mandatory.");
+        checkArgument(tlv instanceof LocRibRoutesTlv, "LocRibRoutesTlv is mandatory.");
         TlvUtil.formatTlvGauge64(TYPE, ((LocRibRoutesTlv) tlv).getCount(), output);
     }
 
@@ -36,7 +34,6 @@ public class StatType008TlvHandler implements BmpTlvParser, BmpTlvSerializer {
         if (buffer == null) {
             return null;
         }
-        return new LocRibRoutesTlvBuilder()
-                .setCount(new Gauge64(new BigInteger(ByteArray.readAllBytes(buffer)))).build();
+        return new LocRibRoutesTlvBuilder().setCount(new Gauge64(ByteBufUtils.readUint64(buffer))).build();
     }
 }
index cbeadddf1a3fcbc9c890b6bb1f18789ba3d53863..0d4a025f89c49e397eb38d8018bfc211b2105f40 100644 (file)
@@ -5,22 +5,20 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.protocol.bmp.parser.tlv;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
-import java.math.BigInteger;
 import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry;
 import org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry;
 import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvParser;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvSerializer;
 import org.opendaylight.protocol.bmp.spi.parser.TlvUtil;
-import org.opendaylight.protocol.util.ByteArray;
+import org.opendaylight.protocol.util.ByteBufUtils;
 import org.opendaylight.protocol.util.ByteBufWriteUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Gauge64;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.Tlv;
@@ -28,8 +26,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.mess
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.PerAfiSafiAdjRibInTlvBuilder;
 
 public class StatType009TlvHandler implements BmpTlvParser, BmpTlvSerializer {
-
     public static final int TYPE = 9;
+
     private final AddressFamilyRegistry afiRegistry;
     private final SubsequentAddressFamilyRegistry safiRegistry;
 
@@ -40,7 +38,7 @@ public class StatType009TlvHandler implements BmpTlvParser, BmpTlvSerializer {
 
     @Override
     public void serializeTlv(final Tlv tlv, final ByteBuf output) {
-        Preconditions.checkArgument(tlv instanceof PerAfiSafiAdjRibInTlv, "PerAfiSafiAdjRibInTlv is mandatory.");
+        checkArgument(tlv instanceof PerAfiSafiAdjRibInTlv, "PerAfiSafiAdjRibInTlv is mandatory.");
         final ByteBuf buffer = Unpooled.buffer();
         ByteBufWriteUtil.writeUnsignedShort(this.afiRegistry.numberForClass(((PerAfiSafiAdjRibInTlv) tlv)
                 .getAfi()), buffer);
@@ -58,6 +56,6 @@ public class StatType009TlvHandler implements BmpTlvParser, BmpTlvSerializer {
         return new PerAfiSafiAdjRibInTlvBuilder()
                 .setAfi(this.afiRegistry.classForFamily(buffer.readUnsignedShort()))
                 .setSafi(this.safiRegistry.classForFamily(buffer.readUnsignedByte()))
-                .setCount(new Gauge64(new BigInteger(ByteArray.readAllBytes(buffer)))).build();
+                .setCount(new Gauge64(ByteBufUtils.readUint64(buffer))).build();
     }
 }
index 91c94bb8333adb04d0d886e522ffd7d69b8035b6..9aa321d0317ba432a7f2182c3608e6680d9896c4 100644 (file)
@@ -5,33 +5,31 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.protocol.bmp.parser.tlv;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.Objects.requireNonNull;
 import static org.opendaylight.protocol.util.ByteBufWriteUtil.writeUnsignedByte;
 import static org.opendaylight.protocol.util.ByteBufWriteUtil.writeUnsignedLong;
 import static org.opendaylight.protocol.util.ByteBufWriteUtil.writeUnsignedShort;
 
-import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
-import java.math.BigInteger;
 import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry;
 import org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry;
 import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvParser;
 import org.opendaylight.protocol.bmp.spi.parser.BmpTlvSerializer;
 import org.opendaylight.protocol.bmp.spi.parser.TlvUtil;
-import org.opendaylight.protocol.util.ByteArray;
+import org.opendaylight.protocol.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Gauge64;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.Tlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.PerAfiSafiLocRibTlv;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.stat.tlvs.PerAfiSafiLocRibTlvBuilder;
 
 public class StatType010TlvHandler implements BmpTlvParser, BmpTlvSerializer {
-
     public static final int TYPE = 10;
+
     private final AddressFamilyRegistry afiRegistry;
     private final SubsequentAddressFamilyRegistry safiRegistry;
 
@@ -42,7 +40,7 @@ public class StatType010TlvHandler implements BmpTlvParser, BmpTlvSerializer {
 
     @Override
     public void serializeTlv(final Tlv tlv, final ByteBuf output) {
-        Preconditions.checkArgument(tlv instanceof PerAfiSafiLocRibTlv, "PerAfiSafiLocRibInTlv is mandatory.");
+        checkArgument(tlv instanceof PerAfiSafiLocRibTlv, "PerAfiSafiLocRibInTlv is mandatory.");
         final ByteBuf buffer = Unpooled.buffer();
         writeUnsignedShort(this.afiRegistry.numberForClass(((PerAfiSafiLocRibTlv) tlv).getAfi()), buffer);
         writeUnsignedByte(this.safiRegistry.numberForClass(((PerAfiSafiLocRibTlv) tlv).getSafi()).shortValue(), buffer);
@@ -58,6 +56,6 @@ public class StatType010TlvHandler implements BmpTlvParser, BmpTlvSerializer {
         return new PerAfiSafiLocRibTlvBuilder()
                 .setAfi(this.afiRegistry.classForFamily(buffer.readUnsignedShort()))
                 .setSafi(this.safiRegistry.classForFamily(buffer.readUnsignedByte()))
-                .setCount(new Gauge64(new BigInteger(ByteArray.readAllBytes(buffer)))).build();
+                .setCount(new Gauge64(ByteBufUtils.readUint64(buffer))).build();
     }
 }