📄 s_java_stat
字号:
#!/bin/sh -# $Id: s_java_stat,v 1.33 2004/09/28 19:30:36 mjc Exp $## Build the Java files.msgjava="/*- * DO NOT EDIT: automatically built by dist/s_java_stat. * * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2004 * Sleepycat Software. All rights reserved. */"s=/tmp/__java.sedt=/tmp/__javac=/tmp/__javajnicu1=/tmp/__javautil1u2=/tmp/__javautil2trap 'rm -f $t $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 /;/!d /^}/d /char[ ]*\*/{ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/\\$2 private String \1;\\$2 public String 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 } /db_seq_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[ ]*xid\[/{ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/\\$2 private byte[] \1;\\$2 public byte[] get_\1() {\\$2 return \1;\\$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)_/get_/;' \ -e 'if (m/get.*\(/) {' \ -e 's/_n([b-df-hj-np-tv-z])/_num_$1/;' \ -e 's/_(min|max)([a-z])/_$1_$2/;' \ -e 's/pg(.)/_pages_$1/;' \ -e 's/(count|flag|free|id\(|page|size|timeout)/_$1/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 classjclass_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 /;/!d /^}/d /char[ ]*\*/{ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/ JAVADB_STAT_STRING(jnienv, jobj, $1_\1_fid, statp, \1);/p d } /time_t/{ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(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 } /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[ ]*xid\[/{ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/ JAVADB_STAT_XID(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 /;/!d /^}/d /char[ ]*\*/{ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p d } /time_t/{ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p d } /db_seq_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[ ]*xid\[/{ 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 /;/!d /^}/d /char[ ]*\*/{ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"Ljava\/lang\/String;\" },/p d } /time_t/{ s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p d } /db_seq_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[ ]*xid\[/{ 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 bodyjclass_toString(){ cat > $s <<EOF/struct __db_$1 {/,/^}/{ /__db_$1/d /;/!d /^}/d /char[ ]*\*/{ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/$3 + "\\\\n$3 \1=" + \1/p d } /DB_TXN_ACTIVE[ ]*\*/{ s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/$3 + \"\\\\n$3 \1=\" + DbUtil.objectArrayToString(\1, \"\1\")/p d } /u_int8_t[ ]*xid\[/{ s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/$3 + \"\\\\n$3 \1=\" + DbUtil.byteArrayToString(\1)/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 (echo "$msgjava" echo echo 'package com.sleepycat.db;' echo echo "public class $j_class$extends {" echo " // no public constructor" echo " protected $j_class() {}" jclass $1 jclass_toString $1 $2 echo '}') > $t jclass_jni $1 $2 f=../java/src/com/sleepycat/db/$j_class.java cmp $t $f > /dev/null 2>&1 || (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)}echo "$msgjava" > $c> $u1> $u2stat_class bt_stat BtreeStats " extends DatabaseStats"stat_class h_stat HashStats " extends DatabaseStats"stat_class lock_stat LockStatsstat_class log_stat LogStatsstat_class mpool_fstat CacheFileStatsstat_class mpool_stat CacheStatsstat_class qam_stat QueueStats " extends DatabaseStats"stat_class rep_stat ReplicationStatsstat_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 " protected TransactionStats() {}" echo echo -n " public static class Active {" echo " // no public constructor" echo " protected Active() {}" jclass txn_active " " jclass_toString txn_active Active " " echo ' };' jclass txn_stat jclass_toString txn_stat TransactionStats echo '}' echo '// end of TransactionStats.java') > $tjclass_jni txn_stat __dbj_fill_txn_statjclass_jni txn_active __dbj_fill_txn_activef=../java/src/com/sleepycat/db/TransactionStats.javacmp $t $f > /dev/null 2>&1 || (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)mv $c $tf=../libdb_java/java_stat_auto.ccmp $t $f > /dev/null 2>&1 || (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)f=../libdb_java/java_util.ised '/BEGIN-STAT-FIELD-DECLS/q' < $f > $tcat $u1 >> $tsed -n '/END-STAT-FIELD-DECLS/,/BEGIN-STAT-FIELDS/p' < $f >> $tcat $u2 >> $tsed -n '/END-STAT-FIELDS/,$p' < $f >> $tcmp $t $f > /dev/null 2>&1 || (echo "Building $f" && rm -f $f && cp $t $f && chmod 644 $f)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -