rename topology related objects: Device -> Host
- KVDevice to be renamed later.
- Use fully qualified name for topology's Host. (HostManager.java)
Change-Id: I1538f96d7ca93ca2197d23e5a69b85d284611412
diff --git a/src/main/java/net/onrc/onos/core/topology/Host.java b/src/main/java/net/onrc/onos/core/topology/Host.java
new file mode 100644
index 0000000..71ede78
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/Host.java
@@ -0,0 +1,42 @@
+package net.onrc.onos.core.topology;
+
+import net.floodlightcontroller.util.MACAddress;
+import net.onrc.onos.core.topology.web.serializers.HostSerializer;
+
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
+/**
+ * Interface of Host Object exposed to the "NB" read-only Topology.
+ * <p/>
+ * TODO What a Host Object represent is unclear at the moment.
+ * <p/>
+ * Everything returned by these interfaces must be either Unmodifiable view,
+ * immutable object, or a copy of the original "SB" In-memory Topology.
+ */
+@JsonSerialize(using = HostSerializer.class)
+public interface Host extends ITopologyElement {
+ /**
+ * Get the device MAC address.
+ *
+ * @return the device MAC address.
+ */
+ public MACAddress getMacAddress();
+
+ /**
+ * Get the device attachment points.
+ * <p/>
+ * TODO: There is only 1 attachment point right now.
+ * TODO: Add requirement for Iteration order? Latest observed port first.
+ *
+ * @return the device attachment points.
+ */
+ public Iterable<Port> getAttachmentPoints();
+
+ /**
+ * Get the device last seen time.
+ * <p/>
+ *
+ * @return the device last seen time. (UTC in ms)
+ */
+ public long getLastSeenTime();
+}