diff options
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java')
6 files changed, 109 insertions, 43 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java index b62d3b24..206a34c8 100644 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java @@ -19,52 +19,67 @@ package org.onlab.graph; import java.util.List; import java.util.Objects; -import java.util.Set; -import static com.google.common.collect.ImmutableSet.of; import static com.google.common.base.MoreObjects.toStringHelper; - +/** + * Pair of disjoint paths. + * + * @param <V> type of vertex + * @param <E> type of edge + */ public class DisjointPathPair<V extends Vertex, E extends Edge<V>> implements Path<V, E> { - public Path<V, E> path1, path2; - boolean usingPath1 = true; + + private Path<V, E> primary, secondary; + boolean primaryActive = true; /** - * Creates a Disjoint Path Pair from two paths. + * Creates a disjoint path pair from two paths. * - * @param p1 first path - * @param p2 second path + * @param primary primary path + * @param secondary secondary path */ - public DisjointPathPair(Path<V, E> p1, Path<V, E> p2) { - path1 = p1; - path2 = p2; + public DisjointPathPair(Path<V, E> primary, Path<V, E> secondary) { + this.primary = primary; + this.secondary = secondary; } @Override public V src() { - return path1.src(); + return primary.src(); } @Override public V dst() { - return path1.dst(); + return primary.dst(); + } + + /** + * Returns the primary path. + * + * @return primary path + */ + public Path<V, E> primary() { + return primary; + } + + /** + * Returns the secondary path. + * + * @return primary path + */ + public Path<V, E> secondary() { + return secondary; } @Override public double cost() { - if (!hasBackup()) { - return path1.cost(); - } - return path1.cost() + path2.cost(); + return hasBackup() ? primary.cost() + secondary.cost() : primary.cost(); } @Override public List<E> edges() { - if (usingPath1 || !hasBackup()) { - return path1.edges(); - } else { - return path2.edges(); - } + return primaryActive || !hasBackup() ? primary.edges() : secondary.edges(); } /** @@ -73,7 +88,7 @@ public class DisjointPathPair<V extends Vertex, E extends Edge<V>> implements Pa * @return boolean representing whether it has backup */ public boolean hasBackup() { - return path2 != null && path2.edges() != null; + return secondary != null && secondary.edges() != null; } @Override @@ -88,13 +103,8 @@ public class DisjointPathPair<V extends Vertex, E extends Edge<V>> implements Pa @Override public int hashCode() { - Set<Path<V, E>> paths; - if (!hasBackup()) { - paths = of(path1); - } else { - paths = of(path1, path2); - } - return Objects.hash(paths); + return hasBackup() ? Objects.hash(primary) + Objects.hash(secondary) : + Objects.hash(primary); } @Override @@ -106,10 +116,10 @@ public class DisjointPathPair<V extends Vertex, E extends Edge<V>> implements Pa final DisjointPathPair other = (DisjointPathPair) obj; return Objects.equals(this.src(), other.src()) && Objects.equals(this.dst(), other.dst()) && - (Objects.equals(this.path1, other.path1) && - Objects.equals(this.path2, other.path2)) || - (Objects.equals(this.path1, other.path2) && - Objects.equals(this.path2, other.path1)); + (Objects.equals(this.primary, other.primary) && + Objects.equals(this.secondary, other.secondary)) || + (Objects.equals(this.primary, other.secondary) && + Objects.equals(this.secondary, other.primary)); } return false; } @@ -120,9 +130,6 @@ public class DisjointPathPair<V extends Vertex, E extends Edge<V>> implements Pa * @return number of paths */ public int size() { - if (hasBackup()) { - return 2; - } - return 1; + return hasBackup() ? 2 : 1; } } diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrGroup.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrGroup.java index 891a0193..be4ab19a 100644 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrGroup.java +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrGroup.java @@ -241,7 +241,7 @@ public class PIMAddrGroup { return false; } final PIMAddrGroup other = (PIMAddrGroup) obj; - if (this.family != this.family) { + if (this.family != other.family) { return false; } diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrSource.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrSource.java index 2d4a7816..21526408 100644 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrSource.java +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrSource.java @@ -265,7 +265,7 @@ public class PIMAddrSource { return false; } final PIMAddrSource other = (PIMAddrSource) obj; - if (this.family != this.family) { + if (this.family != other.family) { return false; } diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrUnicast.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrUnicast.java index 0c2d676b..a6ba3895 100644 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrUnicast.java +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/pim/PIMAddrUnicast.java @@ -166,7 +166,7 @@ public class PIMAddrUnicast { return false; } final PIMAddrUnicast other = (PIMAddrUnicast) obj; - if (this.family != this.family) { + if (this.family != other.family) { return false; } diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexDump.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexDump.java new file mode 100755 index 00000000..cfb79390 --- /dev/null +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/HexDump.java @@ -0,0 +1,57 @@ +/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onlab.util;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * HexDump class an utility to dump buffer in hex format.
+ */
+public final class HexDump {
+ protected static final Logger log = LoggerFactory.getLogger(HexDump.class);
+
+ private HexDump() {
+ }
+
+ /**
+ * Dump the buffer content in hex format.
+ *
+ * @param buff buffer content to dump in hex format
+ */
+ public static void dump(ChannelBuffer buff) {
+ try {
+ byte[] yTemp;
+ yTemp = buff.array();
+
+ int iStartIndex = buff.readerIndex();
+ int iEndIndex = buff.writerIndex();
+ do {
+ StringBuilder sb = new StringBuilder();
+ for (int k = 0; (k < 16) && (iStartIndex < iEndIndex); ++k) {
+ if (0 == k % 4) {
+ sb.append(String.format(" ")); // blank after 4 bytes
+ }
+ sb.append(String.format("%02X ", yTemp[iStartIndex++]));
+ }
+ log.debug(sb.toString());
+ } while (iStartIndex < iEndIndex);
+ } catch (Exception e) {
+ log.error("[HexDump] Invalid buffer: " + e.toString());
+ }
+ }
+}
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/Tools.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/Tools.java index abc48ccf..1b788145 100644 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/Tools.java +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/Tools.java @@ -299,12 +299,14 @@ public abstract class Tools { * * @param path file path * @return file contents + * @deprecated in Emu release */ + @Deprecated public static List<String> slurp(File path) { - try { + try ( BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(path), StandardCharsets.UTF_8)); - + ) { List<String> lines = new ArrayList<>(); String line; while ((line = br.readLine()) != null) { |