⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiplekeyniodataentry.java

📁 嵌入式数据库Berkeley DB-4.5.20源代码
💻 JAVA
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2006 *      Oracle Corporation.  All rights reserved. * * $Id: MultipleKeyNIODataEntry.java,v 1.3 2006/09/08 20:32:14 bostic Exp $ */package com.sleepycat.db;import com.sleepycat.db.internal.DbConstants;import com.sleepycat.db.internal.DbUtil;import java.nio.ByteBuffer;public class MultipleKeyNIODataEntry extends MultipleEntry {    public MultipleKeyNIODataEntry() {        super(null);    }    public MultipleKeyNIODataEntry(final ByteBuffer data) {        super(data);    }    /**     * Return the bulk retrieval flag and reset the entry position so that the     * next set of key/data can be returned.     */    /* package */    int getMultiFlag() {        pos = 0;        return DbConstants.DB_MULTIPLE_KEY;    }    public boolean next(final DatabaseEntry key, final DatabaseEntry data) {        byte[] intarr;        int saveoffset;        if (pos == 0)            pos = ulen - INT32SZ;        // pull the offsets out of the ByteBuffer.        if(this.data_nio.capacity() < 16)            return false;        intarr = new byte[16];        saveoffset = this.data_nio.position();        this.data_nio.position(pos - INT32SZ*3);        this.data_nio.get(intarr, 0, 16);        this.data_nio.position(saveoffset);        final int keyoff = DbUtil.array2int(intarr, 12);        // crack out the key and data offsets and lengths.        if (keyoff < 0)            return false;        final int keysz = DbUtil.array2int(intarr, 8);        final int dataoff = DbUtil.array2int(intarr, 4);        final int datasz = DbUtil.array2int(intarr, 0);        // move the position to one before the last offset read.        pos -= INT32SZ*4;        key.setDataNIO(this.data_nio);        key.setOffset(keyoff);        key.setSize(keysz);        data.setDataNIO(this.data_nio);        data.setOffset(dataoff);        data.setSize(datasz);        return true;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -