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

io.hyperfoil.api.config.Sequence Maven / Gradle / Ivy

There is a newer version: 0.27
Show newest version
package io.hyperfoil.api.config;

import java.io.Serializable;

import io.hyperfoil.api.session.ResourceUtilizer;
import io.hyperfoil.api.session.Session;

/**
 * Sequences are a series of one or more {@link Step}'s that perform one logical unit of operation. Steps within a Sequence are
 * executed in order.
 * State is shared between sequences via the {@link Session}. This allows sequences to pass request scoped state between
 * {@link Step} invocations.
 * 

* Sequences form the basis of a timed operation. */ public class Sequence implements Serializable { private final String name; private final int id; private final int concurrency; private final int offset; private final Step[] steps; private final ResourceUtilizer[] resourceUtilizers; public Sequence(String name, int id, int concurrency, int offset, Step[] steps) { this.name = name; this.id = id; this.concurrency = concurrency; this.offset = offset; this.steps = steps; ResourceUtilizer.Visitor visitor = new ResourceUtilizer.Visitor(); visitor.visit(this.steps); this.resourceUtilizers = visitor.resourceUtilizers(); } public int id() { return id; } public int concurrency() { return concurrency; } /** * @return Index for first instance for cases where we need an array of all concurrent instances. */ public int offset() { return offset; } public void reserve(Session session) { for (ResourceUtilizer ru : resourceUtilizers) { ru.reserve(session); } } public String name() { return name; } public Step[] steps() { return steps; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy