4 # Build the Java files.
7 * Automatically built by dist/s_java_stat.
8 * Only the javadoc comments can be edited.
10 * See the file LICENSE for redistribution information.
12 * Copyright (c) 2002-2009 Oracle. All rights reserved.
21 trap 'rm -f $s $t $t0 $c $u1 $u2; exit 0' 0 1 2 3 13 15
23 # Script to convert DB C structure declarations into Java declarations.
27 /struct __db_$1 {/,/^}/{
29 /CONFIG_TEST/,/#endif/d
34 s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/\\
35 $2 private String \1;\\
36 $2 public String get_\1() {\\
42 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
44 $2 public long get_\1() {\\
50 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
52 $2 public long get_\1() {\\
58 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
60 $2 public long get_\1() {\\
66 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
67 $2 private LogSequenceNumber \1;\\
68 $2 public LogSequenceNumber get_\1() {\\
73 /DB_TXN_ACTIVE[ ]*\*/{
74 s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/\\
75 $2 private Active[] \1;\\
76 $2 public Active[] get_\1() {\\
82 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/\\
83 $2 private byte[] \1;\\
84 $2 public byte[] get_\1() {\\
89 /u_int32_t.*startup_complete/{
90 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/\\
92 $2 public boolean get_\1() {\\
93 $2 return (\1 != 0);\\
97 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/\\
99 $2 public int get_\1() {\\
104 sed -n -f $s < ../dbinc/db.in |
105 perl -w -p -e 's/get_(st|bt|hash|qs|compact)_/get_/;' \
106 -e 'if (m/get.*\(/) {' \
107 -e 's/_n([b-df-hj-np-tv-z]|upgrade)/_num_$1/;' \
108 -e 's/_(min|max)([a-z])/_$1_$2/;' \
109 -e 's/_mvcc/_multiversion/;' \
110 -e 's/cnt/_count_/;' \
111 -e 's/_pg/_pages_/;' \
112 -e 's/(count|flag|free|page|percent|size|sync|timeout)/_$1/g;' \
113 -e 's/([^p])(id\()/$1_$2/g;' \
120 # Script to convert DB C structure declarations into a JNI method to fill the
121 # corresponding Java class
126 jni_fieldid_decls $1 $2
129 /struct __db_$1 {/,/^}/{
131 /CONFIG_TEST/,/#endif/d
136 s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/ JAVADB_STAT_STRING(jnienv, jobj, $1_\1_fid, statp, \1);/p
140 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(jnienv, jobj, $1_\1_fid, statp, \1);/p
144 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(jnienv, jobj, $1_\1_fid, statp, \1);/p
148 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LONG(jnienv, jobj, $1_\1_fid, statp, \1);/p
152 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_LSN(jnienv, jobj, $1_\1_fid, statp, \1);/p
155 /DB_TXN_ACTIVE[ ]*\*/{
156 s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/ JAVADB_STAT_ACTIVE(jnienv, jobj, $1_\1_fid, statp, \1);/p
160 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/ JAVADB_STAT_GID(jnienv, jobj, $1_\1_fid, statp, \1);/p
163 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ JAVADB_STAT_INT(jnienv, jobj, $1_\1_fid, statp, \1);/p
166 echo "static int $fill(JNIEnv *jnienv," >> $c
167 echo " jobject jobj, struct __db_$1 *statp) {" >> $c
168 sed -n -f $s < ../dbinc/db.in >> $c
169 echo ' return (0);' >> $c
176 /struct __db_$1 {/,/^}/{
178 /CONFIG_TEST/,/#endif/d
183 s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/static jfieldID $1_\1_fid;/p
187 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
191 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
195 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
199 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
202 /DB_TXN_ACTIVE[ ]*\*/{
203 s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
207 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/static jfieldID $1_\1_fid;/p
210 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/static jfieldID $1_\1_fid;/p
213 sed -n -f $s < ../dbinc/db.in >> $u1
219 /struct __db_$1 {/,/^}/{
221 /CONFIG_TEST/,/#endif/d
226 s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"Ljava\/lang\/String;\" },/p
230 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p
234 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p
238 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"J\" },/p
242 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"L\" DB_PKG \"LogSequenceNumber;\" },/p
245 /DB_TXN_ACTIVE[ ]*\*/{
246 s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"[L\" DB_PKG \"TransactionStats\$Active;\" },/p
250 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"[B\" },/p
253 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/ { \&$1_\1_fid, \&$1_class, \"\1\", \"I\" },/p
256 sed -n -f $s < ../dbinc/db.in >> $u2
259 # Script to convert DB C structure declarations into a toString method body
263 /struct __db_$1 {/,/^}/{
265 /CONFIG_TEST/,/#endif/d
270 s/^[ ]*char[* ]*[ ]*\([^[;]*\).*/$3 + "\\\\n$3 \1=" + \1/p
273 /DB_TXN_ACTIVE[ ]*\*/{
274 s/^[ ]*[^\*]*\*[ ]*\([^;]*\).*/$3 + \"\\\\n$3 \1=\" + DbUtil.objectArrayToString(\1, \"\1\")/p
278 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/$3 + \"\\\\n$3 \1=\" + DbUtil.byteArrayToString(\1)/p
281 /u_int32_t.*startup_complete/{
282 s/^[ ]*[^ ]*[ ]*\([^[;]*\).*/$3 + \"\\\\n$3 \1=\" + (\1 != 0)/p
285 s/^[ ]*[^ ]*[ ]*\([^;]*\).*/$3 + \"\\\\n$3 \1=\" + \1/p
289 echo "$3 public String toString() {"
290 echo "$3 return \"$2:\""
291 sed -n -f $s < ../dbinc/db.in
307 package com.sleepycat.db;
309 public class $j_class$extends {
310 // no public constructor
311 /* package */ $j_class() {}$extradecls
314 jclass_toString $1 $2
316 f=../java/src/com/sleepycat/db/$j_class.java
317 ./s_javadoc_merge $f $t0 > $t
318 cmp $t $f > /dev/null 2>&1 ||
319 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
327 stat_class bt_stat BtreeStats " extends DatabaseStats"
329 # Build CompactStats.java - not purely a statistics class, but close enough to
334 package com.sleepycat.db;
336 import com.sleepycat.db.internal.DbUtil;
338 public class CompactStats
340 // no public constructor
341 /* package */ CompactStats() {}
344 CompactStats(int fillpercent, int timeout, int pages) {
345 this.compact_fillpercent = fillpercent;
346 this.compact_timeout = timeout;
347 this.compact_pages = pages;
351 jclass_toString compact CompactStats
353 perl -w -p -e 's,public int get(FillPercent|Pages\(|Timeout|Truncate),/* package */ int get$1,g;'> $t0
354 f=../java/src/com/sleepycat/db/CompactStats.java
355 ./s_javadoc_merge $f $t0 > $t
356 cmp $t $f > /dev/null 2>&1 ||
357 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
358 jclass_jni compact __dbj_fill_compact
360 stat_class h_stat HashStats " extends DatabaseStats"
361 stat_class lock_stat LockStats
362 stat_class log_stat LogStats
363 stat_class mpool_fstat CacheFileStats
364 stat_class mpool_stat CacheStats
365 stat_class mutex_stat MutexStats
366 stat_class qam_stat QueueStats " extends DatabaseStats"
367 stat_class rep_stat ReplicationStats "" "
368 import com.sleepycat.db.internal.DbConstants;
370 public static final int REP_CLIENT = DbConstants.DB_REP_CLIENT;
372 public static final int REP_MASTER = DbConstants.DB_REP_MASTER;
374 public static final int REP_NONE = 0;"
376 stat_class repmgr_stat ReplicationManagerStats
377 stat_class seq_stat SequenceStats
379 # Build TransactionStats.java - special because of embedded Active class
382 echo 'package com.sleepycat.db;'
384 echo 'import com.sleepycat.db.internal.DbUtil;'
386 echo 'public class TransactionStats'
388 echo " // no public constructor"
389 echo " /* package */ TransactionStats() {}"
391 echo " public static class Active {"
392 echo " // no public constructor"
393 echo " /* package */ Active() {}"
394 jclass txn_active " "
395 jclass_toString txn_active Active " "
398 jclass_toString txn_stat TransactionStats
400 f=../java/src/com/sleepycat/db/TransactionStats.java
401 ./s_javadoc_merge $f $t0 > $t
402 cmp $t $f > /dev/null 2>&1 ||
403 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
404 jclass_jni txn_stat __dbj_fill_txn_stat
405 jclass_jni txn_active __dbj_fill_txn_active
408 f=../libdb_java/java_stat_auto.c
409 cmp $t $f > /dev/null 2>&1 ||
410 (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)
412 f=../libdb_java/java_util.i
413 sed '/BEGIN-STAT-FIELD-DECLS/q' < $f > $t
415 sed -n '/END-STAT-FIELD-DECLS/,/BEGIN-STAT-FIELDS/p' < $f >> $t
417 sed -n '/END-STAT-FIELDS/,$p' < $f >> $t
418 cmp $t $f > /dev/null 2>&1 ||
419 (echo "Building $f" && rm -f $f && cp $t $f && chmod 644 $f)