blob: 67fcabb549f53175107ebe9b1698c81041b1c4e8 [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 Hart8a5d0972013-12-04 10:02:44 -080017import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
Jonathan Hartd82f20d2013-02-21 18:04:24 -080018import net.onrc.onos.registry.controller.IControllerRegistryService;
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080019
20public class FloodlightProvider implements IFloodlightModule {
21 Controller controller;
22
23 @Override
24 public Collection<Class<? extends IFloodlightService>> getModuleServices() {
25 Collection<Class<? extends IFloodlightService>> services =
26 new ArrayList<Class<? extends IFloodlightService>>(1);
27 services.add(IFloodlightProviderService.class);
28 return services;
29 }
30
31 @Override
32 public Map<Class<? extends IFloodlightService>,
33 IFloodlightService> getServiceImpls() {
34 controller = new Controller();
35
36 Map<Class<? extends IFloodlightService>,
37 IFloodlightService> m =
38 new HashMap<Class<? extends IFloodlightService>,
39 IFloodlightService>();
40 m.put(IFloodlightProviderService.class, controller);
41 return m;
42 }
43
44 @Override
45 public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
46 Collection<Class<? extends IFloodlightService>> dependencies =
47 new ArrayList<Class<? extends IFloodlightService>>(4);
48 dependencies.add(IStorageSourceService.class);
mininet73e7fb72013-12-03 14:25:53 -080049
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080050 dependencies.add(IRestApiService.class);
51 dependencies.add(ICounterStoreService.class);
52 dependencies.add(IThreadPoolService.class);
HIGUCHI Yuta09330f02013-06-14 13:31:07 -070053 // Following added by ONOS
Jonathan Hartd82f20d2013-02-21 18:04:24 -080054 dependencies.add(IControllerRegistryService.class);
Jonathan Hart8a5d0972013-12-04 10:02:44 -080055 dependencies.add(ILinkDiscoveryService.class);
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080056
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080057 return dependencies;
58 }
59
60 @Override
61 public void init(FloodlightModuleContext context) throws FloodlightModuleException {
62 controller.setStorageSourceService(
63 context.getServiceImpl(IStorageSourceService.class));
mininet73e7fb72013-12-03 14:25:53 -080064
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080065 controller.setCounterStore(
66 context.getServiceImpl(ICounterStoreService.class));
67 controller.setRestApiService(
68 context.getServiceImpl(IRestApiService.class));
69 controller.setThreadPoolService(
70 context.getServiceImpl(IThreadPoolService.class));
HIGUCHI Yuta09330f02013-06-14 13:31:07 -070071 // Following added by ONOS
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080072 controller.setMastershipService(
73 context.getServiceImpl(IControllerRegistryService.class));
Jonathan Hart8a5d0972013-12-04 10:02:44 -080074 controller.setLinkDiscoveryService(
75 context.getServiceImpl(ILinkDiscoveryService.class));
Jonathan Hartc2e95ee2013-02-22 15:25:11 -080076
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -080077 controller.init(context.getConfigParams(this));
78 }
79
80 @Override
81 public void startUp(FloodlightModuleContext context) {
82 controller.startupComponents();
83 }
84}