package org.onlab.onos.net.device;

import org.onlab.onos.net.ProviderService;

import java.util.List;

/**
 * Service through which device providers can inject device information into
 * the core.
 */
public interface DeviceProviderService extends ProviderService {

    // TODO: define suspend and remove actions on the mezzanine administrative API

    /**
     * Signals the core that a device has connected or has been detected somehow.
     *
     * @param deviceDescription information about network device
     */
    void deviceConnected(DeviceDescription deviceDescription);

    /**
     * Signals the core that a device has disconnected or is no longer reachable.
     *
     * @param deviceDescription device to be removed
     */
    void deviceDisconnected(DeviceDescription deviceDescription);

    /**
     * Sends information about all ports of a device. It is up to the core to
     * determine what has changed.
     *
     * @param ports list of device ports
     */
    void updatePorts(List<PortDescription> ports);

    /**
     * Used to notify the core about port status change of a single port.
     *
     * @param port description of the port that changed
     */
    void portStatusChanged(PortDescription port);

}
