Download include/aws/core/utils/ratelimiter/RateLimiterInterface.h from Shenghong/dai_env: direct link, hf CLI and curl.
- Browser
- Download file 1.42 kB
-
https://huggingface.co/Shenghong/dai_env/resolve/main/include/aws/core/utils/ratelimiter/RateLimiterInterface.h
- Command line
-
hf download hf://Shenghong/dai_env/include/aws/core/utils/ratelimiter/RateLimiterInterface.h
-
curl -L -o RateLimiterInterface.h https://huggingface.co/Shenghong/dai_env/resolve/main/include/aws/core/utils/ratelimiter/RateLimiterInterface.h
1.42 kB
| /** | |
| * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
| * SPDX-License-Identifier: Apache-2.0. | |
| */ | |
| namespace Aws | |
| { | |
| namespace Utils | |
| { | |
| namespace RateLimits | |
| { | |
| /** | |
| * Interface for bandwidth limiters. You likely don't want to implement your own as DefaultRateLimiter is probably what you need. | |
| * If you need to implement one, then this is the interface to implement. | |
| */ | |
| class RateLimiterInterface | |
| { | |
| public: | |
| using DelayType = std::chrono::milliseconds; | |
| virtual ~RateLimiterInterface() {} | |
| /** | |
| * Calculates time in milliseconds that should be delayed before letting anymore data through. | |
| */ | |
| virtual DelayType ApplyCost(int64_t cost) = 0; | |
| /** | |
| * Same as ApplyCost() but then goes ahead and sleeps the current thread. | |
| */ | |
| virtual void ApplyAndPayForCost(int64_t cost) = 0; | |
| /** | |
| * Update the bandwidth rate to allow. | |
| */ | |
| virtual void SetRate(int64_t rate, bool resetAccumulator = false) = 0; | |
| }; | |
| } // namespace RateLimits | |
| } // namespace Utils | |
| } // namespace Aws |