blob: b6280bc9a6bb7393d415faedf71e200f83294760 [file] [log] [blame]
Jonathan Harte37e4e22014-05-13 19:12:02 -07001package net.onrc.onos.core.topology;
2
3import net.floodlightcontroller.core.module.IFloodlightService;
4
5/**
6 * Interface for providing the topology service to other modules.
7 */
8public interface ITopologyService extends IFloodlightService {
9 /**
10 * Allows a module to get a reference to the global topology object.
11 *
12 * @return the global Topology object
13 */
14 public Topology getTopology();
15
16 /**
17 * Registers a listener for topology events.
18 *
19 * @param listener the listener to register
20 */
21 public void registerTopologyListener(ITopologyListener listener);
22
23 /**
24 * Deregisters a listener for topology events. The listener will no longer
25 * receive topology events after this call.
26 *
27 * @param listener the listener to deregister
28 */
29 public void deregisterTopologyListener(ITopologyListener listener);
30
31 /**
32 * Allows a module to get a reference to the southbound interface to
33 * the topology.
34 * TODO Figure out how to hide the southbound interface from
35 * applications/modules that shouldn't touch it
36 *
37 * @return the TopologyDiscoveryInterface object
38 */
39 public TopologyDiscoveryInterface getTopologyDiscoveryInterface();
40}