]>
Commit | Line | Data |
---|---|---|
494da23a TL |
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 | * The operation stage. | |
10 | */ | |
11 | public enum OperationStage { | |
12 | STAGE_UNKNOWN((byte)0x0), | |
13 | STAGE_FLUSH_RUN((byte)0x1), | |
14 | STAGE_FLUSH_WRITE_L0((byte)0x2), | |
15 | STAGE_COMPACTION_PREPARE((byte)0x3), | |
16 | STAGE_COMPACTION_RUN((byte)0x4), | |
17 | STAGE_COMPACTION_PROCESS_KV((byte)0x5), | |
18 | STAGE_COMPACTION_INSTALL((byte)0x6), | |
19 | STAGE_COMPACTION_SYNC_FILE((byte)0x7), | |
20 | STAGE_PICK_MEMTABLES_TO_FLUSH((byte)0x8), | |
21 | STAGE_MEMTABLE_ROLLBACK((byte)0x9), | |
22 | STAGE_MEMTABLE_INSTALL_FLUSH_RESULTS((byte)0xA); | |
23 | ||
24 | private final byte value; | |
25 | ||
26 | OperationStage(final byte value) { | |
27 | this.value = value; | |
28 | } | |
29 | ||
30 | /** | |
31 | * Get the internal representation value. | |
32 | * | |
33 | * @return the internal representation value. | |
34 | */ | |
35 | byte getValue() { | |
36 | return value; | |
37 | } | |
38 | ||
39 | /** | |
40 | * Get the Operation stage from the internal representation value. | |
41 | * | |
42 | * @param value the internal representation value. | |
43 | * | |
44 | * @return the operation stage | |
45 | * | |
46 | * @throws IllegalArgumentException if the value does not match | |
47 | * an OperationStage | |
48 | */ | |
49 | static OperationStage fromValue(final byte value) | |
50 | throws IllegalArgumentException { | |
51 | for (final OperationStage threadType : OperationStage.values()) { | |
52 | if (threadType.value == value) { | |
53 | return threadType; | |
54 | } | |
55 | } | |
56 | throw new IllegalArgumentException( | |
57 | "Unknown value for OperationStage: " + value); | |
58 | } | |
59 | } |