/* * Copyright (c) 2008-2012 EMC Corporation * All Rights Reserved */ package com.emc.storageos.volumecontroller; import com.emc.storageos.coordinator.client.service.WorkPool; import com.emc.storageos.db.client.model.StorageSystem; /** * Defines the interface classes that monitor storage devices for events and * alerts. */ public interface StorageMonitor { /** * Monitor the passed storage device for events. * * @param storageDevice A reference to the storage device. */ public void startMonitoring(StorageSystem storageDevice, WorkPool.Work work) throws StorageMonitorException; /** * Stop monitoring the passed storage device for events. * * @param storageDevice A reference to the storage device. */ public void stopMonitoring(StorageSystem storageDevice) throws StorageMonitorException; /** * Shuts down the storage monitor so that event monitoring is stopped for * all storage devices being monitored and all resources are cleaned up. */ public void shutdown(); }