当前位置: 首页>>代码示例>>Java>>正文


Java DataUtils类代码示例

本文整理汇总了Java中org.h2.mvstore.DataUtils的典型用法代码示例。如果您正苦于以下问题:Java DataUtils类的具体用法?Java DataUtils怎么用?Java DataUtils使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DataUtils类属于org.h2.mvstore包,在下文中一共展示了DataUtils类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readChunkHeader

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Read the header from the byte buffer.
 *
 * @param buff the source buffer
 * @param start the start of the chunk in the file
 * @return the chunk
 */
private static Chunk readChunkHeader(ByteBuffer buff, long start) {
    int pos = buff.position();
    byte[] data = new byte[Math.min(buff.remaining(), MAX_HEADER_LENGTH)];
    buff.get(data);
    try {
        for (int i = 0; i < data.length; i++) {
            if (data[i] == '\n') {
                // set the position to the start of the first page
                buff.position(pos + i + 1);
                String s = new String(data, 0, i, DataUtils.LATIN).trim();
                return fromString(s);
            }
        }
    } catch (Exception e) {
        // there could be various reasons
        throw DataUtils.newIllegalStateException(
                DataUtils.ERROR_FILE_CORRUPT,
                "File corrupt reading chunk at position {0}", start, e);
    }
    throw DataUtils.newIllegalStateException(
            DataUtils.ERROR_FILE_CORRUPT,
            "File corrupt reading chunk at position {0}", start);
}
 
开发者ID:dizitart,项目名称:nitrite-database,代码行数:31,代码来源:Recovery.java

示例2: set

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Update the value for the given key. The key must exist.
 *
 * @param p the page
 * @param writeVersion the write version
 * @param key the key
 * @param value the new value
 * @return the old value (never null)
 */
