SCViewer/com.minres.scviewer.databas.../src/org/apache/jdbm/Magic.java

106 lines
2.8 KiB
Java

/*******************************************************************************
* Copyright 2010 Cees De Groot, Alex Boisvert, Jan Kotek
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package org.apache.jdbm;
/**
* This interface contains magic cookies.
*/
interface Magic {
/**
* Magic cookie at start of file
*/
short FILE_HEADER = 0x1350;
/**
* Magic for pages. They're offset by the page type magic codes.
*/
short PAGE_MAGIC = 0x1351;
/**
* Magics for pages in certain lists.
*/
short FREE_PAGE = 0;
short USED_PAGE = 1;
short TRANSLATION_PAGE = 2;
short FREELOGIDS_PAGE = 3;
short FREEPHYSIDS_PAGE = 4;
short FREEPHYSIDS_ROOT_PAGE = 5;
/**
* Number of lists in a file
*/
short NLISTS = 6;
/**
* Magic for transaction file
*/
short LOGFILE_HEADER = 0x1360;
/**
* Size of an externalized byte
*/
short SZ_BYTE = 1;
/**
* Size of an externalized short
*/
short SZ_SHORT = 2;
/**
* Size of an externalized int
*/
short SZ_INT = 4;
/**
* Size of an externalized long
*/
short SZ_LONG = 8;
/**
* size of three byte integer
*/
short SZ_SIX_BYTE_LONG = 6;
/**offsets in file header (zero page in file)*/
short FILE_HEADER_O_MAGIC = 0; // short magic
short FILE_HEADER_O_LISTS = Magic.SZ_SHORT; // long[2*NLISTS]
int FILE_HEADER_O_ROOTS = FILE_HEADER_O_LISTS + (Magic.NLISTS * 2 * Magic.SZ_LONG);
/**
* The number of "root" rowids available in the file.
*/
int FILE_HEADER_NROOTS = 16;
short PAGE_HEADER_O_MAGIC = 0; // short magic
short PAGE_HEADER_O_NEXT = Magic.SZ_SHORT;
short PAGE_HEADER_O_PREV = PAGE_HEADER_O_NEXT + Magic.SZ_SIX_BYTE_LONG;
short PAGE_HEADER_SIZE = PAGE_HEADER_O_PREV + Magic.SZ_SIX_BYTE_LONG;
short PhysicalRowId_O_LOCATION = 0; // long page
// short PhysicalRowId_O_OFFSET = Magic.SZ_SIX_BYTE_LONG; // short offset
int PhysicalRowId_SIZE = Magic.SZ_SIX_BYTE_LONG;
short DATA_PAGE_O_FIRST = PAGE_HEADER_SIZE; // short firstrowid
short DATA_PAGE_O_DATA = (short) (DATA_PAGE_O_FIRST + Magic.SZ_SHORT);
short DATA_PER_PAGE = (short) (Storage.PAGE_SIZE - DATA_PAGE_O_DATA);
}