blob: c44dc3bf9271b801a2796b3aa0775c22f466bc3e [file] [log] [blame]
package net.onrc.onos.core.topology;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Collection;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.core.util.Dpid;
import net.onrc.onos.core.util.OnosInstanceId;
import net.onrc.onos.core.util.PortNumber;
import net.onrc.onos.core.util.SwitchPort;
/**
* Wrapper to access {@link ImmutableTopology} as {@link MutableTopology}.
*/
public final class ImmutableTopologyWrapper implements MutableTopology {
private final ImmutableTopology wrapped;
/**
* Constructor.
*
* @param toWrap {@link ImmutableTopology} to wrap
*/
public ImmutableTopologyWrapper(ImmutableTopology toWrap) {
this.wrapped = checkNotNull(toWrap);
}
@Override
public void acquireReadLock() {
// no-op
}
@Override
public void releaseReadLock() {
// no-op
}
@Override
public Switch getSwitch(Dpid dpid) {
return wrapped.getSwitch(dpid);
}
@Override
public Iterable<Switch> getSwitches() {
return wrapped.getSwitches();
}
@Override
public Port getPort(Dpid dpid, PortNumber portNumber) {
return wrapped.getPort(dpid, portNumber);
}
@Override
public Port getPort(SwitchPort port) {
return wrapped.getPort(port);
}
@Override
public Collection<Port> getPorts(Dpid dpid) {
return wrapped.getPorts(dpid);
}
@Override
public Link getOutgoingLink(Dpid dpid, PortNumber portNumber) {
return wrapped.getOutgoingLink(dpid, portNumber);
}
@Override
public Link getOutgoingLink(Dpid dpid, PortNumber portNumber, String type) {
return wrapped.getOutgoingLink(dpid, portNumber, type);
}
@Override
public Link getOutgoingLink(SwitchPort port) {
return wrapped.getOutgoingLink(port);
}
@Override
public Link getOutgoingLink(SwitchPort port, String type) {
return wrapped.getOutgoingLink(port, type);
}
@Override
public Collection<Link> getOutgoingLinks(SwitchPort port) {
return wrapped.getOutgoingLinks(port);
}
@Override
public Link getIncomingLink(Dpid dpid, PortNumber portNumber) {
return wrapped.getIncomingLink(dpid, portNumber);
}
@Override
public Link getIncomingLink(Dpid dpid, PortNumber portNumber, String type) {
return wrapped.getIncomingLink(dpid, portNumber, type);
}
@Override
public Link getIncomingLink(SwitchPort port) {
return wrapped.getIncomingLink(port);
}
@Override
public Link getIncomingLink(SwitchPort port, String type) {
return wrapped.getIncomingLink(port, type);
}
@Override
public Collection<Link> getIncomingLinks(SwitchPort port) {
return wrapped.getIncomingLinks(port);
}
@Override
public Link getLink(Dpid srcDpid, PortNumber srcPortNumber, Dpid dstDpid,
PortNumber dstPortNumber) {
return wrapped.getLink(srcDpid, srcPortNumber, dstDpid, dstPortNumber);
}
@Override
public Link getLink(Dpid srcDpid, PortNumber srcPortNumber, Dpid dstDpid,
PortNumber dstPortNumber, String type) {
return wrapped.getLink(srcDpid, srcPortNumber, dstDpid, dstPortNumber, type);
}
@Override
public Iterable<Link> getLinks() {
return wrapped.getLinks();
}
@Override
public Host getHostByMac(MACAddress address) {
return wrapped.getHostByMac(address);
}
@Override
public Iterable<Host> getHosts() {
return wrapped.getHosts();
}
@Override
public Collection<Host> getHosts(SwitchPort port) {
return wrapped.getHosts(port);
}
@Override
public OnosInstanceId getSwitchMaster(Dpid dpid) {
return wrapped.getSwitchMaster(dpid);
}
}