private Object set(Page p, long writeVersion, Object key, Object value) {
    if (p.isLeaf()) {
        for (int i = 0; i < p.getKeyCount(); i++) {
            if (keyType.equals(p.getKey(i), key)) {
                return p.setValue(i, value);
            }
        }
    } else {
        for (int i = 0; i < p.getKeyCount(); i++) {
            if (contains(p, i, key)) {
                Page c = p.getChildPage(i);
                if (get(c, key) != null) {
                    c = c.copy(writeVersion);
                    Object result = set(c, writeVersion, key, value);
                    p.setChild(i, c);
                    return result;
                }
            }
        }
    }
    throw DataUtils.newIllegalStateException(DataUtils.ERROR_INTERNAL,
            "Not found: {0}", key);
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:33,代码来源:MVRTreeMap.java

示例3: read

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
@Override
public Object read(ByteBuffer buff) {
    int flags = DataUtils.readVarInt(buff);
    if (flags == -1) {
        return null;
    }
    float[] minMax = new float[dimensions * 2];
    for (int i = 0; i < dimensions; i++) {
        float min = buff.getFloat();
        float max;
        if ((flags & (1 << i)) != 0) {
            max = min;
        } else {
            max = buff.getFloat();
        }
        minMax[i + i] = min;
        minMax[i + i + 1] = max;
    }
    long id = DataUtils.readVarLong(buff);
    return new SpatialKey(id, minMax);
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:22,代码来源:SpatialDataType.java

示例4: findFirstOrLast

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
@Override
public Cursor findFirstOrLast(Session session, boolean first) {
    TransactionMap<Value, Value> map = getMap(session);
    ValueLong v = (ValueLong) (first ? map.firstKey() : map.lastKey());
    if (v == null) {
        return new MVStoreCursor(Collections
                .<Entry<Value, Value>> emptyList().iterator(), null);
    }
    Value value = map.get(v);
    Entry<Value, Value> e = new DataUtils.MapEntry<Value, Value>(v, value);
    @SuppressWarnings("unchecked")
    List<Entry<Value, Value>> list = Arrays.asList(e);
    MVStoreCursor c = new MVStoreCursor(list.iterator(), v);
    c.next();
    return c;
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:17,代码来源:MVPrimaryIndex.java

示例5: TransactionStore

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Create a new transaction store.
 *
 * @param store the store
 * @param dataType the data type for map keys and values
 */
public TransactionStore(MVStore store, DataType dataType) {
    this.store = store;
    this.dataType = dataType;
    preparedTransactions = store.openMap("openTransactions",
            new MVMap.Builder<Integer, Object[]>());
    VersionedValueType oldValueType = new VersionedValueType(dataType);
    ArrayType undoLogValueType = new ArrayType(new DataType[]{
            new ObjectDataType(), dataType, oldValueType
    });
    MVMap.Builder<Long, Object[]> builder =
            new MVMap.Builder<Long, Object[]>().
            valueType(undoLogValueType);
    undoLog = store.openMap("undoLog", builder);
    if (undoLog.getValueType() != undoLogValueType) {
        throw DataUtils.newIllegalStateException(
                DataUtils.ERROR_TRANSACTION_CORRUPT,
                "Undo map open with a different value type");
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:26,代码来源:TransactionStore.java

示例6: begin

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Begin a new transaction.
 *
 * @return the transaction
 */
public synchronized Transaction begin() {

    int transactionId;
    int status;
    if (!init) {
        throw DataUtils.newIllegalStateException(
                DataUtils.ERROR_TRANSACTION_ILLEGAL_STATE,
                "Not initialized");
    }
    transactionId = openTransactions.nextClearBit(1);
    if (transactionId > maxTransactionId) {
        throw DataUtils.newIllegalStateException(
                DataUtils.ERROR_TOO_MANY_OPEN_TRANSACTIONS,
                "There are {0} open transactions",
                transactionId - 1);
    }
    openTransactions.set(transactionId);
    status = Transaction.STATUS_OPEN;
    return new Transaction(this, transactionId, status, null, 0);
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:26,代码来源:TransactionStore.java

示例7: CacheLongKeyLIRS

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Create a new cache with the given memory size.
 *
 * @param maxMemory the maximum memory to use (1 or larger)
 * @param segmentCount the number of cache segments (must be a power of 2)
 * @param stackMoveDistance how many other item are to be moved to the top
 *        of the stack before the current item is moved
 */
@SuppressWarnings("unchecked")
public CacheLongKeyLIRS(long maxMemory,
        int segmentCount, int stackMoveDistance) {
    setMaxMemory(maxMemory);
    DataUtils.checkArgument(
            Integer.bitCount(segmentCount) == 1,
            "The segment count must be a power of 2, is {0}", segmentCount);
    this.segmentCount = segmentCount;
    this.segmentMask = segmentCount - 1;
    this.stackMoveDistance = stackMoveDistance;
    segments = new Segment[segmentCount];
    clear();
    // use the high bits for the segment
    this.segmentShift = 32 - Integer.bitCount(segmentMask);
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:24,代码来源:CacheLongKeyLIRS.java

示例8: write

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
@Override
public void write(WriteBuffer buff, Object obj) {
    if (!(obj instanceof Integer)) {
        super.write(buff, obj);
        return;
    }
    int x = (Integer) obj;
    if (x < 0) {
        // -Integer.MIN_VALUE is smaller than 0
        if (-x < 0 || -x > DataUtils.COMPRESSED_VAR_INT_MAX) {
            buff.put((byte) TAG_INTEGER_FIXED).putInt(x);
        } else {
            buff.put((byte) TAG_INTEGER_NEGATIVE).putVarInt(-x);
        }
    } else if (x <= 15) {
        buff.put((byte) (TAG_INTEGER_0_15 + x));
    } else if (x <= DataUtils.COMPRESSED_VAR_INT_MAX) {
        buff.put((byte) TYPE_INT).putVarInt(x);
    } else {
        buff.put((byte) TAG_INTEGER_FIXED).putInt(x);
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:23,代码来源:ObjectDataType.java

示例9: convertToFileIfRequired

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Store the lob data to a file if the size of the buffer is larger than the
 * maximum size for an in-place lob.
 *
 * @param h the data handler
 */
public void convertToFileIfRequired(DataHandler h) {
    try {
        if (small != null && small.length > h.getMaxLengthInplaceLob()) {
            boolean compress = h.getLobCompressionAlgorithm(type) != null;
            int len = getBufferSize(h, compress, Long.MAX_VALUE);
            int tabId = tableId;
            if (type == Value.BLOB) {
                createFromStream(
                        DataUtils.newBytes(len), 0, getInputStream(), Long.MAX_VALUE, h);
            } else {
                createFromReader(
                        new char[len], 0, getReader(), Long.MAX_VALUE, h);
            }
            Value v2 = link(h, tabId);
            if (SysProperties.CHECK && v2 != this) {
                DbException.throwInternalError();
            }
        }
    } catch (IOException e) {
        throw DbException.convertIOException(e, null);
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:29,代码来源:ValueLob.java

示例10: init

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
private void init() throws IOException {
    if (xts != null) {
        return;
    }
    this.size = base.size() - HEADER_LENGTH;
    boolean newFile = size < 0;
    byte[] salt;
    if (newFile) {
        byte[] header = Arrays.copyOf(HEADER, BLOCK_SIZE);
        salt = MathUtils.secureRandomBytes(SALT_LENGTH);
        System.arraycopy(salt, 0, header, SALT_POS, salt.length);
        DataUtils.writeFully(base, 0, ByteBuffer.wrap(header));
        size = 0;
    } else {
        salt = new byte[SALT_LENGTH];
        DataUtils.readFully(base, SALT_POS, ByteBuffer.wrap(salt));
        if ((size & BLOCK_SIZE_MASK) != 0) {
            size -= BLOCK_SIZE;
        }
    }
    AES cipher = new AES();
    cipher.setKey(SHA256.getPBKDF2(
            encryptionKey, salt, HASH_ITERATIONS, 16));
    encryptionKey = null;
    xts = new XTS(cipher);
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:27,代码来源:FilePathEncrypt.java

示例11: getKey

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
private static int[] getKey(int bucket, byte[] buff) {
    int[] key = new int[4];
    int[] counts = new int[8];
    int len = buff.length;
    for (int i = 0; i < len; i++) {
        int x = buff[i] & 0xff;
        counts[x >> 5]++;
    }
    int cs = 0;
    for (int i = 0; i < 8; i++) {
        cs *= 2;
        if (counts[i] > (len / 32)) {
            cs += 1;
        }
    }
    key[0] = cs;
    key[1] = bucket;
    key[2] = DataUtils.getFletcher32(buff, buff.length);
    return key;
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:21,代码来源:ArchiveToolStore.java

示例12: iterator

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Get an iterator over all entries.
 *
 * @return the iterator
 */
public Iterator<K> iterator() {
    return new Iterator<K>() {

        Entry<K> current = head;

        @Override
        public boolean hasNext() {
            return current != NULL;
        }

        @Override
        public K next() {
            K x = current.obj;
            current = current.next;
            return x;
        }

        @Override
        public void remove() {
            throw DataUtils.newUnsupportedOperationException("remove");
        }

    };
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:30,代码来源:ConcurrentLinkedList.java

示例13: iterator

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Get an iterator over all entries.
 *
 * @return the iterator
 */
@Override
public Iterator<K> iterator() {
    return new Iterator<K>() {

        ImmutableArray<K> a = ImmutableArray.this;
        int index;

        @Override
        public boolean hasNext() {
            return index < a.length();
        }

        @Override
        public K next() {
            return a.get(index++);
        }

        @Override
        public void remove() {
            throw DataUtils.newUnsupportedOperationException("remove");
        }

    };
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:30,代码来源:ImmutableArray.java

示例14: iterator

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Get an iterator over all entries.
 *
 * @return the iterator
 */
@Override
public Iterator<K> iterator() {
    return new Iterator<K>() {

        ImmutableArray3<K> a = ImmutableArray3.this;
        int index;

        @Override
        public boolean hasNext() {
            return index < a.length();
        }

        @Override
        public K next() {
            return a.get(index++);
        }

        @Override
        public void remove() {
            throw DataUtils.newUnsupportedOperationException("remove");
        }

    };
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:30,代码来源:ImmutableArray3.java

示例15: iterator

import org.h2.mvstore.DataUtils; //导入依赖的package包/类
/**
 * Get an iterator over all entries.
 *
 * @return the iterator
 */
@Override
public Iterator<K> iterator() {
    return new Iterator<K>() {

        ImmutableArray2<K> a = ImmutableArray2.this;
        int index;

        @Override
        public boolean hasNext() {
            return index < a.length();
        }

        @Override
        public K next() {
            return a.get(index++);
        }

        @Override
        public void remove() {
            throw DataUtils.newUnsupportedOperationException("remove");
        }

    };
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:30,代码来源:ImmutableArray2.java


注:本文中的org.h2.mvstore.DataUtils类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。