Cleaned up some of the host-related abstractions and filled in more of the host manager implementation.
diff --git a/core/api/src/main/java/org/onlab/onos/net/host/HostService.java b/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
index ed94522..9ffa58a 100644
--- a/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/host/HostService.java
@@ -2,8 +2,10 @@
import org.onlab.onos.net.ConnectPoint;
import org.onlab.onos.net.DeviceId;
-import org.onlab.onos.net.ElementId;
import org.onlab.onos.net.Host;
+import org.onlab.onos.net.HostId;
+import org.onlab.packet.IPv4;
+import org.onlab.packet.MACAddress;
import java.util.Set;
@@ -13,6 +15,13 @@
public interface HostService {
/**
+ * Returns the number of end-station hosts known to the system.
+ *
+ * @return number of end-station hosts
+ */
+ public int getHostCount();
+
+ /**
* Returns a collection of all end-station hosts.
*
* @return collection of hosts
@@ -25,12 +34,32 @@
* @param hostId host identifier
* @return host or null if one with the given identifier is not known
*/
- Host getHost(ElementId hostId); // TODO: change to HostId
+ Host getHost(HostId hostId);
- // TODO: determine which ones make sense or which we care to support
- // Set<Host> getHostsByVlan(VlanId vlan);
- // Set<Host> getHostsByMac(MacAddress mac);
- // Set<Host> getHostsByIp(IpAddress ip);
+ /**
+ * Returns the set of hosts that belong to the specified VLAN.
+ *
+ * @param vlanId vlan identifier
+ * @return set of hosts in the given vlan id
+ */
+ // FIXME: change long to VLanId
+ Set<Host> getHostsByVlan(long vlanId);
+
+ /**
+ * Returns the set of hosts that have the specified MAC address.
+ *
+ * @param mac mac address
+ * @return set of hosts with the given mac
+ */
+ Set<Host> getHostsByMac(MACAddress mac);
+
+ /**
+ * Returns the set of hosts that have the specified IP address.
+ *
+ * @param ip ip address
+ * @return set of hosts with the given IP
+ */
+ Set<Host> getHostsByIp(IPv4 ip);
/**
* Returns the set of hosts whose most recent location is the specified