com.google.common.util.concurrent.RateLimiterCreator.java Source code

Java tutorial

Introduction

Here is the source code for com.google.common.util.concurrent.RateLimiterCreator.java

Source

/*
 * Copyright 2014-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * Portions copyright 2010 Google, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file 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 com.google.common.util.concurrent;

/**
 * Special RateLimiter constructors and factories are package private in Google Guava.
 * Need to set up the bursting bucket on DynamoDB tables.
 * @author Alexander Patrikalakis
 *
 */
public class RateLimiterCreator {
    //BEGIN copied code
    //https://github.com/google/guava/blob/v18.0/guava/src/com/google/common/util/concurrent/RateLimiter.java#L137
    public static RateLimiter createBurstingLimiter(double rate, double burstBucketSizeInSeconds) {
        RateLimiter rateLimiter = new SmoothRateLimiter.SmoothBursty(
                RateLimiter.SleepingStopwatch.createFromSystemTimer(),
                burstBucketSizeInSeconds /* maxBurstSeconds */);
        rateLimiter.setRate(rate);
        return rateLimiter;
    }
    //END copied code
    //https://github.com/google/guava/blob/v18.0/guava/src/com/google/common/util/concurrent/RateLimiter.java#L140
}