/*
* Generated by XDoclet - Do not edit!
*/
package org.hyperic.hq.measurement.shared;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import org.hyperic.hq.appdef.shared.AppdefEntityConstants;
import org.hyperic.hq.appdef.shared.AppdefEntityID;
import org.hyperic.hq.measurement.ext.ProblemMetricInfo;
import org.hyperic.hq.measurement.ext.ProblemResourceInfo;
import org.hyperic.hq.measurement.server.session.Measurement;
import org.hyperic.hq.measurement.server.session.MetricProblem;
import org.hyperic.hq.product.MetricValue;
import org.hyperic.util.pager.PageControl;
/**
* Local interface for ProblemMetricManager.
*/
public interface ProblemMetricManager {
public void createProblem(Integer mid, long time, int type, Integer additional);
/**
* @return may return null if the method is not implemented or the measurement was not found
* at the specified timestamp
*/
public MetricProblem getByIdAndTimestamp(Measurement meas, long timestamp);
/**
* Return the map of problem counts indexed by template IDs
*/
public Map<Integer, ProblemMetricInfo> getProblemsByTemplate(int appdefType, Integer[] eids, long begin, long end);
/**
* Return the list of problem metrics for an appdef entity
*/
public ProblemMetricInfo[] getProblemMetrics(AppdefEntityID aid, long begin, long end);
/**
* Return the resources having problems in a timeframe with stats on alerts,
* oob conditions and when within the timeframe the problem awareness
* begins.
* @param begin the early boundary of the timeframe of interest
* @param end the late boundary of the timeframe of interest
* @return ProblemResourceInfo[]
*/
public ProblemResourceInfo[] getProblemResources(long begin, long end, Set<AppdefEntityID> permitted, PageControl pc);
/**
* Return the resources having problems in a timeframe with stats on alerts,
* oob conditions and when within the timeframe the problem awareness
* begins. The set of resources returned will be scoped down to a specific
* set of appdef entities.
* @param appdefType the type of resources desired
* @param instanceIds the ids of the items in scope for the problem check
* @param begin the early boundary of the timeframe of interest
* @param end the late boundary of the timeframe of interest
* @return ProblemResourceInfo[]
* @see AppdefEntityConstants#typeIsValid(int)
*/
public ProblemResourceInfo[] getProblemResourcesByTypeAndInstances(int appdefType, Integer[] instanceIds, long begin,
long end, PageControl pc);
public void removeProblems(Collection<Integer> mids);
public void removeProblems(AppdefEntityID entityId);
/**
* Log an OOB instance
*/
public void processMetricValue(Integer mid, MetricValue mv, int type);
}