package org.mapdb; /** * Low level utilities for StoreDirect */ final class StoreDirectJava { static final long MAX_RECORD_SIZE = 0xFFFF-15; static final long NULL_RECORD_SIZE = 0xFFFF; static final long DELETED_RECORD_SIZE = 0xFFFF-1; static final long MOFFSET = 0x0000FFFFFFFFFFF0L; static final long MLINKED = 0x8L; static final long MUNUSED = 0x4L; static final long MARCHIVE = 0x2L; static final int HEAD_CHECKSUM_SEED = 1142099053; static final long HEADER_CHECKSUM = 2*8; //TODO benchmarks static final long DATA_TAIL_OFFSET = 3*8; static final long INDEX_TAIL_OFFSET = 4*8; static final long FILE_TAIL_OFFSET = 5*8; // static final long LONG_STACK_UNUSED1 = 64; // static final long LONG_STACK_UNUSED16 = LONG_STACK_UNUSED1+16*8; static final long RECID_LONG_STACK = 8*8; static final long NUMBER_OF_SPACE_SLOTS = 1+MAX_RECORD_SIZE/16; static final long UNUSED1_LONG_STACK = 8L * NUMBER_OF_SPACE_SLOTS + RECID_LONG_STACK; static final long UNUSED2_LONG_STACK = UNUSED1_LONG_STACK+8; static final long UNUSED3_LONG_STACK = UNUSED2_LONG_STACK+8; static final long UNUSED4_LONG_STACK = UNUSED3_LONG_STACK+8; static final long HEAD_END = UNUSED4_LONG_STACK+8; static final long ZERO_PAGE_LINK = HEAD_END; protected final static long LONG_STACK_PREF_SIZE = 160; protected final static long LONG_STACK_MIN_SIZE = 16; protected final static long LONG_STACK_MAX_SIZE = 256; static final long RECIDS_PER_INDEX_PAGE = (CC.PAGE_SIZE-16)/8; static final long RECIDS_PER_ZERO_INDEX_PAGE = (CC.PAGE_SIZE-HEAD_END-16)/8; static long indexValToSize(long ival){ return ival>>>48; } static long indexValToOffset(long ival){ return ival&MOFFSET; } }