blob: 4e1211a2e88195ed40d9b743c5c743d492722296 [file] [log] [blame]
package org.onlab.onos.net.topology;
import org.onlab.onos.net.Topology;
/**
* Service for providing network topology information.
*/
public interface TopologyService {
/**
* Returns the current topology descriptor.
*
* @return current topology
*/
Topology currentTopology();
// TODO: Figure out hot to best export graph traversal methods via Graph/Vertex/Edge
// TODO: figure out how we want this to be presented, via Topology or via TopologyService
// Set<TopologyCluster> getClusters(Topology topology);
// Set<Path> getPaths(Topology topology, DeviceId src, DeviceId dst);
// Set<Path> getPaths(Topology topology, DeviceId src, DeviceId dst, LinkWeight weight);
// boolean isInfrastructure(Topology topology, ConnectPoint connectPoint);
// boolean isInBroadcastTree(Topology topology, ConnectPoint connectPoint);
/**
* Adds the specified topology listener.
*
* @param listener topology listener
*/
void addListener(TopologyListener listener);
/**
* Removes the specified topology listener.
*
* @param listener topology listener
*/
void removeListener(TopologyListener listener);
}