blob: 18eb7854db1caba40da59e498443e8e2776984a5 [file] [log] [blame]
Jonathan Hart472062d2014-04-03 10:56:48 -07001package net.onrc.onos.core.topology;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -08002
3import net.floodlightcontroller.core.module.IFloodlightService;
4
5/**
6 * Interface for providing the Network Graph Service to other modules.
7 */
8public interface INetworkGraphService extends IFloodlightService {
Ray Milkey269ffb92014-04-03 14:43:30 -07009 /**
10 * Allows a module to get a reference to the global network graph object.
11 *
12 * @return
13 */
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080014 public NetworkGraph getNetworkGraph();
Yuta HIGUCHIa536e762014-02-17 21:47:28 -080015
16 public void registerNetworkGraphListener(INetworkGraphListener listener);
Ray Milkey269ffb92014-04-03 14:43:30 -070017
Yuta HIGUCHIa536e762014-02-17 21:47:28 -080018 public void deregisterNetworkGraphListener(INetworkGraphListener listener);
19
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080020 /**
21 * Allows a module to get a reference to the southbound interface to
22 * the network graph.
Yuta HIGUCHIa536e762014-02-17 21:47:28 -080023 * TODO Figure out how to hide the southbound interface from
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080024 * applications/modules that shouldn't touch it
Ray Milkey269ffb92014-04-03 14:43:30 -070025 *
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080026 * @return
27 */
Jonathan Hart22eb9882014-02-11 15:52:59 -080028 public NetworkGraphDiscoveryInterface getNetworkGraphDiscoveryInterface();
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080029}