]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyMetaData.java
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / rocksdb / java / src / main / java / org / rocksdb / ColumnFamilyMetaData.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 import java.util.Arrays;
9 import java.util.List;
10
11 /**
12 * The metadata that describes a column family.
13 */
14 public class ColumnFamilyMetaData {
15 private final long size;
16 private final long fileCount;
17 private final byte[] name;
18 private final LevelMetaData[] levels;
19
20 /**
21 * Called from JNI C++
22 */
23 private ColumnFamilyMetaData(
24 final long size,
25 final long fileCount,
26 final byte[] name,
27 final LevelMetaData[] levels) {
28 this.size = size;
29 this.fileCount = fileCount;
30 this.name = name;
31 this.levels = levels;
32 }
33
34 /**
35 * The size of this column family in bytes, which is equal to the sum of
36 * the file size of its {@link #levels()}.
37 *
38 * @return the size of this column family
39 */
40 public long size() {
41 return size;
42 }
43
44 /**
45 * The number of files in this column family.
46 *
47 * @return the number of files
48 */
49 public long fileCount() {
50 return fileCount;
51 }
52
53 /**
54 * The name of the column family.
55 *
56 * @return the name
57 */
58 public byte[] name() {
59 return name;
60 }
61
62 /**
63 * The metadata of all levels in this column family.
64 *
65 * @return the levels metadata
66 */
67 public List<LevelMetaData> levels() {
68 return Arrays.asList(levels);
69 }
70 }