* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Interface describing a throttle * * @author Dave Marshall */ interface ThrottleInterface { /** * Throttle * * @param string $key - A unique key for what we're throttling * @param int $limit - How many are allowed * @param int $milliseconds - In this many milliseconds * @return void */ public function throttle($key, $limit, $milliseconds); /** * Get Estimate * * If I were to throttle now, how long would I be waiting * * @param string $key - A unique key for what we're throttling * @param int $limit - How many are allowed * @param int $milliseconds - In this many milliseconds * @return int - the number of milliseconds before this request should be allowed */ public function getEstimate($key, $limit, $milliseconds); }