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 HashDatabase
14    /// </summary>
15    public class HashStats {
16        private Internal.HashStatStruct st;
17        internal HashStats(Internal.HashStatStruct stats) {
18            st = stats;
19        }
20
21        /// <summary>
22        /// Number of big key/data pages.
23        /// </summary>
24        public uint BigPages { get { return st.hash_bigpages; } }
25        /// <summary>
26        /// Bytes free on big item pages.
27        /// </summary>
28        public ulong BigPagesFreeBytes { get { return st.hash_big_bfree; } }
29        /// <summary>
30        /// Bytes free on bucket pages.
31        /// </summary>
32        public ulong BucketPagesFreeBytes { get { return st.hash_bfree; } }
33        /// <summary>
34        /// Number of dup pages.
35        /// </summary>
36        public uint DuplicatePages { get { return st.hash_dup; } }
37        /// <summary>
38        /// Bytes free on duplicate pages.
39        /// </summary>
40        public ulong DuplicatePagesFreeBytes { get { return st.hash_dup_free; } }
41        /// <summary>
42        /// Fill factor specified at create.
43        /// </summary>
44        public uint FillFactor { get { return st.hash_ffactor; } }
45        /// <summary>
46        /// Pages on the free list.
47        /// </summary>
48        public uint FreePages { get { return st.hash_free; } }
49        /// <summary>
50        /// Metadata flags.
51        /// </summary>
52        public uint MetadataFlags { get { return st.hash_metaflags; } }
53        /// <summary>
54        /// Magic number.
55        /// </summary>
56        public uint MagicNumber { get { return st.hash_magic; } }
57        /// <summary>
58        /// Number of data items.
59        /// </summary>
60        public uint nData { get { return st.hash_ndata; } }
61        /// <summary>
62        /// Number of hash buckets.
63        /// </summary>
64        public uint nHashBuckets { get { return st.hash_buckets; } }
65        /// <summary>
66        /// Number of unique keys.
67        /// </summary>
68        public uint nKeys { get { return st.hash_nkeys; } }
69        /// <summary>
70        /// Number of overflow pages.
71        /// </summary>
72        public uint OverflowPages { get { return st.hash_overflows; } }
73        /// <summary>
74        /// Bytes free on ovfl pages.
75        /// </summary>
76        public ulong OverflowPagesFreeBytes { get { return st.hash_ovfl_free; } }
77        /// <summary>
78        /// Page count.
79        /// </summary>
80        public uint nPages { get { return st.hash_pagecnt; } }
81        /// <summary>
82        /// Page size.
83        /// </summary>
84        public uint PageSize { get { return st.hash_pagesize; } }
85        /// <summary>
86        /// Version number.
87        /// </summary>
88        public uint Version { get { return st.hash_version; } }
89
90    }
91}