4 # Build the CSharp stat structures
7 * Automatically built by dist/s_java_csharp.
9 * See the file LICENSE for redistribution information.
11 * Copyright (c) 2002-2009 Oracle. All rights reserved.
14 f=../csharp/Internal/StatStructs.cs
16 #trap 'rm -f $t; exit 0' 0 1 2 3 13 15
18 # Script to convert DB C structure declarations in CSharp declarations
19 # Pull out the structure we're concerned with, strip out ifdefs and defines
20 # and finally convert from C to C# types
23 sed -n "/struct $1 {/,/^}/p" < ../dbinc/db.in |
26 -e "/CONFIG_TEST/,/#endif/d" \
28 -e 's:\tchar \*:\tinternal string :' \
29 -e 's:\tdb_pgno_t:\tinternal uint:' \
30 -e 's:\tdb_seq_t:\tinternal long:' \
31 -e 's:\tdb_threadid_t:\tinternal uint:' \
32 -e 's:\tdb_timeout_t:\tinternal uint:' \
33 -e 's:\tDB_LSN:\tinternal DB_LSN_STRUCT:' \
34 -e 's:\tDB_TXN_ACTIVE \*:\tinternal IntPtr :' \
35 -e 's:\tint\s:\tinternal int :' \
36 -e 's:\tint32_t:\tinternal int:' \
37 -e 's:\tpid_t:\tinternal int:' \
38 -e 's:\troff_t:\tinternal IntPtr:' \
39 -e 's:\tsize_t:\tinternal IntPtr:' \
40 -e 's:\ttime_t:\tinternal long:' \
41 -e 's:\tu_int32_t:\tinternal uint:' \
42 -e 's:\tuintmax_t:\tinternal ulong:' \
60 [StructLayout(LayoutKind.Sequential)]
61 internal struct $cs_struct {
70 (echo "internal enum DB_TXN_ACTIVE_STATUS {"
71 sed -n "/struct __db_txn_active {/,/^}/p" < ../dbinc/db.in |
72 sed -n "/^#define/p" | awk '{print " " $2 " = " $3 ","}'
77 [StructLayout(LayoutKind.Sequential)]
78 internal struct DB_TXN_ACTIVE {
81 sed -n "/struct __db_txn_active {/,/^}/p" < ../dbinc/db.in |
82 sed -e "/__db_txn_active/d" \
84 -e "/CONFIG_TEST/,/#endif/d" \
88 -e 's:\tchar \*:\tinternal string :' \
89 -e 's:\tdb_pgno_t:\tinternal uint:' \
90 -e 's:\tdb_seq_t:\tinternal long:' \
91 -e 's:\tdb_threadid_t:\tinternal uint:' \
92 -e 's:\tdb_timeout_t:\tinternal uint:' \
93 -e 's:\tDB_LSN:\tinternal DB_LSN_STRUCT:' \
94 -e 's:\tDB_TXN_ACTIVE \*:\tinternal IntPtr:' \
95 -e 's:\tint\s:\tinternal int :' \
96 -e 's:\tint32_t:\tinternal int:' \
97 -e 's:\tpid_t:\tinternal int:' \
98 -e 's:\troff_t:\tinternal IntPtr:' \
99 -e 's:\tsize_t:\tinternal IntPtr:' \
100 -e 's:\ttime_t:\tinternal long:' \
101 -e 's:\tu_int32_t status:\tinternal DB_TXN_ACTIVE_STATUS status:' \
102 -e 's:\tu_int32_t:\tinternal uint:' \
103 -e 's:\tuintmax_t:\tinternal ulong:' \
113 using System.Runtime.InteropServices;
115 namespace BerkeleyDB.Internal {
118 stat_class bt_stat BTreeStatStruct
119 stat_class h_stat HashStatStruct
120 stat_class lock_stat LockStatStruct
121 stat_class log_stat LogStatStruct
122 stat_class mpool_fstat MPoolFileStatStruct
123 stat_class mpool_stat MPoolStatStruct
126 internal struct MempStatStruct {
127 internal MPoolStatStruct st;
128 internal MPoolFileStatStruct[] files;
133 stat_class mutex_stat MutexStatStruct
134 stat_class qam_stat QueueStatStruct
135 stat_class bt_stat RecnoStatStruct
136 stat_class repmgr_stat RepMgrStatStruct
137 stat_class rep_stat ReplicationStatStruct
138 stat_class seq_stat SequenceStatStruct
139 stat_class txn_stat TransactionStatStruct
142 internal struct DB_LSN_STRUCT {
144 internal uint offset;
152 internal struct TxnStatStruct {
153 internal TransactionStatStruct st;
154 internal DB_TXN_ACTIVE[] st_txnarray;
155 internal byte[][] st_txngids;
156 internal string[] st_txnnames;
162 cmp $f $t > /dev/null 2>&1 ||
163 (echo "Building $f" && rm -f $f && cp $t $f && chmod 644 $f)