blob: 5d94f65c85e1e466c06f3d96e5795ad2066701cc [file] [log] [blame]
Jonathan Hart4b5bbb52014-02-06 10:09:31 -08001package net.onrc.onos.ofcontroller.networkgraph;
2
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 {
9 /**
10 * Allows a module to get a reference to the global network graph object.
11 * @return
12 */
13 public NetworkGraph getNetworkGraph();
Yuta HIGUCHIa536e762014-02-17 21:47:28 -080014
15 public void registerNetworkGraphListener(INetworkGraphListener listener);
16 public void deregisterNetworkGraphListener(INetworkGraphListener listener);
17
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080018 /**
19 * Allows a module to get a reference to the southbound interface to
20 * the network graph.
Yuta HIGUCHIa536e762014-02-17 21:47:28 -080021 * TODO Figure out how to hide the southbound interface from
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080022 * applications/modules that shouldn't touch it
23 * @return
24 */
Jonathan Hart22eb9882014-02-11 15:52:59 -080025 public NetworkGraphDiscoveryInterface getNetworkGraphDiscoveryInterface();
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080026}