Dbt.java
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1997, 1998, 1999, 2000
  5.  * Sleepycat Software.  All rights reserved.
  6.  *
  7.  * $Id: Dbt.java,v 11.6 2000/06/16 03:34:01 dda Exp $
  8.  */
  9. package com.sleepycat.db;
  10. /**
  11.  *
  12.  * @author Donald D. Anderson
  13.  */
  14. public class Dbt
  15. {
  16.     // methods
  17.     //
  18.     protected native void finalize()
  19.          throws Throwable;
  20.     // get/set methods
  21.     //
  22.     // key/data
  23.     public void set_data(byte[] data)
  24.     {
  25.         // internal_set_data is separated from set_data in case
  26.         // we want to have set_data automatically set some other
  27.         // fields (size, etc.) someday.
  28.         //
  29.         internal_set_data(data);
  30.     }
  31.     public native byte[] get_data();
  32.     private native void internal_set_data(byte[] data);
  33.     // These are not in the original DB interface,
  34.     // but they can be used to get/set the offset
  35.     // into the attached byte array.
  36.     //
  37.     public native void set_offset(int off);
  38.     public native int get_offset();
  39.     // key/data length
  40.     public native /*u_int32_t*/ int get_size();
  41.     public native void set_size(/*u_int32_t*/ int size);
  42.     // RO: length of user buffer.
  43.     public native /*u_int32_t*/ int get_ulen();
  44.     public native void set_ulen(/*u_int32_t*/ int ulen);
  45.     // RO: get/put record length.
  46.     public native /*u_int32_t*/ int get_dlen();
  47.     public native void set_dlen(/*u_int32_t*/ int dlen);
  48.     // RO: get/put record offset.
  49.     public native /*u_int32_t*/ int get_doff();
  50.     public native void set_doff(/*u_int32_t*/ int doff);
  51.     // flags
  52.     public native /*u_int32_t*/ int get_flags();
  53.     public native void set_flags(/*u_int32_t*/ int flags);
  54.     // These are not in the original DB interface.
  55.     // They can be used to set the recno key for a Dbt.
  56.     // Note: you must set the data field to an array of
  57.     // at least four bytes before calling either of these.
  58.     //
  59.     public native void set_recno_key_data(int recno);
  60.     public native int get_recno_key_data();
  61.     public Dbt(byte[] data)
  62.     {
  63.         init();
  64.         internal_set_data(data);
  65.         if (data != null)
  66.             set_size(data.length);
  67.     }
  68.     public Dbt(byte[] data, int off, int len)
  69.     {
  70.         this(data);
  71.         set_ulen(len);
  72.         set_offset(off);
  73.     }
  74.     public Dbt()
  75.     {
  76.         init();
  77.     }
  78.     // private methods
  79.     //
  80.     private native void init();
  81.     // private data
  82.     //
  83.     private long private_dbobj_ = 0;
  84.     static {
  85.         Db.load_db();
  86.     }
  87. }
  88. // end of Dbt.java