001    /**
002     * JDBM LICENSE v1.00
003     *
004     * Redistribution and use of this software and associated documentation
005     * ("Software"), with or without modification, are permitted provided
006     * that the following conditions are met:
007     *
008     * 1. Redistributions of source code must retain copyright
009     *    statements and notices.  Redistributions must also contain a
010     *    copy of this document.
011     *
012     * 2. Redistributions in binary form must reproduce the
013     *    above copyright notice, this list of conditions and the
014     *    following disclaimer in the documentation and/or other
015     *    materials provided with the distribution.
016     *
017     * 3. The name "JDBM" must not be used to endorse or promote
018     *    products derived from this Software without prior written
019     *    permission of Cees de Groot.  For written permission,
020     *    please contact cg@cdegroot.com.
021     *
022     * 4. Products derived from this Software may not be called "JDBM"
023     *    nor may "JDBM" appear in their names without prior written
024     *    permission of Cees de Groot. 
025     *
026     * 5. Due credit should be given to the JDBM Project
027     *    (http://jdbm.sourceforge.net/).
028     *
029     * THIS SOFTWARE IS PROVIDED BY THE JDBM PROJECT AND CONTRIBUTORS
030     * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
031     * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
032     * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
033     * CEES DE GROOT OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
034     * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
035     * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
036     * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
037     * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
038     * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
039     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
040     * OF THE POSSIBILITY OF SUCH DAMAGE.
041     *
042     * Copyright 2000 (C) Cees de Groot. All Rights Reserved.
043     * Contributions are Copyright (C) 2000 by their associated contributors.
044     *
045     * $Id: Magic.java,v 1.1 2000/05/06 00:00:31 boisvert Exp $
046     */
047    
048    package jdbm.recman;
049    
050    /**
051     *  This interface contains magic cookies.
052     */
053    public interface Magic {
054        /** Magic cookie at start of file */
055        public short FILE_HEADER = 0x1350;
056    
057        /** Magic for blocks. They're offset by the block type magic codes. */
058        public short BLOCK = 0x1351;
059    
060        /** Magics for blocks in certain lists. Offset by baseBlockMagic */
061        short FREE_PAGE = 0;
062        short USED_PAGE = 1;
063        short TRANSLATION_PAGE = 2;
064        short FREELOGIDS_PAGE = 3;
065        short FREEPHYSIDS_PAGE = 4;
066    
067        /** Number of lists in a file */
068        public short NLISTS = 5;
069    
070        /**
071         *  Maximum number of blocks in a file, leaving room for a 16 bit
072         *  offset encoded within a long.
073         */
074        long MAX_BLOCKS = 0x7FFFFFFFFFFFL;
075    
076        /** Magic for transaction file */
077        short LOGFILE_HEADER = 0x1360;
078    
079        /** Size of an externalized byte */
080        public short SZ_BYTE = 1;
081        /** Size of an externalized short */
082        public short SZ_SHORT = 2;
083        /** Size of an externalized int */
084        public short SZ_INT = 4;
085        /** Size of an externalized long */
086        public short SZ_LONG = 8;
087    }