package org.ovirt.engine.core.dao;
import java.util.Collection;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.VdsNetworkInterface;
import org.ovirt.engine.core.common.businessentities.VdsNetworkStatistics;
import org.ovirt.engine.core.compat.Guid;
/**
* <code>InterfaceDAO</code> defines a type for performing CRUD operations on instances of {@link Interface}.
*
*
*/
public interface InterfaceDAO extends DAO {
/**
* Saves the specified statistics
*
* @param stats
* the statistics
*/
void saveStatisticsForVds(VdsNetworkStatistics stats);
/**
* Saves the specified VDS interface.
*
* @param iface
* the interface
*/
void saveInterfaceForVds(VdsNetworkInterface iface);
/**
* Updates the statistics.
*
* @param stats
* the statistics
*/
void updateStatisticsForVds(VdsNetworkStatistics stats);
/**
* Updates the given collection of vds network statistics using a more efficient method to update all of them at
* once, rather than each at a time.
*
* @param statistics
* The collection of statistics to update.
*/
void massUpdateStatisticsForVds(Collection<VdsNetworkStatistics> statistics);
/**
* Updates the specified VDS interface.
*
* @param iface
* the interface
*/
void updateInterfaceForVds(VdsNetworkInterface iface);
/**
* Retrieves all interfaces for the given VDS id.
*
* @param id
* the VDS id
* @return the list of interfaces
*/
List<VdsNetworkInterface> getAllInterfacesForVds(Guid id);
/**
* Removes the specified statistics.
*
* @param id
* the statistics
*/
void removeStatisticsForVds(Guid id);
/**
* Removes the VDS interface.
*
* @param id
* the interface
*/
void removeInterfaceFromVds(Guid id);
}