]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/src/main/java/org/rocksdb/RateLimiterMode.java
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / rocksdb / java / src / main / java / org / rocksdb / RateLimiterMode.java
1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2 // This source code is licensed under both the GPLv2 (found in the
3 // COPYING file in the root directory) and Apache 2.0 License
4 // (found in the LICENSE.Apache file in the root directory).
5
6 package org.rocksdb;
7
8 /**
9 * Mode for {@link RateLimiter#RateLimiter(long, long, int, RateLimiterMode)}.
10 */
11 public enum RateLimiterMode {
12 READS_ONLY((byte)0x0),
13 WRITES_ONLY((byte)0x1),
14 ALL_IO((byte)0x2);
15
16 private final byte value;
17
18 RateLimiterMode(final byte value) {
19 this.value = value;
20 }
21
22 /**
23 * <p>Returns the byte value of the enumerations value.</p>
24 *
25 * @return byte representation
26 */
27 public byte getValue() {
28 return value;
29 }
30
31 /**
32 * <p>Get the RateLimiterMode enumeration value by
33 * passing the byte identifier to this method.</p>
34 *
35 * @param byteIdentifier of RateLimiterMode.
36 *
37 * @return AccessHint instance.
38 *
39 * @throws IllegalArgumentException if the access hint for the byteIdentifier
40 * cannot be found
41 */
42 public static RateLimiterMode getRateLimiterMode(final byte byteIdentifier) {
43 for (final RateLimiterMode rateLimiterMode : RateLimiterMode.values()) {
44 if (rateLimiterMode.getValue() == byteIdentifier) {
45 return rateLimiterMode;
46 }
47 }
48
49 throw new IllegalArgumentException(
50 "Illegal value provided for RateLimiterMode.");
51 }
52 }