blob: 09c1c6679221e5a7390e6fc835c19beef8c8284c [file] [log] [blame]
Jonathan Hart4b5bbb52014-02-06 10:09:31 -08001package net.onrc.onos.ofcontroller.networkgraph;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.HashMap;
6import java.util.List;
7import java.util.Map;
8
9import net.floodlightcontroller.core.module.FloodlightModuleContext;
10import net.floodlightcontroller.core.module.FloodlightModuleException;
11import net.floodlightcontroller.core.module.IFloodlightModule;
12import net.floodlightcontroller.core.module.IFloodlightService;
Jonathan Hart47016712014-02-07 12:41:35 -080013import net.floodlightcontroller.restserver.IRestApiService;
14import net.onrc.onos.ofcontroller.networkgraph.web.NetworkGraphWebRoutable;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080015
16public class NetworkGraphModule implements IFloodlightModule, INetworkGraphService {
17
18 // This is initialized as a module for now
19 // private RCNetworkGraphPublisher eventListener;
20
21 private NetworkGraphImpl networkGraph;
22 private SouthboundNetworkGraph southboundNetworkGraph;
23
Jonathan Hart47016712014-02-07 12:41:35 -080024 private IRestApiService restApi;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080025
26 @Override
27 public Collection<Class<? extends IFloodlightService>> getModuleServices() {
28 List<Class<? extends IFloodlightService>> services =
29 new ArrayList<Class<? extends IFloodlightService>>();
30 services.add(INetworkGraphService.class);
31 return services;
32 }
33
34 @Override
35 public Map<Class<? extends IFloodlightService>, IFloodlightService>
36 getServiceImpls() {
37 Map<Class<? extends IFloodlightService>, IFloodlightService> impls =
38 new HashMap<Class<? extends IFloodlightService>, IFloodlightService>();
39 impls.put(INetworkGraphService.class, this);
40 return impls;
41 }
42
43 @Override
44 public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
Jonathan Hart47016712014-02-07 12:41:35 -080045 List<Class<? extends IFloodlightService>> dependencies =
46 new ArrayList<Class<? extends IFloodlightService>>();
47 dependencies.add(IRestApiService.class);
48 return dependencies;
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080049 }
50
51 @Override
52 public void init(FloodlightModuleContext context)
53 throws FloodlightModuleException {
Jonathan Hart47016712014-02-07 12:41:35 -080054 restApi = context.getServiceImpl(IRestApiService.class);
55
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080056 networkGraph = new NetworkGraphImpl();
57 southboundNetworkGraph = new SouthboundNetworkGraph(networkGraph);
58 }
59
60 @Override
61 public void startUp(FloodlightModuleContext context) {
Jonathan Hart47016712014-02-07 12:41:35 -080062 restApi.addRestletRoutable(new NetworkGraphWebRoutable());
Jonathan Hart4b5bbb52014-02-06 10:09:31 -080063 }
64
65 @Override
66 public NetworkGraph getNetworkGraph() {
67 return networkGraph;
68 }
69
70 @Override
71 public SouthboundNetworkGraph getSouthboundNetworkGraph() {
72 return southboundNetworkGraph;
73 }
74
75}