include/types.h

Go to the documentation of this file.
00001 /**********************************************************************
00002  * Copyright 2002 Jeff Rush <jrush@taupro.com>
00003  * Original Copyright 1979-2002 Udanax.com
00004  *
00005  * This file is part of the Udanax xanalogical storage system.
00006  *
00007  * Udanax is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation; either version 2 of the License, or
00010  * (at your option) any later version.
00011  *
00012  * Udanax is distributed in the hope that it will be useful, but
00013  * WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with Udanax; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020  **********************************************************************/
00021 
00030 /* Modification History:
00031  * $Log: types.h,v $
00032  * Revision 1.4  2002/05/28 03:51:13  jrush
00033  * Updated sources to comply with a GPL licensing.
00034  *
00035  * Revision 1.3  2002/04/13 14:08:35  jrush
00036  * Changed typedef of structs into just structs, for C++ style.
00037  *
00038  * Revision 1.2  2002/04/12 11:46:25  jrush
00039  * Major rearrangement of include contents, to reflect a hopefully more
00040  * logical layout as we refactor Udanax into classes.
00041  *
00042  * Revision 1.1  2002/04/12 09:34:25  jrush
00043  * Renamed xanatypes.h to types.h
00044  *
00045  * Revision 1.1  2002/04/10 18:01:05  jrush
00046  * Provide a place to collect cleaned up type/class tree declarations.
00047  *
00048  * Revision 1.7  2002/04/06 17:05:57  jrush
00049  * Switched from referring to 'task' for a client connection to 'session',
00050  * and converted the typetask typedef/struct into a Session C++ class.
00051  *
00052  * Revision 1.6  2002/04/06 15:00:34  jrush
00053  * Changed INT to just 'int'.
00054  *
00055  * Revision 1.5  2002/02/14 05:40:42  jrush
00056  * Cleaned up source:
00057  *
00058  * 1. ran thru the indent tool to achieve a standard look,
00059  * 2. added structured comments at top for use with DOxygen reporting
00060  *    as well as CVS keywords,
00061  * 3. added #ifndef/#defines to prevent duplicate inclusions,
00062  * 4. insured all struct/union defs have names,
00063  * 5. centralized prototypes in protos.h, removing incomplete ones,
00064  * 6. cleaned up use of bool/BOOLEAN type to suit C++ type,
00065  * 7. fixed initializer nesting in tumbler constants.
00066  *
00067  */
00068 
00069 #ifndef __UDANAX_TYPES_H__
00070 #define __UDANAX_TYPES_H__
00071 
00072 #include "queue.h"
00073 
00074 typedef unsigned tagtype;       /* for tagging allocated things -- see credel.d */
00075 
00076 typedef int ALIGN;
00077 union header {
00078     struct {
00079         union header *ptr;
00080         unsigned size;
00081     } s;
00082     ALIGN x;
00083 };
00084 
00085 typedef union header HEADER;
00086 
00087 /*
00088  * On-Disk Navigation Types
00089  */
00090 
00091 typedef int typediskloafptrdigit;       /* long disk block number */
00092 #define DISKPTRNULL -1                 /* invalid disk pointer */
00093 
00094 struct typediskloafptr {
00095     typediskloafptrdigit  diskblocknumber;
00096     int                   insidediskblocknumber;
00097 };
00098 
00099 /*
00100  * Coordinate Types
00101  */
00102 
00103 #include "tumbler.h"
00104 
00105 class IStreamAddr: public Tumbler
00106 {
00107 };
00108 
00109 /*
00110  * span
00111  */
00112 
00113 struct typespan {
00114     typespan    *next;
00115     typeitemid   itemid;
00116     Tumbler      stream;
00117     Tumbler      width;
00118 };
00119 typedef typespan *typespanset;
00120 
00121 /*
00122  * knives
00123  */
00124 
00125 #define MAXCUTS  4
00126 struct typecutseq {
00127     int      numberofcuts;
00128     Tumbler  cutsarray[MAXCUTS];
00129 };
00130 
00131 struct typeknives { /* this is nd internal version of cutseq */
00132     int      nblades;
00133     Tumbler  blades[MAXCUTS];
00134     int      dimension;      /* always V, assigned by rearrange2d */
00135 };
00136 
00137 
00138 /*
00139  * wisp
00140  */
00141 
00142 #define MAXLOXIZE 2
00143 
00144 struct typewid {
00145     Tumbler dsas[MAXLOXIZE];
00146 };
00147 typedef typewid typedsp;
00148 typedef typewid typewisp;
00149 
00150 #include "session.h"
00151 #include "crum.h"
00152 #include "context.h"
00153 #include "enf.h"
00154 #include "coredisk.h"
00155 
00156 #endif /* !__UDANAX_TYPES_H__*/

Generated on Sun Aug 21 04:18:13 2005 for Udanax-Green by doxygen1.3.4