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

uk.co.thebadgerset.junit.extensions.Throttle Maven / Gradle / Ivy

Go to download

JUnit Toolkit enhances JUnit with performance testing, asymptotic behaviour analysis, and concurrency testing.

The newest version!
/*
 * Copyright 2007 Rupert Smith.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package uk.co.thebadgerset.junit.extensions;

/**
 * Throttle is an interface that supplies a {@link #throttle} method, that can only be called at the rate specified
 * in a call to the {@link #setRate} method. This can be used to restict processing to run at a certain number
 * of operations per second.
 *
 * 

*
CRC Card
Responsibilities *
Accept throttling rate in operations per second. *
Inject short pauses to fill out processing cycles to a specified rate. *
* * @author Rupert Smith */ public interface Throttle { /** * Specifies the throttling rate in operations per second. This must be called with with a value, the inverse * of which is a measurement in nano seconds, such that the number of nano seconds do not overflow a long integer. * The value must also be larger than zero. * * @param hertz The throttling rate in cycles per second. */ public void setRate(float hertz); /** * This method can only be called at the rate set by the {@link #setRate} method, if it is called faster than this * it will inject short pauses to restrict the call rate to that rate. */ public void throttle(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy