/*TITLE common header file*/

/****keyword-flag*** "%v %f %n" */
/* "8 6-May-98,10:32:38 COMMON.H" */

#ifndef COMMON_H
#define COMMON_H

#define INLINE

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>

#define min(a,b)    (((a) < (b)) ? (a) : (b))

#define MainObjectDirectory 1

#define TRUE 1
#define FALSE 0

#ifndef DEBUG
#define DEBUG 1
#endif

#ifndef VDEBUG
#define VDEBUG 1
#endif


typedef unsigned long ArrayIndex;
typedef unsigned long Ulong;
#include "qfassert.h"

#include "vector.h"

typedef SVector<char> AccountNumber;

struct ItemIndex;
union Block;
class BaseBlockPtr;
class FreeSpaceBlockPtr;
class FreeSpaceBlock;
class MainObjectBlock;
class MainObjectBlockPtr;
class QuantumBlock;
class FreeSpaceArrayPtr;
class MainObjectArrayPtr;
class BigPointerBlock;
class BigPointerBlockPtr;
class LittlePointerBlock;
class LittlePointerBlockPtr;
class LeafBlock;
class LeafBlockPtr;

typedef unsigned char FreeSpaceCode;
typedef unsigned char ObjectNumber;
typedef unsigned long QuantumNumber;
typedef unsigned long BlockNumber;
typedef unsigned short RelativeItemNumber;
typedef unsigned long MainObjectEntry;
typedef long FileOffset;
typedef AccessVector<QuantumNumber> BigPointerArray;
typedef SVector<char> ModifiableElement;
struct QFreeSpaceEntry;

const ArrayIndex DefaultBufferCount = 20;

#include "block.h"
#include "newquant.h"
#include "asmfunc.h"
#include "dynhash.h"
#include "persist.h"
#include "stats.h"

#endif

