summaryrefslogtreecommitdiff
path: root/db-4.8.30/dist/s_java_stat
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2016-12-17 21:28:53 -0800
committerJesse Morgan <jesse@jesterpm.net>2016-12-17 21:28:53 -0800
commit54df2afaa61c6a03cbb4a33c9b90fa572b6d07b8 (patch)
tree18147b92b969d25ffbe61935fb63035cac820dd0 /db-4.8.30/dist/s_java_stat
Berkeley DB 4.8 with rust build script for linux.
Diffstat (limited to 'db-4.8.30/dist/s_java_stat')
-rwxr-xr-xdb-4.8.30/dist/s_java_stat419
1 files changed, 419 insertions, 0 deletions
diff --git a/db-4.8.30/dist/s_java_stat b/db-4.8.30/dist/s_java_stat
new file mode 100755
index 0000000..58ab79d
--- /dev/null
+++ b/db-4.8.30/dist/s_java_stat
@@ -0,0 +1,419 @@
+#!/bin/sh -
+# $Id$
+#
+# Build the Java files.
+
+msgjava="/*-
+ * Automatically built by dist/s_java_stat.
+ * Only the javadoc comments can be edited.
+ *
+ * See the file LICENSE for redistribution information.
+ *
+ * Copyright (c) 2002-2009 Oracle. All rights reserved.
+ */"
+
+s=/tmp/__java.sed
+t=/tmp/__java
+t0=/tmp/__java0
+c=/tmp/__javajnic
+u1=/tmp/__javautil1
+u2=/tmp/__javautil2
+trap 'rm -f $s $t $t0 $c $u1 $u2; exit 0' 0 1 2 3 13 15
+
+# Script to convert DB C structure declarations into Java declarations.
+jclass()
+{
+ cat > $s <<EOF
+/struct __db_$1 {/,/^}/{
+ /__db_$1/d
+ /CONFIG_TEST/,/#endif/d
+ /;/!d
+ /^}/d
+ /db_threadid_t/d
+ /char[ ]*/{
+ s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/\\
+$2 private String \1;\\
+$2 public String get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /db_seq_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
+$2 private long \1;\\
+$2 public long get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /time_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
+$2 private long \1;\\
+$2 public long get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /uintmax_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
+$2 private long \1;\\
+$2 public long get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /DB_LSN[ ]*/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
+$2 private LogSequenceNumber \1;\\
+$2 public LogSequenceNumber get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /DB_TXN_ACTIVE[ ]*\*/{
+ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/\\
+$2 private Active[] \1;\\
+$2 public Active[] get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /u_int8_t[ ]*gid\[/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/\\
+$2 private byte[] \1;\\
+$2 public byte[] get_\1() {\\
+$2 return \1;\\
+$2 }/p
+ d
+ }
+ /u_int32_t.*startup_complete/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/\\
+$2 private int \1;\\
+$2 public boolean get_\1() {\\
+$2 return (\1 != 0);\\
+$2 }/p
+ d
+ }
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
+$2 private int \1;\\
+$2 public int get_\1() {\\
+$2 return \1;\\
+$2 }/p
+}
+EOF
+ sed -n -f $s < ../dbinc/db.in |
+ perl -w -p -e 's/get_(st|bt|hash|qs|compact)_/get_/;' \
+ -e 'if (m/get.*\(/) {' \
+ -e 's/_n([b-df-hj-np-tv-z]|upgrade)/_num_$1/;' \
+ -e 's/_(min|max)([a-z])/_$1_$2/;' \
+ -e 's/_mvcc/_multiversion/;' \
+ -e 's/cnt/_count_/;' \
+ -e 's/_pg/_pages_/;' \
+ -e 's/(count|flag|free|page|percent|size|sync|timeout)/_$1/g;' \
+ -e 's/([^p])(id\()/$1_$2/g;' \
+ -e 's/__*/_/g;' \
+ -e 's/_(.)/\U$1/g' \
+ -e '};' \
+ -e '1'
+}
+
+# Script to convert DB C structure declarations into a JNI method to fill the
+# corresponding Java class
+jclass_jni()
+{
+ fill=__dbj_fill_$1
+ j_class=$2
+ jni_fieldid_decls $1 $2
+ jni_fieldids $1 $2
+ cat > $s <<EOF
+/struct __db_$1 {/,/^}/{
+ /__db_$1/d
+ /CONFIG_TEST/,/#endif/d
+ /;/!d
+ /^}/d
+ /db_threadid_t/d
+ /char[ ]*/{
+ s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/ JAVADB_STAT_STRING(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ /db_seq_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ /time_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ /uintmax_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ /DB_LSN[ ]*/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LSN(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ /DB_TXN_ACTIVE[ ]*\*/{
+ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/ JAVADB_STAT_ACTIVE(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ /u_int8_t[ ]*gid\[/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/ JAVADB_STAT_GID(jnienv, jobj, $1_\1_fid, statp, \1);/p
+ d
+ }
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_INT(jnienv, jobj, $1_\1_fid, statp, \1);/p
+}
+EOF
+ echo "static int $fill(JNIEnv *jnienv," >> $c
+ echo " jobject jobj, struct __db_$1 *statp) {" >> $c
+ sed -n -f $s < ../dbinc/db.in >> $c
+ echo ' return (0);' >> $c
+ echo '}' >> $c
+}
+
+jni_fieldid_decls()
+{
+ cat > $s <<EOF
+/struct __db_$1 {/,/^}/{
+ /__db_$1/d
+ /CONFIG_TEST/,/#endif/d
+ /;/!d
+ /^}/d
+ /db_threadid_t/d
+ /char[ ]*/{
+ s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ /db_seq_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ /time_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ /uintmax_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ /DB_LSN[ ]*/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ /DB_TXN_ACTIVE[ ]*\*/{
+ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ /u_int8_t[ ]*gid\[/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/static jfieldID $1_\1_fid;/p
+ d
+ }
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
+}
+EOF
+ sed -n -f $s < ../dbinc/db.in >> $u1
+}
+
+jni_fieldids()
+{
+ cat > $s <<EOF
+/struct __db_$1 {/,/^}/{
+ /__db_$1/d
+ /CONFIG_TEST/,/#endif/d
+ /;/!d
+ /^}/d
+ /db_threadid_t/d
+ /char[ ]*/{
+ s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"Ljava\/lang\/String;\" },/p
+ d
+ }
+ /db_seq_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p
+ d
+ }
+ /time_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p
+ d
+ }
+ /uintmax_t/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p
+ d
+ }
+ /DB_LSN[ ]*/{
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"L\" DB_PKG \"LogSequenceNumber;\" },/p
+ d
+ }
+ /DB_TXN_ACTIVE[ ]*\*/{
+ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"[L\" DB_PKG \"TransactionStats\$Active;\" },/p
+ d
+ }
+ /u_int8_t[ ]*gid\[/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"[B\" },/p
+ d
+ }
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"I\" },/p
+}
+EOF
+ sed -n -f $s < ../dbinc/db.in >> $u2
+}
+
+# Script to convert DB C structure declarations into a toString method body
+jclass_toString()
+{
+ cat > $s <<EOF
+/struct __db_$1 {/,/^}/{
+ /__db_$1/d
+ /CONFIG_TEST/,/#endif/d
+ /;/!d
+ /^}/d
+ /db_threadid_t/d
+ /char[ ]*/{
+ s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/$3 + "\\\\n$3 \1=" + \1/p
+ d
+ }
+ /DB_TXN_ACTIVE[ ]*\*/{
+ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/$3 + \"\\\\n$3 \1=\" + DbUtil.objectArrayToString(\1, \"\1\")/p
+ d
+ }
+ /u_int8_t[ ]*gid\[/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/$3 + \"\\\\n$3 \1=\" + DbUtil.byteArrayToString(\1)/p
+ d
+ }
+ /u_int32_t.*startup_complete/{
+ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/$3 + \"\\\\n$3 \1=\" + (\1 != 0)/p
+ d
+ }
+ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/$3 + \"\\\\n$3 \1=\" + \1/p
+}
+EOF
+ echo
+ echo "$3 public String toString() {"
+ echo "$3 return \"$2:\""
+ sed -n -f $s < ../dbinc/db.in
+ echo "$3 ;"
+ echo "$3 }"
+}
+
+stat_class()
+{
+ c_struct=__db_$1
+ j_class=$2
+ extends=$3
+ imports=$4
+ extradecls=$5
+
+ (cat <<EOF
+$msgjava
+
+package com.sleepycat.db;
+$imports
+public class $j_class$extends {
+ // no public constructor
+ /* package */ $j_class() {}$extradecls
+EOF
+ jclass $1
+ jclass_toString $1 $2
+ echo '}') > $t0
+ f=../java/src/com/sleepycat/db/$j_class.java
+ ./s_javadoc_merge $f $t0 > $t
+ cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+ jclass_jni $1 $2
+}
+
+echo "$msgjava" > $c
+> $u1
+> $u2
+
+stat_class bt_stat BtreeStats " extends DatabaseStats"
+
+# Build CompactStats.java - not purely a statistics class, but close enough to
+# share this code.
+(cat <<EOF
+$msgjava
+
+package com.sleepycat.db;
+
+import com.sleepycat.db.internal.DbUtil;
+
+public class CompactStats
+{
+ // no public constructor
+ /* package */ CompactStats() {}
+
+ /* package */
+ CompactStats(int fillpercent, int timeout, int pages) {
+ this.compact_fillpercent = fillpercent;
+ this.compact_timeout = timeout;
+ this.compact_pages = pages;
+ }
+EOF
+ jclass compact
+ jclass_toString compact CompactStats
+ echo '}') |
+ perl -w -p -e 's,public int get(FillPercent|Pages\(|Timeout|Truncate),/* package */ int get$1,g;'> $t0
+f=../java/src/com/sleepycat/db/CompactStats.java
+./s_javadoc_merge $f $t0 > $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+jclass_jni compact __dbj_fill_compact
+
+stat_class h_stat HashStats " extends DatabaseStats"
+stat_class lock_stat LockStats
+stat_class log_stat LogStats
+stat_class mpool_fstat CacheFileStats
+stat_class mpool_stat CacheStats
+stat_class mutex_stat MutexStats
+stat_class qam_stat QueueStats " extends DatabaseStats"
+stat_class rep_stat ReplicationStats "" "
+import com.sleepycat.db.internal.DbConstants;
+" "
+ public static final int REP_CLIENT = DbConstants.DB_REP_CLIENT;
+
+ public static final int REP_MASTER = DbConstants.DB_REP_MASTER;
+
+ public static final int REP_NONE = 0;"
+
+stat_class repmgr_stat ReplicationManagerStats
+stat_class seq_stat SequenceStats
+
+# Build TransactionStats.java - special because of embedded Active class
+(echo "$msgjava"
+ echo
+ echo 'package com.sleepycat.db;'
+ echo
+ echo 'import com.sleepycat.db.internal.DbUtil;'
+ echo
+ echo 'public class TransactionStats'
+ echo '{'
+ echo " // no public constructor"
+ echo " /* package */ TransactionStats() {}"
+ echo
+ echo " public static class Active {"
+ echo " // no public constructor"
+ echo " /* package */ Active() {}"
+ jclass txn_active " "
+ jclass_toString txn_active Active " "
+ echo ' };'
+ jclass txn_stat
+ jclass_toString txn_stat TransactionStats
+ echo '}') > $t0
+f=../java/src/com/sleepycat/db/TransactionStats.java
+./s_javadoc_merge $f $t0 > $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+jclass_jni txn_stat __dbj_fill_txn_stat
+jclass_jni txn_active __dbj_fill_txn_active
+
+mv $c $t
+f=../libdb_java/java_stat_auto.c
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
+
+f=../libdb_java/java_util.i
+sed '/BEGIN-STAT-FIELD-DECLS/q' < $f > $t
+cat $u1 >> $t
+sed -n '/END-STAT-FIELD-DECLS/,/BEGIN-STAT-FIELDS/p' < $f >> $t
+cat $u2 >> $t
+sed -n '/END-STAT-FIELDS/,$p' < $f >> $t
+cmp $t $f > /dev/null 2>&1 ||
+ (echo "Building $f" && rm -f $f && cp $t $f && chmod 644 $f)