1/*-
2 * See the file LICENSE for redistribution information.
3 *
4 * Copyright (c) 2009 Oracle.  All rights reserved.
5 *
6 */
7using System;
8using System.Collections.Generic;
9using System.Text;
10
11namespace BerkeleyDB {
12    /// <summary>
13    /// Statistical information about a RecnoDatabase
14    /// </summary>
15    public class RecnoStats {
16        private Internal.BTreeStatStruct st;
17        internal RecnoStats(Internal.BTreeStatStruct stats) {
18            st = stats;
19        }
20
21        /// <summary>
22        /// Magic number.
23        /// </summary>
24        public uint MagicNumber { get { return st.bt_magic; } }
25        /// <summary>
26        /// Version number.
27        /// </summary>
28        public uint Version { get { return st.bt_version; } }
29        /// <summary>
30        /// Metadata flags.
31        /// </summary>
32        public uint MetadataFlags { get { return st.bt_metaflags; } }
33        /// <summary>
34        /// Number of unique keys.
35        /// </summary>
36        public uint nKeys { get { return st.bt_nkeys; } }
37        /// <summary>
38        /// Number of data items.
39        /// </summary>
40        public uint nData { get { return st.bt_ndata; } }
41        /// <summary>
42        /// Page count.
43        /// </summary>
44        public uint nPages { get { return st.bt_pagecnt; } }
45        /// <summary>
46        /// Page size.
47        /// </summary>
48        public uint PageSize { get { return st.bt_pagesize; } }
49        /// <summary>
50        /// Minkey value.
51        /// </summary>
52        public uint MinKey { get { return st.bt_minkey; } }
53        /// <summary>
54        /// Fixed-length record length.
55        /// </summary>
56        public uint RecordLength { get { return st.bt_re_len; } }
57        /// <summary>
58        /// Fixed-length record pad.
59        /// </summary>
60        public uint RecordPadByte { get { return st.bt_re_pad; } }
61        /// <summary>
62        /// Tree levels.
63        /// </summary>
64        public uint Levels { get { return st.bt_levels; } }
65        /// <summary>
66        /// Internal pages.
67        /// </summary>
68        public uint InternalPages { get { return st.bt_int_pg; } }
69        /// <summary>
70        /// Leaf pages.
71        /// </summary>
72        public uint LeafPages { get { return st.bt_leaf_pg; } }
73        /// <summary>
74        /// Duplicate pages.
75        /// </summary>
76        public uint DuplicatePages { get { return st.bt_dup_pg; } }
77        /// <summary>
78        /// Overflow pages.
79        /// </summary>
80        public uint OverflowPages { get { return st.bt_over_pg; } }
81        /// <summary>
82        /// Empty pages.
83        /// </summary>
84        public uint EmptyPages { get { return st.bt_empty_pg; } }
85        /// <summary>
86        /// Pages on the free list.
87        /// </summary>
88        public uint FreePages { get { return st.bt_free; } }
89        /// <summary>
90        /// Bytes free in internal pages.
91        /// </summary>
92        public ulong InternalPagesFreeBytes { get { return st.bt_int_pgfree; } }
93        /// <summary>
94        /// Bytes free in leaf pages.
95        /// </summary>
96        public ulong LeafPagesFreeBytes { get { return st.bt_leaf_pgfree; } }
97        /// <summary>
98        /// Bytes free in duplicate pages.
99        /// </summary>
100        public ulong DuplicatePagesFreeBytes { get { return st.bt_dup_pgfree; } }
101        /// <summary>
102        /// Bytes free in overflow pages.
103        /// </summary>
104        public ulong OverflowPagesFreeBytes { get { return st.bt_over_pgfree; } }
105    }
106}
107