]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/src/main/java/org/rocksdb/MemoryUsageType.java
import 14.2.4 nautilus point release
[ceph.git] / ceph / src / rocksdb / java / src / main / java / org / rocksdb / MemoryUsageType.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 * MemoryUsageType
10 *
11 * <p>The value will be used as a key to indicate the type of memory usage
12 * described</p>
13 */
14 public enum MemoryUsageType {
15 /**
16 * Memory usage of all the mem-tables.
17 */
18 kMemTableTotal((byte) 0),
19 /**
20 * Memory usage of those un-flushed mem-tables.
21 */
22 kMemTableUnFlushed((byte) 1),
23 /**
24 * Memory usage of all the table readers.
25 */
26 kTableReadersTotal((byte) 2),
27 /**
28 * Memory usage by Cache.
29 */
30 kCacheTotal((byte) 3),
31 /**
32 * Max usage types - copied to keep 1:1 with native.
33 */
34 kNumUsageTypes((byte) 4);
35
36 /**
37 * Returns the byte value of the enumerations value
38 *
39 * @return byte representation
40 */
41 public byte getValue() {
42 return value_;
43 }
44
45 /**
46 * <p>Get the MemoryUsageType enumeration value by
47 * passing the byte identifier to this method.</p>
48 *
49 * @param byteIdentifier of MemoryUsageType.
50 *
51 * @return MemoryUsageType instance.
52 *
53 * @throws IllegalArgumentException if the usage type for the byteIdentifier
54 * cannot be found
55 */
56 public static MemoryUsageType getMemoryUsageType(final byte byteIdentifier) {
57 for (final MemoryUsageType memoryUsageType : MemoryUsageType.values()) {
58 if (memoryUsageType.getValue() == byteIdentifier) {
59 return memoryUsageType;
60 }
61 }
62
63 throw new IllegalArgumentException(
64 "Illegal value provided for MemoryUsageType.");
65 }
66
67 MemoryUsageType(byte value) {
68 value_ = value;
69 }
70
71 private final byte value_;
72 }