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

com.emc.mongoose.base.load.generator.LoadGeneratorBuilder Maven / Gradle / Ivy

There is a newer version: 4.3.10
Show newest version
package com.emc.mongoose.base.load.generator;

import com.emc.mongoose.base.config.IllegalConfigurationException;
import com.emc.mongoose.base.item.Item;
import com.emc.mongoose.base.item.ItemFactory;
import com.emc.mongoose.base.item.ItemType;
import com.emc.mongoose.base.item.op.Operation;
import com.github.akurilov.commons.concurrent.throttle.IndexThrottle;
import com.github.akurilov.commons.concurrent.throttle.Throttle;
import com.github.akurilov.commons.io.Input;
import com.github.akurilov.commons.io.Output;
import com.github.akurilov.confuse.Config;
import java.io.IOException;

/** Created by andrey on 12.11.16. */
public interface LoadGeneratorBuilder, T extends LoadGenerator> {

	LoadGeneratorBuilder itemConfig(final Config itemConfig);

	LoadGeneratorBuilder loadConfig(final Config loadConfig);

	LoadGeneratorBuilder itemType(final ItemType itemType);

	LoadGeneratorBuilder itemFactory(final ItemFactory itemFactory);

	LoadGeneratorBuilder authConfig(final Config authConfig);

	LoadGeneratorBuilder loadOperationsOutput(Output storageDriver);

	LoadGeneratorBuilder itemInput(final Input itemInput);

	LoadGeneratorBuilder originIndex(final int originIndex);

	LoadGeneratorBuilder addThrottle(final Throttle throttle);

	LoadGeneratorBuilder addThrottle(final IndexThrottle throttle);

	T build() throws IllegalConfigurationException, IOException;
}