Skip to content
Snippets Groups Projects
Commit 83baff3a authored by Sandeep Hebbani's avatar Sandeep Hebbani
Browse files

Added a get device iterator as a result of query for devices.

parent 0a752cf8
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,7 @@ import net.floodlightcontroller.devicemanager.IEntityClassListener;
import net.floodlightcontroller.devicemanager.IEntityClassifierService;
import net.floodlightcontroller.devicemanager.IDeviceListener;
import net.floodlightcontroller.devicemanager.SwitchPort;
import net.floodlightcontroller.devicemanager.IDeviceService.DeviceField;
import net.floodlightcontroller.devicemanager.web.DeviceRoutable;
import net.floodlightcontroller.flowcache.IFlowReconcileListener;
import net.floodlightcontroller.flowcache.IFlowReconcileService;
......@@ -473,6 +474,46 @@ IFlowReconcileListener, IInfoProvider, IHAListener {
return new MultiIterator<Device>(iterators.iterator());
}
protected Iterator<Device> getDeviceIteratorForQuery(Long macAddress,
Short vlan,
Integer ipv4Address,
Long switchDPID,
Integer switchPort) {
DeviceIndex index = null;
if (secondaryIndexMap.size() > 0) {
EnumSet<DeviceField> keys =
getEntityKeys(macAddress, vlan, ipv4Address,
switchDPID, switchPort);
index = secondaryIndexMap.get(keys);
}
Iterator<Device> deviceIterator = null;
if (index == null) {
// Do a full table scan
deviceIterator = deviceMap.values().iterator();
} else {
// index lookup
Entity entity = new Entity((macAddress == null ? 0 : macAddress),
vlan,
ipv4Address,
switchDPID,
switchPort,
null);
deviceIterator =
new DeviceIndexInterator(this, index.queryByEntity(entity));
}
DeviceIterator di =
new DeviceIterator(deviceIterator,
null,
macAddress,
vlan,
ipv4Address,
switchDPID,
switchPort);
return di;
}
@Override
public void addListener(IDeviceListener listener) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment