package com.vz.onosproject.provider.zeromq.device; import com.vz.onosproject.provider.zeromq.api.AbstractZeromqProvider; import com.vz.onosproject.provider.zeromq.api.ZeromqSBController; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.ReferenceCardinality; import org.onosproject.net.DeviceId; import org.onosproject.net.MastershipRole; import org.onosproject.net.PortNumber; import org.onosproject.net.device.DeviceProvider; import org.onosproject.net.device.DeviceProviderRegistry; import org.onosproject.net.device.DeviceProviderService; import org.onosproject.net.device.DeviceService; import org.slf4j.Logger; import org.zeromq.ZMQ; import org.zeromq.ZMQ.Context; import org.zeromq.ZMQ.Socket; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; import static org.onosproject.net.DeviceId.deviceId; import static org.slf4j.LoggerFactory.getLogger; /** * Created by kspviswa-onos-mcord on 2/12/16. */ public class ZeromqDeviceProvider extends AbstractZeromqProvider implements DeviceProvider { private final Logger log = getLogger(getClass()); @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) protected DeviceProviderRegistry providerRegistry; @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) protected DeviceService deviceService; public ZeromqSBController getController() { return controller; } public void setController(ZeromqSBController controller) { this.controller = controller; } //@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) protected ZeromqSBController controller; private DeviceProviderService providerService; public DeviceProviderService getProviderService() { return providerService; } public void setProviderService(DeviceProviderService providerService) { this.providerService = providerService; } public void activate() { //providerService = providerRegistry.register(this); if(controller != null) { log.info("#### Controller is not null"); } if(this.providerService != null) { log.info("#### providerService is not null"); } controller.initConnections(providerService); log.info("DeviceProvider Started"); } public void deactivate() { //providerRegistry.unregister(this); //providerService = null; controller.destroyConnections(); log.info("DeviceProvider Stopped"); } @Override public void triggerProbe(DeviceId deviceId) { log.info("### DeviceProvider triggeringProble ###"); } @Override public void roleChanged(DeviceId deviceId, MastershipRole mastershipRole) { log.info("### DeviceProvider roleChanged ####"); } @Override public boolean isReachable(DeviceId deviceId) { log.info("### DeviceProvider isReachable ####"); return true; } @Override public void changePortState(DeviceId deviceId, PortNumber portNumber, boolean b) { log.info("### DeviceProvider changePortState ####"); } }