package net.floodlightcontroller.debugcounter; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; 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.floodlightcontroller.debugcounter.DebugCounter.DebugCounterInfo; public class NullDebugCounter implements IFloodlightModule, IDebugCounterService { @Override public Collection<Class<? extends IFloodlightService>> getModuleServices() { Collection<Class<? extends IFloodlightService>> services = new ArrayList<Class<? extends IFloodlightService>>(1); services.add(IDebugCounterService.class); return services; } @Override public Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls() { Map<Class<? extends IFloodlightService>, IFloodlightService> m = new HashMap<Class<? extends IFloodlightService>, IFloodlightService>(); m.put(IDebugCounterService.class, this); return m; } @Override public Collection<Class<? extends IFloodlightService>> getModuleDependencies() { return null; } @Override public void init(FloodlightModuleContext context) throws FloodlightModuleException { } @Override public void startUp(FloodlightModuleContext context) { } @Override public void flushCounters() { } @Override public void resetAllCounters() { } @Override public void resetAllModuleCounters(String moduleName) { } @Override public void resetCounterHierarchy(String moduleName, String counterHierarchy) { } @Override public void enableCtrOnDemand(String moduleName, String counterHierarchy) { } @Override public void disableCtrOnDemand(String moduleName, String counterHierarchy) { } @Override public List<DebugCounterInfo> getCounterHierarchy(String moduleName, String counterHierarchy) { return Collections.emptyList(); } @Override public List<DebugCounterInfo> getAllCounterValues() { return Collections.emptyList(); } @Override public List<DebugCounterInfo> getModuleCounterValues(String moduleName) { return Collections.emptyList(); } @Override public boolean containsModuleCounterHierarchy(String moduleName, String counterHierarchy) { return false; } @Override public boolean containsModuleName(String moduleName) { return false; } @Override public IDebugCounter registerCounter(String moduleName, String counterHierarchy, String counterDescription, CounterType counterType, String... metaData) throws MaxCountersRegistered { return new NullCounterImpl(); } @Override public List<String> getModuleList() { return Collections.emptyList(); } @Override public List<String> getModuleCounterList(String moduleName) { return Collections.emptyList(); } public class NullCounterImpl implements IDebugCounter { @Override public void updateCounterWithFlush() { } @Override public void updateCounterNoFlush() { } @Override public void updateCounterWithFlush(int incr) { } @Override public void updateCounterNoFlush(int incr) { } @Override public long getCounterValue() { return -1; } } }