| package net.onrc.onos.core.topology; |
| |
| import net.onrc.onos.core.topology.web.serializers.TopologySerializer; |
| |
| import org.codehaus.jackson.map.annotate.JsonSerialize; |
| |
| //TODO move to appropriate package under api |
| /** |
| * MutableTopology, which this instance can be updated to new view. |
| * <p> |
| * Requires read-lock to access any information on this topology view. |
| * <p> |
| * Note: This is still read-only view of the topology. |
| * <p> |
| * The northbound interface to the topology. This interface |
| * is presented to the rest of ONOS. It is currently read-only, as we want |
| * only the discovery modules to be allowed to modify the topology. |
| */ |
| @JsonSerialize(using = TopologySerializer.class) |
| public interface MutableTopology extends BaseTopology { |
| |
| /** |
| * Acquire a read lock on the entire topology. The topology will not |
| * change while readers have the lock. Must be released using |
| * {@link #releaseReadLock()}. This method will block until a read lock is |
| * available. |
| */ |
| public void acquireReadLock(); |
| |
| /** |
| * Release the read lock on the topology. |
| */ |
| public void releaseReadLock(); |
| } |