blob: 7fc5c4f2206e0e05c27c2693a6f9a20d8a0a0752 [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;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080014import net.floodlightcontroller.restserver.IRestApiService;
15import net.floodlightcontroller.storage.IStorageSourceService;
16import net.floodlightcontroller.threadpool.IThreadPoolService;
Jonathan Hartd82f20d2013-02-21 18:04:24 -080017import net.onrc.onos.registry.controller.IControllerRegistryService;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080018
19public class FloodlightProvider implements IFloodlightModule {
20 Controller controller;
21
22 @Override
23 public Collection<Class<? extends IFloodlightService>> getModuleServices() {
24 Collection<Class<? extends IFloodlightService>> services =
25 new ArrayList<Class<? extends IFloodlightService>>(1);
26 services.add(IFloodlightProviderService.class);
27 return services;
28 }
29
30 @Override
31 public Map<Class<? extends IFloodlightService>,
32 IFloodlightService> getServiceImpls() {
33 controller = new Controller();
34
35 Map<Class<? extends IFloodlightService>,
36 IFloodlightService> m =
37 new HashMap<Class<? extends IFloodlightService>,
38 IFloodlightService>();
39 m.put(IFloodlightProviderService.class, controller);
40 return m;
41 }
42
43 @Override
44 public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
45 Collection<Class<? extends IFloodlightService>> dependencies =
46 new ArrayList<Class<? extends IFloodlightService>>(4);
47 dependencies.add(IStorageSourceService.class);
mininet73e7fb72013-12-03 14:25:53 -080048
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080049 dependencies.add(IRestApiService.class);
50 dependencies.add(ICounterStoreService.class);
51 dependencies.add(IThreadPoolService.class);
HIGUCHI Yuta09330f02013-06-14 13:31:07 -070052 // Following added by ONOS
Jonathan Hartd82f20d2013-02-21 18:04:24 -080053 dependencies.add(IControllerRegistryService.class);
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080054
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080055 return dependencies;
56 }
57
58 @Override
59 public void init(FloodlightModuleContext context) throws FloodlightModuleException {
60 controller.setStorageSourceService(
61 context.getServiceImpl(IStorageSourceService.class));
mininet73e7fb72013-12-03 14:25:53 -080062
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080063 controller.setCounterStore(
64 context.getServiceImpl(ICounterStoreService.class));
65 controller.setRestApiService(
66 context.getServiceImpl(IRestApiService.class));
67 controller.setThreadPoolService(
68 context.getServiceImpl(IThreadPoolService.class));
HIGUCHI Yuta09330f02013-06-14 13:31:07 -070069 // Following added by ONOS
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080070 controller.setMastershipService(
71 context.getServiceImpl(IControllerRegistryService.class));
72
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080073 controller.init(context.getConfigParams(this));
74 }
75
76 @Override
77 public void startUp(FloodlightModuleContext context) {
78 controller.startupComponents();
79 }
80}