blob: d50458b9818111119f246de0f54017c329016717 [file] [log] [blame]
package net.onrc.onos.apps.websocket;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.floodlightcontroller.core.module.FloodlightModuleContext;
import net.floodlightcontroller.core.module.FloodlightModuleException;
import net.floodlightcontroller.core.module.IFloodlightModule;
import net.floodlightcontroller.core.module.IFloodlightService;
import net.onrc.onos.core.topology.ITopologyService;
/**
* The WebSocket module class.
*/
public class WebSocketModule implements IFloodlightModule, IWebSocketService {
private WebSocketManager webSocketManager;
private static final int DEFAULT_WEBSOCKET_PORT = 8081;
@Override
public Collection<Class<? extends IFloodlightService>> getModuleServices() {
List<Class<? extends IFloodlightService>> services =
new ArrayList<Class<? extends IFloodlightService>>();
services.add(IWebSocketService.class);
return services;
}
@Override
public Map<Class<? extends IFloodlightService>, IFloodlightService>
getServiceImpls() {
Map<Class<? extends IFloodlightService>, IFloodlightService> impls =
new HashMap<Class<? extends IFloodlightService>, IFloodlightService>();
impls.put(IWebSocketService.class, this);
return impls;
}
@Override
public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
List<Class<? extends IFloodlightService>> dependencies =
new ArrayList<Class<? extends IFloodlightService>>();
dependencies.add(ITopologyService.class);
return dependencies;
}
@Override
public void init(FloodlightModuleContext context)
throws FloodlightModuleException {
ITopologyService topologyService =
context.getServiceImpl(ITopologyService.class);
//
// Read the configuration options
//
int webSocketPort = DEFAULT_WEBSOCKET_PORT;
Map<String, String> configOptions = context.getConfigParams(this);
String port = configOptions.get("port");
if (port != null) {
webSocketPort = Integer.parseInt(port);
}
// Initialize the WebSocketManager
webSocketManager = new WebSocketManager(topologyService,
webSocketPort);
}
@Override
public void startUp(FloodlightModuleContext context) {
webSocketManager.startup();
}
}