blob: c6d89a91addd5ab077d08bf836e58b0423dfdb86 [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001package net.floodlightcontroller.core;
2
3import java.util.ArrayList;
4import java.util.Collection;
5import java.util.HashMap;
6import java.util.Map;
7
8import net.floodlightcontroller.core.internal.Controller;
9import net.floodlightcontroller.core.module.FloodlightModuleContext;
10import net.floodlightcontroller.core.module.FloodlightModuleException;
11import net.floodlightcontroller.core.module.IFloodlightModule;
12import net.floodlightcontroller.core.module.IFloodlightService;
13import net.floodlightcontroller.counter.ICounterStoreService;
14import net.floodlightcontroller.perfmon.IPktInProcessingTimeService;
15import net.floodlightcontroller.restserver.IRestApiService;
16import net.floodlightcontroller.storage.IStorageSourceService;
17import net.floodlightcontroller.threadpool.IThreadPoolService;
HIGUCHI Yuta20514902013-06-12 11:24:16 -070018import net.onrc.onos.ofcontroller.core.INetMapTopologyService.ITopoRouteService;
HIGUCHI Yuta60a10142013-06-14 15:50:10 -070019import net.onrc.onos.ofcontroller.flowmanager.IFlowService;
Jonathan Hartd82f20d2013-02-21 18:04:24 -080020import net.onrc.onos.registry.controller.IControllerRegistryService;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080021
22public class FloodlightProvider implements IFloodlightModule {
23 Controller controller;
24
25 @Override
26 public Collection<Class<? extends IFloodlightService>> getModuleServices() {
27 Collection<Class<? extends IFloodlightService>> services =
28 new ArrayList<Class<? extends IFloodlightService>>(1);
29 services.add(IFloodlightProviderService.class);
30 return services;
31 }
32
33 @Override
34 public Map<Class<? extends IFloodlightService>,
35 IFloodlightService> getServiceImpls() {
36 controller = new Controller();
37
38 Map<Class<? extends IFloodlightService>,
39 IFloodlightService> m =
40 new HashMap<Class<? extends IFloodlightService>,
41 IFloodlightService>();
42 m.put(IFloodlightProviderService.class, controller);
43 return m;
44 }
45
46 @Override
47 public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
48 Collection<Class<? extends IFloodlightService>> dependencies =
49 new ArrayList<Class<? extends IFloodlightService>>(4);
50 dependencies.add(IStorageSourceService.class);
51 dependencies.add(IPktInProcessingTimeService.class);
52 dependencies.add(IRestApiService.class);
53 dependencies.add(ICounterStoreService.class);
54 dependencies.add(IThreadPoolService.class);
HIGUCHI Yuta09330f02013-06-14 13:31:07 -070055 // Following added by ONOS
Pavlin Radoslavov19b0e122013-02-21 18:47:38 -080056 dependencies.add(IFlowService.class);
Pavlin Radoslavovd7d8b792013-02-22 10:24:38 -080057 dependencies.add(ITopoRouteService.class);
Jonathan Hartd82f20d2013-02-21 18:04:24 -080058 dependencies.add(IControllerRegistryService.class);
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080059
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080060 return dependencies;
61 }
62
63 @Override
64 public void init(FloodlightModuleContext context) throws FloodlightModuleException {
65 controller.setStorageSourceService(
66 context.getServiceImpl(IStorageSourceService.class));
67 controller.setPktInProcessingService(
68 context.getServiceImpl(IPktInProcessingTimeService.class));
69 controller.setCounterStore(
70 context.getServiceImpl(ICounterStoreService.class));
71 controller.setRestApiService(
72 context.getServiceImpl(IRestApiService.class));
73 controller.setThreadPoolService(
74 context.getServiceImpl(IThreadPoolService.class));
HIGUCHI Yuta09330f02013-06-14 13:31:07 -070075 // Following added by ONOS
Pavlin Radoslavov19b0e122013-02-21 18:47:38 -080076 controller.setFlowService(context.getServiceImpl(IFlowService.class));
Pavlin Radoslavovd7d8b792013-02-22 10:24:38 -080077 controller.setTopoRouteService(context.getServiceImpl(ITopoRouteService.class));
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080078 controller.setMastershipService(
79 context.getServiceImpl(IControllerRegistryService.class));
80
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080081 controller.init(context.getConfigParams(this));
82 }
83
84 @Override
85 public void startUp(FloodlightModuleContext context) {
86 controller.startupComponents();
87 }
88}