All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.anotheria.moskito.webui.producers.api.ProducerAPI Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
package net.anotheria.moskito.webui.producers.api;

import net.anotheria.anoplass.api.API;
import net.anotheria.anoplass.api.APIException;
import net.anotheria.anoprise.metafactory.Service;
import net.anotheria.moskito.core.registry.IProducerFilter;
import net.anotheria.moskito.core.stats.TimeUnit;
import org.distributeme.annotation.DistributeMe;
import org.distributeme.annotation.FailBy;
import org.distributeme.annotation.SupportService;
import org.distributeme.core.failing.RetryCallOnce;

import java.util.List;

/**
 * API for producer operations.
 *
 * @author lrosenberg
 * @since 14.02.13 11:49
 */
@DistributeMe(agentsSupport=false)
@SupportService
@FailBy(strategyClass=RetryCallOnce.class)
public interface ProducerAPI extends API, Service {
	/**
	 * Returns all available categories.
	 * @return
	 * @throws APIException
	 */
	List getCategories() throws APIException;

	/**
	 * Returns all available subsystems.
	 * @return
	 * @throws APIException
	 */
	List getSubsystems() throws APIException;

	/**
	 * Returns all available producers with stats by intervalname and timeunit.
	 * @param intervalName
	 * @param timeUnit time unit for duration calculation.
	 * @return
	 * @throws APIException
	 */
	List getAllProducers(String intervalName, TimeUnit timeUnit)throws APIException;

	/**
	 * Returns all producers in given category.
	 * @param currentCategory category filter.
	 * @param intervalName
	 * @param timeUnit time unit for duration calculation.
	 * @return
	 * @throws APIException
	 */
	List getAllProducersByCategory(String currentCategory, String intervalName, TimeUnit timeUnit)throws APIException;

	/**
	 *
	 * @param iProducerFilters
	 * @param intervalName
	 * @param timeUnit time unit for duration calculation.
	 * @return
	 * @throws APIException
	 */
	List getProducers(IProducerFilter[] iProducerFilters, String intervalName, TimeUnit timeUnit)throws APIException;

	/**
	 * Returns all producers in a given subsystem.
	 * @param currentSubsystem subsystem filter.
	 * @param intervalName
	 * @param timeUnit time unit for duration calculation.
	 * @return
	 * @throws APIException
	 */
	List getAllProducersBySubsystem(String currentSubsystem, String intervalName, TimeUnit timeUnit)throws APIException;

	/**
	 * Returns performance data for a single producer.
	 * @param producerId id of the producer.
	 * @param intervalName name of the interval.
	 * @param timeUnit timeUnit for the duration calculation.
	 * @return
	 * @throws APIException
	 */
	ProducerAO getProducer(String producerId, String intervalName, TimeUnit timeUnit) throws APIException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy